Skip to content

DavisPL-Teaching/289c

Repository files navigation

ECS 289C: Seminar in Programming Languages - Spring Quarter 2024

Course Information

  • Instructor: Caleb Stanford
  • CRN: 57017
  • Units: 4 (please change this in schedule builder!)
  • Listed Title: Special Topics in Programming Languages and Compilers
  • Schedule: Monday, Wednesday, Friday 2:10-3pm
  • Location: Giedt 1006

Course Description

Welcome! This course is a graduate seminar. We will cover topics in programming languages and related areas at a research level. Topics include: programming language design, type systems, program testing and bug-finding, program verification, side effects, system-building, and applications. The primary focus of the course will be on reading papers and in-class discussions. There will also be a final project to synthesize 3 papers in an area of your choosing into either a research report or an implementation.

This seminar will be discussion-based; as such, a part of your grade is based on attendance. I also encourage you to engage with the material through Piazza and Perusall. Most course announcements will be through Piazza. The paper readings can be found on Perusall.

Expected Work

To help you get the most of the readings, there will be a Piazza thread where everyone should post their overall thoughts on the reading for each week. For example, what did you like about the paper? What did you not like about the paper? What questions do you have? In addition, you may use Piazza and Perusall to help with reading and understanding the material.

One student will be assigned to lead each discussion. That means that each student will lead about one discussion every 2 weeks (4 discussions total), depending on the final number of students enrolled. For discussion leads, I recommend that you start with a short presentation about the main ideas in the paper (about ~20 minutes, max. 20 slides), including things you liked and didnt' like, followed by 10 slides with questions for discussion (1 question per slide). (This structure is subject to change; if needed we may adapt as the class progresses to ensure the format is working!)

Lastly, there will be a final project which consists of one of two options:

  1. A software project of your choice to explore an idea covered in 2-3 papers in an active research area;
  2. A written report to compare 2-3 papers in an active research area.

Intended Audience

This course is intended for graduate students in computer science or ECE. No prior background or research experience in programming languages will be required.

Learning Objectives

By the end of the course, students should be able to:

  • Understand the foundational ideas and major papers in programming languages.
  • Understand the main active areas of research in programming languages.
  • Read a research paper and think critically about its findings.
  • Lead and participate in research-level discussions.

Course Schedule

See schedule.md.

Evaluation Criteria

In-class participation (25%):

  • Attendance and participation (15%) -- attending the class and pariticipating in group activities.
  • Discussion leads (10%) -- based on the discussions that you individually lead.

Outside-of-class participation (25%):

  • Perusall (5%) -- participation on Perusall
  • Reading summaries (20%) -- posted on Piazza for each paper.

Final project (50%):

  • Final Project or Final Report (50%) -- this includes a final presentation.

Perusall points

Perusall does a good job of automatically grading your participation. I do look through to see if the score is consistent with the 1 comment and 1 question I requested, but I don't change the grade manually unless I notice a discrepancy.

Reading summaries

New change: I'm only requiring one reading summary per week (pick the one of the three papers you are most interested in), see Piazza.

Final project details

See Piazza.

Attendance

Note: This section has been clarified based on feedback from the mid-quarter survey. These clarifications are effective going forward as of May 15.

You are allowed a buffer of 3 free absences. I am assuming that you will use these absences in case you are sick or have to miss class for any other reason. No need to email me about the first 3 absences! They will automatically be counted towards your 3 free absences at the end of the quarter. If you need to be absent 4 or more times, please email me.

If you are late to class, it counts as 80% for the purposes of attendance (1/5th of an absence), which means that you can use one of your 3 free absences to cover 5 late arrivals. Note: While this policy has not changed, the precise grade deduction was not clear in the syllabus before. Therefore, if late arrivals prior to week 7 are going to affect your grade, I will email you individually to discuss the situation and the end of the quarter. I expect that this will not affect most of you, but please keep in mind the policy for the remaining weeks.

Late policy

Note: This section has been clarified. These clarifications are effective as of May 15.

I will accept late reading summaries for 50% credit. While I can't guarantee that I will accept other late work (especially the final project), you may email me if you need to request an extension.

AI Policy

I encourage the use of AI if it helps your workflow (for example, to help you understand the readings). You should be prepared to discuss the material in class, including any comments you write.

Collaboration Policy

You may collaborate on the final project, in groups of 2-3 people. Please submit only one report for the group.

Contact and office hours

Please use the Piazza for questions related to course material. If you have a question that is more sensitive or unrelated to the course, please email me at (cdstanford ucdavis edu). I will also be available during office hours if you need any additional support.

Disclaimers

Communication from the instructor will only be sent through official UC Davis email addresses and channels. Please be vigilant of job scams impersonating faculty members. For more information, visit UC Davis Job Scams Prevention.

Please be nice to each other. UC Davis has policies against harassment and discrimination. Be inclusive of everyone in group discussions, especially those who may not initially speak up (for example, go around and ask what each person thinks). If you need to, you may reach me by email to report an issue or a dispute with a classmate.

About

Seminar in Programming Languages

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published