CS 342: Security and Programming Languages
Spring 2007 information:
NOTE: Office hours for Thu 2/22 have been changed to: 3-4pm and 5-6pm.
- NOTE: The current title on the books is "Topics in
Programming Systems", which we hope to change to the new, more
accurate title "Security and Programming Languages".
- Instructor:
Prof. Rahul Simha
- Office Hours:
Wed 3-5, Thu 3-5.
- Class Time/Place:
Thursdays 6.10-8.40, Tompkins 211
- Prerequisites/Co-requisites:
CS 210, CS 211, CS 212. If you're taking some of these
along with CS-342 in the Spring, that's probably fine.
However, if your CS background is a little weak (for example,
you don't have an undergrad degree in CS) AND you are still
taking core courses, then you might not get much out of this
course. Talk to me about it.
Although you don't need to have taken a course
in security, some background in security will help.
- Course description:
This topics course will cover issues related to security
in programming languages. Topics include: language features
for security, run-time systems, proof-carrying code, type-safety,
protection against code tampering, compiler-driven security,
and compiler-hardware approaches to software protection.
The course will be conducted seminar-style with paper presentations
and a final project.
- What the course is about:
This course will address the question: how can programming languages
and associated tools (compilers, run-time systems) be designed to
achieve security objectives? Such objectives include: preventing
code-tampering, preventing unauthorized access and creating more
reliable software (with fewer security holes).
There have been several research efforts along these lines.
Some of these focus on new programming languages, some consider
enhancements to current languages, while others focus on
run-time systems and compilers.
The goal of this course is to get a broad overview of this
field and to try to address some open problems via the final project.
Students will be expected to read papers, present them lucidly
and complete a project with supervision from the instructor.
- List of papers
- Coursework
- Schedule of presentations