CS 615 - Homework
Homework Assignments
All homework must be completed individually. You may discuss the problems
with others but you must turn in your own work. You may either (1) email me
your PDF or PS homework file, (2) give me your homework in class, (3)
give me your homework during my office hours, or (4) slip your homework
under my office door. If the homework assignment includes a programming
component, you must email me your code.
Do not make use of any other delivery method
for your homework (e.g., carrier pigeons, my faculty mailbox).
Homeworks:
-
Homework 1 Written
(last update --
Thu Aug 24 11:07:12 EDT 2006
).
Homework 1 Code.
-
Homework 2 Written
(last update --
Thu Sep 7 09:49:48 EST 2006
-- now due Friday
).
Homework 2 Code.
-
Homework 3 Written
(last update --
Thu Sep 7 10:49:35 EST 2006
).
Homework 3 Code.
-
Homework 4 Written
(last update --
Wed Sep 13 14:08:10 EDT 2006
).
- Homework 5.
-
Homework 5 Written
(last update --
Wed Sep 20 13:11:50 EDT 2006
).
-
Homework 5 Code.
- Download one of the versions of Simplify below and rename it to
$TOP/Simplify (i.e., put it in the same directory as
nf.ml).
- Necula et al.'s CIL: Intermediate
Language and Tools for Analysis and Transformation of C Programs
(optional)
- Detlefs, Nelson and Saxe's
Simplify: A Theorem Prover For Program Checking
(optional, huge PDF)
- Manuvir Das' Unification-based pointer
analysis with directional assignments (optional, the GOLF paper)
- Bush, Pincus and Seilaff's A Static
Analyzer For finding Dynamic Programming Errors (optional, the PREfix paper)
- The CIL Manual. In
particular, check out the CIL API
Documentation (or read cil/src/cil.mli). (optional)
- O'Reilly's
Developing Applications With Objective Caml (really optional,
but if you feel you
need extra help with OCaml, this book probably has the answers -- you can
also talk to me)
- Precompiled x86 CYGWIN
version of the Homework 5 code. Use this if you can't get CIL to build
yourself; typically that's indicative of other problems, however.
Calls For Papers, Fun Venues, Internships, Summer Activities
Random Somewhat-Related Humor
- Research Glossary
(note "interesting to me")
- The Guru of Chelm
(evaluating systems)
- How To Prove It
(alternative techniques to structural induction)
- K-Coward
(taking math too seriously)
- Hamlet PowerPoint
(problems with all-PowerPoint presentations)
- Universal Poker
(proof theory: why is Truth's opposite "Void"?)
- Chess Books
(useful background reading)
- Polynomial Hierarchy
Collapses: Thousands Feared Tractable
- Microsoft Patches
(exceptional situations and error handling)
- C Problem
(essential debugging)
- USENET Homework
(asking for help)
- Linux Development Order
(requirements engineering)
- GCC International
(promoting international understanding)
- Microsoft Buys TeX
(note "What were we thinking?" and "third-party display driver")
- Feel-Good Abstraction
(at what level should we analyze and design?)
- Parametric Worm
(Microsoft security explained)
- 1776 Computers
(historical perspectives)
- Security Important
(system and user security)
- Secure README
(security through obscurity)
- Tarzan Learns Email
(explaining CS to the laity)
- Jobs Translated
(meanings of terse utterances)
- How I Met My Wife
(is Wes speaking English?)
Other Similar Courses
Here are some example homeworks from similar
courses at other universities (these should actually work as of 5pm Jan 17,
but are probably a bit more "implementation-heavy" than what you'll see in
this course):