Home |
Lectures |
Written Assignments |
Programming Assignments |
Exams |
Cool
CS 415 - Programming Languages - Exams
Overview
This course will have two midterm examinations and one final examination.
The final examination is cumulative.
Materials
You are allowed to bring two paper-sides notes (either one page, front and
back or two fronts). You may laser-print them using some micro font if you
like, but it won't really help you: you'll spend all of your time squinting
and looking up information on your cheat sheet.
The exams are not open book. You may not use electronic devices
of any kind.
Hints from Wes For Midterm 1
I have decided to provide "follow along" examples:
You can use these to help you study for Midterm 1.
Information For Midterm 2
Midterm 2 will cover lectures 10 - 21 and all readings, WAs and PAs in that
timeframe. It does not cover parsing.
Major topics include:
- Typing (goals, formalisms, Cool)
- Operational Semantics (goals, formalisms, Cool)
- Optimizations (local, global, basic blocks, 3AC, SSA, CFGs)
Minor topics include:
- Scoping
- Runtime Organization and Memory Layout
- Game Theory
- Automatic Memory Management
- Exceptions
- Debugging and Profiling
- Linking, Loading and Libraries
This list is not necessarily exhaustive. There have been particular hints
in lecture about potential questions.
Hints For The Final
The final exam will take place on Saturday May 3 from 9am to Noon in the
regular classroom for CS 415.
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.
- Big Topics (will be worth more points)
- Basic Blocks, Local Optimizations, Dataflow Analysis
- Context-Free Grammars
- Finite Automata
- LR (Bottom-Up) Parsing
- Operational Semantics
- Security
- Type Checking, Typing Rules, Typing Judgments
- Average Topics
- Automatic Memory Management
- Debuggers and Profilers
- Exceptions and Error Handling
- Lexical Analysis
- Linking, Loading and Shared Libraries
- LL (Top-Down) Parsing
- Parsing, Derivations, Ambiguity
- Scoping
- Small Topics (will be worth fewer points)
- Functional Programming (expect only an extra credit question on FP)
- Game Theory
- Quantum Computing
Within the large topics of Typing and Opsem, "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").
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 massive detailed questions we can ask about each such topic,
but whatever we do ask will be weighted heavily.
The final exam is not open book but allows two page-sides of notes (created
by you, but 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 written down.
Practice Exams
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.