CSE 114A: Foundations of Programming Languages / Spring 2025
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 with Lindsey: Mondays, Wednesdays and Fridays from 2:40pm to 3:45pm in Oakes 105
Discussion Sections:
- Section A, with Yan: Tuesday 8:30-9:35am, Rachel Carson 242
- Section B, with Jonathan: Thursday 7:10-8:15pm, Kresge 3301
- Section C, with Nathan: Friday 10:40-11:45am, Social Sciences 1 161
- Section D, with Yan: Friday 8:00-9:05am, Rachel Carson 242
- Section E, with Jonathan: Monday 6:40-7:45pm, Natural Sciences Annex 103
- Section F, with Nathan: Wednesday noon-1:05pm, Rachel Carson 252
Lindsey’s office hours: TBD
TA Office Hours and Tutoring Hours: See the calendar below for availability.
Course announcements and discussions happen on the CSE114A Zulip organization. Contact course staff if you need an invitation to Zulip.
This week
Coursework
- We evaluate students on the basis of class participation, section participation, homework assignments, two midterm exams, and a final exam.
- Assignment and exam regrades must be requested within one week of receiving the graded assignment or exam. A valid regrade request should include a specific reason for the regrade. Remember that we try very hard to assign partial credit fairly and consistently, so unless an actual mistake occurred, your regrade request may be declined to ensure fairness to all students.
Your grade has the following components:
Component | Weight |
---|---|
Class participation In-person and interactive participation in class. Measured primarily via quizzes in lecture. |
5% |
Section participation Measured primarily via worksheets that you'll complete during section. |
10% |
Homework assignments There will be six 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. |
25% |
Midterm exam 1 Will be held during lecture (see schedule). Closed book, but you may use a double-sided “cheat sheet.” |
15% |
Midterm exam 2 Will be held during lecture (see schedule). Closed book, but you may use a double-sided “cheat sheet.” |
15% |
Final exam Held on Tuesday, June 10, 4:00-7:00p.. Closed book, but you may use a double-sided “cheat sheet.” |
30% |
Extra credit for “superstar” participation on Zulip Up to 5% extra credit for top-tier participation on Zulip (good questions and good answers), as determined by course staff. Hard to earn! Looking for early engagement on lecture material and assignments; insightful questions and constructive answers. |
up to +5% |
Other extra credit opportunities Other opportunities for extra credit may be announced on Zulip from time to time. |
varies |
Grading scheme
For your overall grade, after determining a percentage using the weights above, I use the following grading scheme. It's pretty standard, except that I don't give C- grades and the range for C goes down to 70%. Additionally, for anyone who is within .5% of getting a higher letter grade when rounded up, my policy is to give the higher letter grade. For example, for someone who has 82.5%, I round up to 83.0% and give that person a B rather than a B-. Aside from that standard rounding policy, I don't entertain requests for grade changes.
Percentage | Letter grade |
---|---|
97%-100% | A+ |
93-96.99% | A |
90-92.99% | A- |
87-89.99% | B+ |
83-86.99% | B |
80-82.99% | B- |
77-79.99% | C+ |
70-76.99% | C |
60-69.99% | D |
0-59.99% | F |
Late Policy
- You have a total of five late days for assignment submissions that you can use throughout the quarter as you need them.
- 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 five days will be approved, so use them wisely.
Health absences and makeup policies
For your own well-being as well as your classmates, some of whom may have compromised immune systems or increased risk of serious complications, please do not come to class if you feel sick. In particular, if you have symptoms in any way similar to extremely contagious diseases such as COVID-19, please err on the side of caution and stay home until you have tested negative or are no longer contagious. Consider masking indoors to prevent exposure and keep yourself healthy and able to complete your coursework.
Class participation policies, homework late days, and grading policies have been designed to include slack for occasional illnesses and unavoidable absences for family emergencies. In rare cases of an extended illness (e.g., a week or more), or sudden illness/emergency impacting an exam, some accommodations are possible but not guaranteed. Limited homework extensions, alternate testing locations, or a makeup exam up to 2 days after an exam date may be offered -- at the discretion of the instructor -- in these rare cases. Students should make every effort to plan ahead to limit the impact of unforeseen circumstances on their ability to successfully complete coursework.
For more information on reasonable limitations and expectations regarding makeup assignments and exams, you can refer to the following memos from the Academic Senate Committee on Educational Policy:
Academic Integrity Policy
Like most courses, this course includes learning activities (of which assignments are a part) and evaluation activities (of which exams are a part). You are mostly free to engage with the learning activities in the way that best helps you learn. But the learning activities are designed to help you pass the evaluation activities, where you have less freedom regarding how to engage. So, be advised that it's in your best interest to engage appropriately with the learning activities.
What does "appropriate" engagement with assignments in this course look like? You can:
- Ask the course staff for help and advice as needed. That's what we're here for.
- Ask your classmates for help and advice as needed, but don't copy from anyone else: once you understand the concepts, you must write your own code.
- Consult resources suggested by the course staff.
- Use publicly available resources you find, such as online documentation.
Additionally, you must cite any sources you use. When you submit a homework assignment, you must include at the top level of your assignment repository a file called INTEGRITY.md that gives credit to all sources you used while working on the assignment. So that you have an idea of the level of detail that is expected, we have provided an example INTEGRITY.md file. Thorough citation is the way to avoid running afoul of accusations of misconduct.
The integrity statements you submit will be read by the course staff -- not to try to catch you out, but rather as an opportunity to learn about the parts of the assignments you found difficult, and whether the resources you made use of were effective for you.
Policy on the use of generative AI tools
You are welcome to try using generative AI tools for homework assignments in this course. But after seeing how their use hurt students the last couple of times I've taught this course, I honestly don't recommend it. If the tool generates answers that you don't understand, are not reasonably confident of the correctness of, or would struggle to explain to the course staff, then the tool is hurting you more than it's helping, and you should seek help from the course staff instead.
If you use any generative AI tool with a chat-style interface in this course, you need to specify which tool you used and provide a complete transcript of your entire interaction with the tool, including all the prompts you gave to the tool and all of its responses. You can either include a link to the transcript in your INTEGRITY.md file, or you can copy and paste the entire transcript into the file. The term "generative AI tool with a chat-style interface" includes (but is not limited to) ChatGPT, Claude, and the GitHub Copilot chat interface.
Of course, we haven't even begun to address the topic of the myriad environmental, social, and ethical problems involved in the training, deployment, and use of generative AI tools based on large language models, but that's a topic for another course.
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 there 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.- How to report hate or bias
- How to report sexual harrassment
- CARE (free and confidential support services)
- Crisis Assistance and Suicide Prevention
DRC accommodations
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 contact the Disability Resource Center (DRC), and feel free to reach out to me personally as well. I'm eager to discuss ways we can ensure your full participation in the course.
Previous Offerings
- Winter 2025
- Fall 2024
- Spring 2024
- Winter 2024
- Fall 2023
- Spring 2023
- Winter 2023
- Fall 2022
- Spring 2022
- Winter 2022
- Fall 2021
- Fall 2019
- Spring 2019
Instructor
Teaching Assistants

Jonathan Castello

Nathan Liittschwager

Yan Tong
Tutors

Ananya Balagere

Aly Cerruti

Alisha Manocha

Natalie Marks

Nikita Shenoy

Ant Srikanth

Michelle Wan
Readers

Anthony Carmona

Jiancheng Li

Evan Nguyen

Milo Sinton

Julia Sather

Maya Zee