CSE 114A: Foundations of Programming Languages / Winter 2023

Course Description

Problem solving emphasizing recursion, data abstraction, and higher-order functions. Introduction to types and type checking, modular programming, and reasoning about program correctness.
Prerequisite(s): CSE or CMPS 101

Lecture: Tuesdays and Thursdays from 1:30pm to 3:05pm in Classroom Unit 1

Discussion Sections: See calendar below. Please feel free to attend any discussion section as needed.

Office Hours:

Exam Schedule:

Course announcements and discussions happen on Piazza.

All assignments will be managed through GitHub Classroom and submitted to Gradescope. You can find assignment links in Canvas.

Class recordings are in YuJa (available through Canvas), some class notes in Google Drive.

If you need to miss class for any reason (sickness, atmospheric river), please watch the Yuja video afterwards (available through canvas) to catch up. If you are sick, please do not come to class – stay home and get healthy!

This week


Class participation

Involves answering questions in-class via Google Forms.


Homework assignments

There will be 6 programming assignments, mostly in Haskell. The first two are individual assignments, but the remaining assignments may be worked on in groups of at most two. Groups must be formed in GitHub Classroom to ensure both students receive credit.


Two midterm exams

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


Final exam

Closed book, but you may use a double-sided “cheat sheet.”

If your final grade is higher than one (or both) of your midterm grades, it will replace those midterm grade(s), but you must take both midterms and the final.


Extra credit

Top 5% best participants (good questions / good answers) on the Piazza Stream decided by course staff.


Late Policy

Diversity and Inclusion

We strive to create a learning environment that supports a diversity of thoughts and perspectives, and respects each student's individuality and identity. We make mistakes, though, and if these is a way we can make you feel more included, please let one of the course staff know in any way you feel comfortable. We also expect you as a student to honor and respect your classmates and abide by the UCSC Principles of Community. Building an effective learning environment is only possible with mutual respect. Each student must feel comfortable admitting when they don't understand or risking being wrong in public. Please make an effort to protect this space. We do not tolerate intolerance. If you experience any sort of harassment or discrimination, please contact the instructor as soon as possible. If you prefer to speak with someone outside of the course, please see the options below.

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 or by email, 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


Teaching Assistants

Aakash Mishra

Dhanajay Sonawane

Shishir Kapoor