CSC301 Homepage

Fundamentals of Programming Languages

Spring 2006

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.

Announcements:

[4/27/06] ** Final Exam ** Monday May 8th, 11:30-2:30, Gilbreth Hall Rm 118, Open Book/Open Notes
[4/24/06] Posted HW#5
[4/8/06] Posted Programming Assignment #7
[4/4/06] Posted Programming Assignment #6
[4/2/06] Posted Programming Assignment #5
[3/30/06] Posted Programming Assignment #4
[3/9/06] Posted Programming Assignment #3
[3/3/06] Posted Programming Assignment #2
[2/21/06] Posted HW #4
[2/14/06] Posted Programming Assignment #1
[2/14/06] Quiz chapters 1-4 on 2/15
[2/6/06] Posted HW #3
[1/31/06] Posted HW #2
[1/31/06] Posted HW #1
[1/1/06]  Welcome!

Documents of Interest:


NOTE: email submissions are not acceptable for both homework assignments and programming assignments.

Homework Assignments:

Programming Assignments:

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

Handwritten work will not be accepted as programming assignment.

Instructor:

Dr. Lutz Hamel
Tyler Hall, Room 251
Office Hours: M11am-12pm, R2:30-3:30pm
email: hamel@cs.uri.edu
 

TA:

Adam Moss
Office Hours: M11-1 Tyler 136; W4:30-7:30pm Envision Lab; F10-12 Tyler 136
email: amoss@cs.uri.edu