CSC301 Homepage

Fundamentals of Programming Languages

Fall 2010

Description:

Language enables thought.  In this course we study a class of formal languages known as programming languages.  Similar to natural languages, these formal languages enable us to to reason about algorithms and procedures to solve computational problems on computers. However, their  formal nature restricts the kind of meanings particular language constructs can assume and therefore makes them amenable for the execution on a computer.

Over the years many different programming language dialects have evolved to address particular technical issues, e.g. object-oriented languages, real-time languages, database query languages, logic languages, etc.  Here we study the major structures of modern programming languages. Understanding not only the syntax of a language but also the semantics and implementation techniques of this language will allow you to design better programs.  Having deeper insights into the design of a programming language will also enable you to learn new programming languages much faster.  Having a thorough understanding of today's languages allows you to design the programming languages of tomorrow.

Objective

Upon completion of this course

Announcements:

** final exam: Tuesday 12/14 8-11am Tyler 109, comprehensive, open book/notes **

[11/18/10] posted assignment #13
[11/12/10] posted assignment #12
[11/8/10] posted assignment #11
[11/3/10] posted assignment #10, note the changed due date: Monday 11/8
[11/1/10] Posted assignment #9.
[10/25/10] posted solution for assignment #7.
[10/22/10] posted assignment #8
[10/20/10] ** Midterm, 10/27, Chapters 1 thru 10 **, here is a practice midterm.
[10/19/10] ** New Late Assignment Policy ** As of assignment #7 I will no longer accept late assignments once I have passed the homework back. Up to the point when I pass back the homework the original penalty for late assignments still holds: 5% penalty for each day late. Please take note of this new policy.
[10/19/10] Posted assignment #7
[10/15/10] posted solutions to all assignments.
[10/13/10] ** quiz, Monday 10/18, chapters 4 through 8 **
[10/8/10] ** Tuesday 10/12 will have Monday's schedule **
[10/8/10] posted assignment #6
[10/4/10] posted assignment #5
[10/1/10] posted assignment #4
[9/20/10] ** quiz, Monday 9/27, Chapters 1 through 4 **
[9/20/10] posted assignment #3 - no late assignments accepted
[9/18/10] posted assignment #2
[9/16/10] ** as of Monday 9/20 we will meet in Tyler Hall rm 109 **
[9/15/10] Posted assignment #1.
[9/10/10] Posted office hours for myself and the TA.
[9/9/10] Turns out that engrade changed the way they deal with student access codes, please email me in order to obtain your engrade access code for this class.
[9/9/10] Posted the first set of slides on the web (see lecture notes below).
[9/8/10] You should go to the online grade book and sign up for an account, your access code is engrade-csc301fall2010-nnnn where nnnn is your student ID number.
[9/8/10] Welcome!

Documents of Interest:



Assignments:

Email submissions are NOT acceptable for assignments.

For programming assignments you will need to submit your source code and proof that your program runs on sample input, e. g., screen shot or cut and paste the results of the run into a MS Word document. Also, please follow the instructions given in the book for each problem carefully.

Handwritten work will not be accepted as programming assignments.

Instructor:

Dr. Lutz Hamel
Tyler Hall
Office Hours: Tu 2:30-3:30pm W 11am-noon
email: hamel@cs.uri.edu

TA:

Shaun Joseph, Tyler Hall Rm 135
Office Hours: M Tu 11am-1pm
email: josephs@cs.uri.edu