Fundamentals of Programming Languages
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.
Upon completion of this course
- You will be able to discern and contrast the major programming language paradigms in use today.
- You will be able to pick an appropriate language for the job at hand.
- You will have deeper insights into the evolution of programming languages.
** 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.
Documents of Interest:
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
results of the run into a MS Word document. Also, please
follow the instructions given in the book for each problem
Handwritten work will not be accepted
as programming assignments.
- Assignment #1: 2.1 b, c, g, j - due Friday 9/17 in class.
- Assignment #2: 3.1 a; 3.3 b; 3.4 b - due Monday 9/20 in class.
- Assignment #3: 4.4 - due Wednesday 9/22 in class. No late submissions accepted!
- Assignment #4: 5.2, 5.3, 5.4, 5.7 - due Monday 10/4 in class.
- Assignment #5: 6.2; 6.4 d through g - due Wednesday 10/6 in class.
- Assignment #6: 7.2, 7.6 - due Tuesday 10/12 in class.
- Assignment #7: 9.6, 9.26 (read the problem set instructions carefully) - due Wednesday 10/20 in class.
- Assignment #8: Read Chap 13,15,17; do problem 17.3 - due
Monday 11/1 in class; see class notes for details; source code:
Please submit your source code and some examples that your program runs.
- Assignment #9: 18.6 a,b,c - Wed. 11/3 in class.
- Assignment #10:
the necessary facts can be found here -
due Monday 11/8 in class.
- Assignment #11: due Friday 11/12 in class.
- Assignment #12 - due Wednesday 11/17 in class.
- Assignment #13 - due Monday 11/22 in class.
Office Hours: Tu 2:30-3:30pm W 11am-noon
Shaun Joseph, Tyler Hall Rm 135
Office Hours: M Tu 11am-1pm