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
Homework 1 Code.
-
Homework 2 Written
Homework 2 Code.
-
Homework 3 Written
Homework 3 Code.
[\![\,Exp\,]\!] is a reasonable LaTeX command for [[Exp]]. You
might also make a macro like this:
\newcommand{\sem}[1]{[\![\,#1\,]\!]} and then use
\sem{Exp}.
-
Homework 4 Written
- Homework 5.
-
Homework 5 Written
-
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.
The list of
tortured bits of English prose remains available.
Calls For Papers, Fun Venues, Internships, Summer Activities
- Every Thursday the Theory
Lunch convenes. Free food is provided and we occasionally even discuss
theory. The setting is quite informal, with an emphasis on good ideas and fun
rather than being stuffy.
- The Security Reading Group
convenes weekly.
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 are probably a bit more
"implementation-heavy" than what you'll see in this course):