CSE 110A: Fundamentals of Compiler Design I

Winter 2020


Jump to schedule

Meeting time and place

Lecture: Monday, Wednesday, Friday from 4pm to 5:05pm Merrill Acad 102.

Discussion Sections:

  • Mondays, 9:20AM - 10:25AM, Soc Sci 2 179
  • Wednesdays, 10:40AM - 11:45AM, Soc Sci 2 179

Tutoring hours:

  • Mondays, 2:40pm-3:40pm; Crown 104 (kbowler)
  • Tuesdays, 11:40am-12:40pm; Cowell 222 (jwdiamon)
  • Tuesdays, 3:20-4:55pm; Cowell 222 (rkrishn7)
  • Wednesdays, 12pm-1pm; J Baskin 169 (gli38)
  • Thursdays, 9:50-10:50am; Soc Sci 1 - 153 (akmishra)
  • Thursdays, 3:20pm-4:20pm; Thimann 101 (samarnol)
  • Fridays, 10:40-11:40am; J Baskin 169 (cdungo)
  • Fridays, 1:20-2:20pm; Soc Sci 1 - 153 (evin)

We will use the Piazza site for communication, discussion, and announcements. All homework programming assignments will be hosted and submitted via GitHub Classroom. Links to GitHub Classroom assignments will be posted on Piazza. Please use Piazza for communicating with course staff whenever possible. You will be more likely to receive a timely response.

Text Resources

There are no required textbooks for this course, but using one or more of the following textbooks to expand your understanding of course topics is highly recommended. In particular, these textbooks are good sources of example problems to test your understanding of course concepts. When a free online copy is available (either a preprint or an ebook via the UCSC library), I've noted it below. More ebooks may become available through the library soon.

  • Programming in Haskell (2nd ed.) by Graham Hutton.
  • Real World Haskell by Bryan O'Sullivan.
  • Learn You a Haskell for Great Good by Miran Lipovača. Available free online
  • Write You a Haskell by Stephen Diehl. (incomplete, but useful) Available free online

Video resources

All lectures are available via webcast. You may also find lectures from CSE 116 (Fall 2019) helpful for background on Haskell. See Piazza for login details.

Course Staff

Name Position Email Phone Office/consulting hours
Owen Arden Instructor Turn on JavaScript to view the email address 2-7044 Fridays 1pm - 2pm, E2-349A
(please make a appointment)
Gan Shen TA gshen42@ucsc.edu Mondays 11:00am-12:00am, BE-151
Devesh TA ddevesh@ucsc.edu Fridays 12:00-1:00PM, BE-151


Students are evaluated on the basis of homeworks, labs, and a final exam. Regrades must be requested, in person, within 2 weeks of receiving graded assignment.
Class participation

Involves answering questions in-class via Google Forms.

Homework assignments

There will be 6 programming assignments, primarily in Haskell. You may work on these assignments individually or in groups of at most two, but all work must be submitted individually. Both individuals must clearly indicate membership in the group in their submission.

Midterm exam

Will be held during lecture (see schedule). Closed book, but you may use a handwritten double-sided “cheat sheet”.

Final exam

Will be held on Thursday March 19th, from 12-3pm (location TBD). Closed book, but you may use a handwritten double-sided “cheat sheet”.

If your final grade is higher than your midterm grade, it will replace your midterm grade, but you must take both the midterm and the final.

Piazza extra credit

Extra credit for top 5 best participants on Piazza, decided by course staff.


Course data collection

We may, in the future, use anonymized data collected from in-class quizzes and other course assignments to improve learning outcomes for future CSE students. If you do not want us to use any data associated with you for these purposes, please opt out here.

Mandatory Course Requirements

You must receive a 60% or higher for your homework average and final exam grade to pass the class.

For example, doing well on the final but submitting poor (or no) homework solutions will see you fail the class.

Late submissions

You have a total of four late days that you can use throughout the quarter as you need them, where a late day means anything between 1 second and 23 hours 59 minutes and 59 seconds past a deadline. You should save your late days for when unexpected circumstances arise that prevent you from turning in your homework on time. It is very unlikely that additional extensions beyond these four days will be approved, so use them wisely.

Late assignments turned in without available late days will be graded with a 20% penalty per day. This penalty also applies to groups: if Alice has one late day left and Bob doesn't, then if they turn in the assignment a day late, Alice will be given full credit, but Bob will receive a 20% penalty.

DRC accomodations

UC Santa Cruz is committed to creating an academic environment that supports its diverse student body. If you are a student with a disability who requires accommodations to achieve equal access in this course, please submit your Accommodation Authorization Letter from the Disability Resource Center (DRC) to me privately during my office hours or by appointment, preferably within the first two weeks of the quarter. At this time, I would also like us to discuss ways we can ensure your full participation in the course. I encourage all students who may benefit from learning more about DRC services to contact DRC by phone at 831-459-2089, or by email at drc@ucsc.edu.

Schedule (subject to change)

# Date Topic/notes Assignments
1 Mon 01/06/20 Course overview and introduction (slides)
2 Wed 01/08/20 A crash course in Haskell (slides 1, slides 2)
3 Fri 01/10/20 ...
4 Mon 01/13/20 ...
5 Wed 01/15/20 Numbers, UnaryOps, Variables (slides) HW#0 due
6 Fri 01/17/20 ...
7 Wed 01/22/20 ...
8 Fri 01/24/20 Branches and Binary Operators (slides) HW#1 due
9 Mon 01/27/20 ...
10 Wed 01/29/20 ...
11 Fri 01/31/20 Data representation (slides)
12 Mon 02/03/20 ...
13 Wed 02/05/20 ... HW#2 due
14 Fri 02/07/20 Midterm review
15 Mon 02/10/20 (cancelled)
16 Wed 02/12/20 (midterm postponed)
17 Fri 02/14/20 Functions (slides)
Sun 02/16/20 HW#3 due
18 Wed 02/19/20 Midterm (closed book, in class)
19 Fri 02/21/20 (cancelled)
20 Mon 02/24/20 ...
21 Wed 02/26/20 ...
22 Fri 02/28/20 Heap Data (slides)
Sun 03/01/20 HW#4 due
23 Mon 03/02/20 ...
24 Wed 03/04/20 ...
25 Fri 03/06/20 Garbage Collection (slides)
26 Mon 03/09/20 ...
27 Wed 03/11/20 ... HW#5 due
28 Fri 03/13/20 ...
Thu 03/19/20 Final exam 12pm-3pm
Based on course materials developed by Ranjit Jhala