CS243: Program Analysis and Optimization Winter 2021This page is updated frequently, so check back often. All materials for the course will be posted here.
What do we teach?
- Machine learning and scientific computing need a lot of cycles; machines such as GPUs are complex to code. How do we automatically generate efficient code for these machines effectively. (Parallelism and Locality)
- The highest programming language is obviously natural language. Can we program our virtual assistant to perform compound tasks in natural language? We use machine learning techniques to map natural language into formal languages. Note: no prior knowledge in machine learning is needed. (Neural networks, Satisfiability Modulo Theories)
- Can we use program analysis to automatically detect security bugs in programs? (Pointer analysis)
- How do we automatically manage memory efficiently so users do not have to manage it themselves? (Garbage collection)
- How do we make high-level programming languages efficient by optimizing the code? (Data-flow analysis)
How do you learn this?
This is a course where math and programming meet. Learning compiler techniques has much in common with learning mathematical proofs. You learn by trying, finding your own insights. This means the assignments can take a variable amount of time! We want you to formulate your own variations of problems and solve them.
How is the course structured?
- Highly interactive lectures, textbook reading.
- Programming assignments analyze Java code.
- Problem sessions for discussion.
- Piazza for offline questions.
- 2 Exams.
Logistics When, where, what and how
|Lectures||Monday and Wednesday 4:00 pm - 5:20pm|
|Review Session||Friday 4:00pm - 5:20pm|
|Prerequisites||CS 103 or CS 103B, and CS 107; Java programming language experience|
|Textbook||Compilers: Principles, Techniques, & Tools (Second Edition), Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Addison-Wesley, 2007.|
|Class Q&A Website||CS243 on Piazza - for all questions related to the material.|
|Videos of Lectures||CS 243 Canvas Page|
|Staff Mailing List|
|Office Hours Sign-up||QueueStatus 1321|
|SCPD Office Hours||Sign-up on QueueStatus, write SCPD in name|
|Exam 1||February 17|
|Exam 2||March 17|
Staff Professor and TA details
Monica Lam, Instructor
|Office Hours||Mondays and Wednesdays:
Andrea Brand-Sanchez, Admin