CSE 114A: Foundations of Programming Languages / Fall 2024
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.
Lecture: Mondays, Wednesdays, and Fridays from 9:20AM to 10:25AM in Humn Lecture Hall.
Office Hours: See calendar below for Prof. Arden and staff availability.
Course announcements and discussions happen on the All assignments will be managed through GitHub Classroom and submitted to Gradescope. You can find assignment links in Canvas.
This week
Coursework
- Students are evaluated on the basis of programming assignments, a midterm, and a final exam.
- Regrades must be requested within 2 weeks of receiving graded assignment.
- 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.
Class participation In-person and interactive participation in class. Measured primarily via quizzes in lecture. |
5% |
Homework assignments There will be 6 programming assignments, mostly in Haskell. The first two are individual assignments, other assignments may be worked in groups of up to two students. Group members are responsible for understanding the function, purpose, and source of all code, including whether it meets academic integrity standards. |
30% |
Midterm exam Held during lecture. Closed book, but a double-sided “cheat sheet” is permitted. |
30% |
Final exam Held during registrar-assigned exam period. Closed book, but a double-sided “cheat sheet” is permitted. 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. |
35% |
Extra credit Top-tier Ed Discussion participation (good questions + good answers). Hard to earn! Looking for early engagement on lecture material and assignments; insightful questions and constructive answers. |
up to +5% |
Grading scheme
For your overall grade, I use a grading scheme based on a traditional scheme with some modifications.
- To prevent "near-miss" letter grades, I always take the ceiling of your raw score.
- The C- range is omitted (scores in this range will be given a C)
Ceiling of raw score | Letter grade |
---|---|
> 97% | A+ |
>= 93% | A |
>= 89% | A- |
>= 86% | B+ |
>= 82% | B |
>= 79% | B- |
>= 76% | C+ |
>= 69% | C |
>= 66% | D+ |
>= 62% | D |
>= 59% | D- |
>= 59% | F |
Late Policy
- You have a total of four late days 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.
PLEASE READ: 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.
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. Such tools can be incredibly useful, and it may be worth your while to learn how to use them.
That said, if the tool generates answers that you don't understand, are not reasonably confident of the correctness of, or would struggle to explain to course staff, then the tool isn't 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 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.- How to report hate or bias
- How to report sexual harrassment
- CARE (free and confidential support services)
- Crisis Assistance and Suicide Prevention
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
Previous Offerings
- Spring 2024
- Winter 2024
- Fall 2023
- Spring 2023
- Winter 2023
- Fall 2022
- Spring 2022
- Winter 2022
- Fall 2021
- Fall 2019
- Spring 2019