CS 316 - Concepts of Programming Languages
Home
From the Catalog:
Design and evaluation of the central concepts of programming languages; describing syntax and semantics; data
types; abstract data types; control structures; subprograms; concurrency; exception handling. Prer.: CS 145.
Syllabus
Note the absence of Chapter 4 in the lineup. Basically, we're going to hold to this schedule as much as possible
to have the mid-term exam back in your hands, as well as the first Scheme lab, in time for the drop deadline, then
work through as much of the rest of the book as possible for the rest of the semester. 8/25: I'll have the Scheme lab due dates
posted early next week.
Week |
Topic |
Assignments/Exams |
1 (21,23 Aug) |
Chapter 1 |
|
2 (28,30 Aug) |
Chapter 2 |
|
3 (4,6 Sep) |
Chapter 3 |
|
4 (11,13 Sep) |
Chapter 5 |
|
5 (18,20 Sep) |
Chapter 6 |
Mid-Term Exam Review: 20 Sep |
6 (25,27 Sep) |
Chapter 7 |
Mid-Term Exam, Ch 1-6: 25 Sep Lab 1: 27 Sep |
7 (2,4 Oct) |
Chapter 8 |
|
8 (9,11 Oct) |
Chapter 9 |
|
9 (16,18 Oct) |
Chapter 10 |
Lab 2: 18 Oct |
10 (23,25 Oct) |
Chapter 11 |
|
11 (30 Oct,1 Nov) |
Chapter 12 |
|
12 (6,8 Nov) |
Chapter 14 |
|
13 (13,15 Nov) |
Chapter 15 |
|
14 (20,22 Nov) |
Chapter 16 |
|
15 (27 Nov) |
Lab Time |
27 Nov: Thanksgiving Holiday - No Class |
16 (4,6 Dec) |
Lab Time |
Final Exam Review - 6 Dec |
17 (11,13 Dec) |
Final Exam Week |
Lab 3 due Final Exam - 13 Dec, 10:50am |
Slides
- Here are 4th edition Chapter 2 slides, which should line up to both editions well enough for our nefarious purposes...
- I'm in the process of obtaining the slides corresponding to the 5th edition. For now, here are the slides from the 4th edition for Chapter 1, which are consistent with the text.
Fifth Edition Slides:
Sites of Interest
- New! The Final Exam. Due on 11 December. Start early, there's a lot to do...

- Kinda New! CLIPS, an expert system language and engine.
- Another Scheme tutorial; I found this one amenable to cut-'n-pasting examples from it into DrScheme if you switch to "Advanced Student" mode (Menu: Language->Choose Language, then select "Advanced Student", click Ok, then click the Execute button at the top-right).
- Here's one; a semi-scientific comparison of the performance of Lisp and Java. Makes you want to learn Scheme, huh? 8-)
- Tiny Pascal, a compiler that displays it's innards on the screen. You'll be amazed at the shrinking and expanding stacks, the furious state transitions, and the generation of code the likes of which you've never seen! Great illustration of semantic actions attached to a parse tree. Browse the help file; extensive explanations of the grammar, both pure and with inserted semantic actions.
- DrScheme website (3.4MB). You can download what will become your favorite Scheme development environment here, as well as browse the documentation. When you run it for the first time, a little intro tutorial will present itself; take a few minutes to navigate it, as it will explain the IDE windows and their use.
This seems to be a decent language tutorial; clear but not coddling. Here's another tutorial, a little schmaltzier, but with a decent "Hello World" program for those among you who need such a baseline :-) For DrScheme, leave out the (begin ...) form if you are in the "Beginning Student" mode.
- Python 2.2's division operator. An interesting presentation of the complexities behind seemingly simple concepts, and the impact of making changes in a language's behavior.
- D, the proposed successor to C and C++. LWN has an overview here. It's about time...8-)
- Eric Raymond's Retrocomputing Museum. Eric is a collector of programming languages; this site provides resources and links to languages of historical and idiosyncratic interest.
- The Language List, an attempt at a comprehensive list of programming languages. No longer maintained, AFAIK. Here's a searchable alternate, not tested.
- Programming Languages Table, a list of languages compared WRT their equivalence in SLOC per function point. A great source for comparing the expressive power of languages, programming or otherwise.
Comments or questions? glenn_butcher@pcisys.net
As Of: 9 October 2001