Written Assignments |
Programming Assignments |
CS 415 - Programming Languages - Exams
This course will have two midterm examinations and one final examination.
The final examination is cumulative.
By a decisive in-class vote, you are allowed to bring only one page of
notes (front and back) -- hand-written by you.
The exams are not open book. You may not use electronic devices
of any kind.
Hints from Wes For Midterm 1
Not enough people were interested in a midterm review session. Instead, I
have decided to provide "follow along" examples:
You can use these to help you study for Midterm 1. Note that Midterm 1
officially includes everything in the class up to but not including
semantic analysis (i.e., everything before Scope).
Hints For The Final
The final exam is Thursday, May 10 from 1400 to 1700 in MEC 214 (that's the
same room we always have class in).
In general, all of the topics covered in the course (either in lecture, in
the written assignments, in the programming assignments or in the
required reading) are fair game. The following list of topics is not
necessarily exhaustive (although it is close); you are responsible for all
of the material.
The topic weights are largely based on what you said in class during the
topic survey. There are two changes: typing and opsem are both big topics
despite student desire for them to be marginalized. However, within those
two topics "basic questions" (e.g., "what is operational semantics?") will
be worth proportionally more points than "advanced questions" (e.g., "give
an opsem rule for this new pyscho for loop").
- Big Topics (will be worth more points)
- Type Checking, Typing Rules, Typing Judgments
- Operational Semantics
- Finite Automata
- LL (Top-Down) Parsing
- LR (Bottom-Up) Parsing
- Basic Blocks, Local Optimizations, Dataflow Analysis
- Automatic Memory Management
- Parallel and Concurrent Programming
- Average Topics
- Lexical Analysis
- Context-Free Grammars
- Parsing, Derivations, Ambiguity
- Aspect-Oriented Programming
- Object-Oriented Programming
- Exceptions and Error Handling
- Debuggers and Profilers
- Design Patterns
- Language Security
- Small Topics (will be worth fewer points)
- Functional Programming (expect only an extra credit question on FP)
- PL History (expect only an extra credit question on history)
- Linking, Loading and Shared Libraries
The "big" topics won't necessarily be huge parts of the exam time-wise or
space-wise, they'll just be worth more points. For example, it's not clear
that there are huge detailed questions we can ask about garbage
collection, but whatever we do ask will be worth more points than you would
The final exam is not open book but allows two page-sides of notes (not
necessarily hand-written). Don't go overboard with the cheat sheat --
if you're bringing in something that requires its own index, for example,
you'll probably lose more time looking stuff up than you save by having it
Here are some practice exams from other similar courses at other
universities. These courses are not exactly the same as this one, so
these practice exams may not be indicative.