CS 160 @ UCSB

Translation of Programming Languages

This course is intended to provide understanding of fundamental concepts in compiler design and implementation. Compilers are ubiquitous in the Computer Science field, especially in an era where programmers use many languages and a single language does not dominate.

Catalog Description: Study of the structure of compilers. Topics include: lexical analysis; syntax analysis including LL and LR parsers; type checking; run-time environments; intermediate code generation; and compiler-construction tools.


No announcements yet! Stay tuned.

Google Group

We have set up a Google Group for the course which will act as the course mailing list and a place to ask any course questions. We will post course updates and announcements there, and we request that you join as soon as possible (and joining will be a requirement for the first project).

You can find it online at https://groups.google.com/d/forum/cs160-f14-ucsb and you can send an email to the group with the email address cs160-f14-ucsb@googlegroups.com.


A course calendar will appear here once the quarter begins.


If you have any questions that are not specific to your code for your project solutions, please post them on the Google Group so that the whole class has the opportunity to hear the answer.

Questions that include your specific solution should be CC'ed to both TAs, so that you can get a response as quickly as possible.

ProfessorBen Hardekopf
Hours:Immediately Following Lecture
TAKeith Avery
Office:Trailer 936, 103-104
Hours:Wednesday and Thursday 4-6pm
TALawton Nichols
Office:Trailer 936, 103-104
Hours:Wednesday 11am-12pm

Course Details

Lectures are Tuesday and Thursday from 2-3:15pm in PHELPS 3515.

Discussion sections are Thursday at 9am in GIRV 2108 and 10am in BSIF 1217.


The coursework will be 6 projects, 1 midterm examination, and 1 final examination.


The grade breakdown will be 40% projects, 20% midterm, and 40% final.

Late Policy

Each student will have 2 "slip days" to use over the quarter. Using a slip day allows one project to be turned in up to 24 hours after the deadline. Slip days are automatically applied by the TAs upon late assignment submission. Slip days can only be used in 24 hour increments: turning in an assignment 30 minutes late uses a slip day. If both slip days are expended, a late assignment will not be accepted. Slip days may not be used on the last project of the quarter.

Academic Honesty

Each student is responsible for their own work, and is expected to complete the assignment without collaborating with anyone else. High-level discussion of the concepts without anything specific to an assignment is OK. Talking specifically about the solution to an assignment or sharing code is not OK. Violation of this policy can lead to an F on the assignment or, in extreme cases, an F for the entire course. When in doubt, refer questions to the professor or a TA.