CSE 114A: Foundations of Programming Languages / Winter 2025, Section 02


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: Tuesdays and Thursdays from 11:40am to 1:15pm in Classroom Unit 001

Discussion Sections:

  • Section A, with Nathan: Monday noon-1:05pm, Physical Sciences 136
  • Section B, with Nathan: Monday 1:20-2:25pm, Physical Sciences 136
  • Section E, with Roger: Monday 5:20-6:25pm, Oakes 102
  • Section C, with Roger: Tuesday 8:30-9:35am, Physical Sciences 140
  • Section F, with Yan: Wednesday 10:40-11:45am, Rachel Carson 252
  • Section D, with Yan: Wednesday 7:10-8:15pm, Oakes 222

Lindsey’s office hours: Tuesdays, 2-3pm in E2 349B.

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, a midterm exam, and a final exam.
  • Assignment and exam regrades must be requested within two weeks 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.

30%

Midterm exam

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

25%

Final exam

Held on Monday, March 17, 8:00-11:00am. Closed book, but you may use a 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.

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.

PercentageLetter 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 four 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 four 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, such as those based on large language models (LLMs), for homework assignments. But after seeing how their use hurt students the last time I 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.

It's important to be aware of the limits of generative AI tools, and of how to use and cite them properly. In particular, here's what you need to know for this class:

  • You must acknowledge your use of generative AI tools. If you use generative AI tools for any of the work you submit for this class, you must cite your sources as described above, explaining what tool you used, what you used it for, and exactly what prompts you used to get the results. Failure to do so is academic misconduct.
  • If you provide low-effort prompts, you will get low-quality results. You will need to refine your prompts in order to get good outcomes. This will take work.
  • Don't trust anything that a generative AI tool says. It will often hallucinate plausible-but-wrong answers to questions. Assume it is wrong unless you either know the answer or can check with another source. You will be responsible for any errors or omissions provided by the tool. It works best for topics you understand.

(This policy is based on the article "Why All Our Classes Suddenly Became AI Classes" by Ethan Mollick and Lilach Mollick.)

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 LLM-based tools, 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.

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


Instructor

Teaching Assistants

Nathan Liittschager

Roger Li

Yan Tong

Tutors

Advik Kunta

Ashwin Marichetty

Benito Gravert

Michelle Wan

Miles Asher

Neha Abbas

Neil Grover

Nikita Shenoy

Peter Van Esch

Yoshinobu Sono