Course Syllabus

Syllabus

CS 3520/6520 Programming Languages

CTIHB 109 MW 11:50-1:10

Instructors

Instructor: 

Matthew Flatt <mflatt@cs.utah.edu> MEB 3256

Teaching Assistants: 

Yuyou Fan <yuyou.fan@utah.edu>

Hanwen Guo <hanwen.guo@utah.edu>

Mugahed Izzeldin <m.izzeldin@utah.edu>

Office Hours

The teaching staff will hold office hours according to the following schedule or by appointment with the instructor (Matthew):

Monday 2:00pm-3:00pm MEB 3256 Matthew
Tuesday 10:00am-12:00pm WEB L226 (CADE Lab 3) Hanwen queue
Wednesday 2:00pm-4:00pm MEB 3105  Mugahed queue
Thursday 12:00pm-2:00pm WEB L226 (CADE Lab 3) Mugahed queue
Thursday 2:00pm-4:00pm WEB L226 (CADE Lab 3) Yuyou queue
Friday 12:00pm-2:00pm WEB L226 (CADE Lab 3) Hanwen queue
Friday 2:00pm-4:00pm WEB L226 (CADE Lab 3) Yuyou queue

Course Description

Overview

Course CS 3520/6520
Department School of Computing
Pre-Requisites CS 3500 (recommended: CS 3505)
Credit Hours 3
Semester Fall 2025
Description Ideas behind the design and implementation of programming languages. Syntactic description; scope and lifetime of variables; runtime stack organization; parsing and abstract syntax; semantic issues; type systems; programming paradigms; interpreters and compilers.

Goals & Objectives

This course cover concepts of programming languages generally and functional languages in particular, including functions, continuations, syntactic sugar, and type systems. These concepts are explained primarily though a sequence of interpreters and type checkers.

At the end of this course, students will be able to:

  • employ a recipe for functional programming: data, examples, template (including natural recursions), implementation, and tests
  • use and implement lexical scope, closures, records, objects, and classes
  • encode language constructs using constructs that are more primitive, especially lambda-calculus terms
  • represent continuations and state explicitly, instead of relying on host-language implementations
  • use and implement different evaluation orders: eager and lazy
  • explain type soundness and implement sound type checkers for functional and object-oriented languages that include subtyping and parametric polymorphism

Required Materials

Communication

Preferred Contact Methods

You can also contact the instructor or TAs in the following ways:

  • Piazza located in the left Canvas menu.
  • Canvas Inbox located in the left Canvas menu.
  • mflatt@cs.utah.edu or TA email address

Office Hours

See the table at the top of the syllabus for office hours.

Asking for Help

When asking a question in a place where it makes sense to show your code (i.e., in a direct message to the instructor or a TA):

  • Do include the full source of your program as an attachment.
  • Do point the instructor/TA to a particular part of the program (e.g., by line number) where you have a question or where you think there’s a problem.
  • Don’t send just a fragment of your code. The instructor/TA probably needs more context. Also, If you don’t understand why a fragment of code has problems, then maybe you’re looking at the wrong fragment.
  • Don’t include just a screen shot of the program text. Sometimes, the instructor/TA needs to try running your program to see what happens, and screenshots don’t compile. A screen shot is useful sometimes, but in that case, include both program text and a screen image.
  • Don’t copy and paste the text into your mail message, because mail transport mangles text. Provide a program as an attachment.

Evaluation

Your performance in this course will be evaluated by:

  • Class participation (5%)
  • Homework assignments (50%)
  • Two midterm exams (15% each)
  • Final exam (15%)

See the “Grading” and “Late Assignments” sections below for details.

Course Policies

Grading

Class participation involves in-class exercises. Completing at least 60% of those exercises in class will be rounded up to full credit for class participation.

Homework is graded on the following scale: check+ = 100% for perfect or nearly perfect work, check = 80% for somewhat flawed but acceptable work, check- = 50% for seriously flawed work, 0 = 0% for missing or completely unacceptable work, and check++ = 110% for perfect work plus extra credit (when specifically offered). All homework assignments are weighted equally. Although the handin server runs tests on submission to help you check your understanding, test results are not used for grading; homework grades are determined by an instructor or TA reading your code. After HW 0, full syntactic test coverage is required.

Exams are graded on a scale of 0 to 100 points.

Submitting Assignments

All homework assignments must be submitted via the “Handin” button in DrRacket. Install the uu-cs3520 package and restart DrRacket to get the “Handin” button. See DrRacket and the Handin Button for more information. You can check your handin status and get feedback from the Handin status server.

Late Assignments

Late in-class exercises are not accepted. Homework submissions will be accepted up to 48 hours after the deadline. For each student, up to two late homework submissions (each up to 48 hours late) will be accepted without penalty. These “free lates” are meant to cover everyday obstacles to homework submission, such as brief illness, car trouble, and short trips away, and they are applied automatically (so no need to request them). After a student's first two late submissions, a late submission within 24 hours of the deadline will be penalized 25%. A submission more than 24 hours late but less than 48 hours late will be penalized 50%.

Large Language Models

The use of large language models (LLMs) such as ChatGPT is permitted on homework assignments. An LLM's contribution to your homework submission must be acknowledged in a comment. Students should take care to use LLMs in a way that fosters their own learning — perhaps, for example, relying on ChatGPT as a way of understanding existing code rather than having it change code or write new code for you. The course staff will not provide technical or financial support to help students use LLMs. Do not rely on LLMs to answer course-related questions (grading, due dates, etc.); ask the course staff instead. The use of LLMs, program interpreters, or remote resources is not permitted during in-class midterm exams.

Some general disclaimers: LLMs may output text that is grossly incorrect, subtly incorrect, or otherwise misleading. LLM companies may track the queries you submit. LLMs may have, in the aggregate, a large cost to the environment that companies do not (or, cannot) fully account for.

Grading Scale

Letter Scoring
A 100% - 93%
A- 92.9% - 90%
B+ 89.9%–87%
B 86.9%–83%
B- 82.9% - 80%
C+ 79.9%–77%
C 76.9%–73%
C- 72.9% - 70%
D+ 69.9%–67%
D 66.9%–63%
D- 62.9% - 60%
E 59.9%–0%

Accommodations

Disclaimer

Accommodations will be considered on an individual basis and may require documentation.

Please contact your instructor and/or teaching assistant as soon as possible (preferably shortly before the semester begins) to request accommodations of any kind.

Extreme personal circumstances

Please contact your instructor as soon as possible if an extreme personal circumstance
(hospitalization, death of a close relative, natural disaster, etc.) is interfering with your ability to
complete your work.

Religious Practice

To request an accommodation for religious practices, contact your instructor at the beginning of the semester.

Active Duty Military

If you are student on active duty with the military and experience issues that prevent you from participating in the course because of deployment or service responsibilities, contact your instructor as soon as possible to discuss appropriate accommodations.

Disability Access

All written information in this course can be made available in an alternative format with prior notification to the Center for Disability Services (CDS). CDS will work with you and the instructor to make arrangements for accommodations. Prior notice is appreciated. To read the full accommodations policy for the University of Utah, please see Section Q of the Instruction & Evaluation regulations.

If you will need accommodations in this class, contact:

Center for Disability Services
801-581-5020
disability.utah.edu
162 Union Building
    200 S. Central Campus Dr.
     Salt Lake City, UT 84112

Changes to the Syllabus

This syllabus is not a contract. It is meant to serve as an outline and guide for your course. Please note that your instructor may modify it to accommodate the needs of your class.

You will be notified of any changes to the Syllabus.

University Policies

Americans With Disabilities Act (ADA)

The University of Utah seeks to provide equal access to its programs, services, and activities for people with disabilities.

All written information in this course can be made available in an alternative format with prior notification to the Center for Disability & Access (CDA). CDA will work with you and the instructor to make arrangements for accommodations. Prior notice is appreciated. To read the full accommodations policy for the University of Utah, please see Section Q of the Instruction & Evaluation regulations.

In compliance with ADA requirements, some students may need to record course content. Any recordings of course content are for personal use only, should not be shared, and should never be made publicly available. In addition, recordings must be destroyed at the conclusion of the course.

If you will need accommodations in this class, or for more information about what support they provide, contact:

Center for Disability & Access

801-581-5020
disability.utah.edu

Third Floor, Room 350
Student Services Building
201 S 1460 E
Salt Lake City, UT 84112

Safety at the U

The University of Utah values the safety of all campus community members. You will receive important emergency alerts and safety messages regarding campus safety via text message. For more safety information and to view available training resources, including helpful videos, visit safeu.utah.edu.

To report suspicious activity or to request a courtesy escort, contact:

Campus Police & Department of Public Safety

801-585-COPS (801-585-2677)
dps.utah.edu
1735 E. S. Campus Dr.
Salt Lake City, UT 84112

Addressing Sexual Misconduct

Title IX makes it clear that violence and harassment based on sex and gender (which includes sexual orientation and gender identity/expression) is a civil rights offense subject to the same kinds of accountability and the same kinds of support applied to offenses against other protected categories such as race, national origin, color, religion, age, status as a person with a disability, veteran’s status, or genetic information.

If you or someone you know has been harassed or assaulted, you are encouraged to report it to university officials: 

Office of Equal Opportunity and Title IX

801-581-8365
oeo.utah.edu
135 Park Building
201 Presidents' Cir.
Salt Lake City, UT 84112

Office of the Dean of Students

801-581-7066
deanofstudents.utah.edu
270 Union Building
200 S. Central Campus Dr.
Salt Lake City, UT 84112

To file a police report, contact:

Campus Police & Department of Public Safety

801-585-COPS (801-585-2677)
dps.utah.edu
1735 E. S. Campus Dr.
Salt Lake City, UT 84112

If you do not feel comfortable reporting to authorities, the U's Victim-Survivor Advocates provide free, confidential, and trauma-informed support services to students, faculty, and staff who have experienced interpersonal violence.

To privately explore options and resources available to you with an advocate, contact:

Center for Campus Wellness

801-581-7776
wellness.utah.edu
350 Student Services Building
201 S. 1460 E.
Salt Lake City, UT 84112

Academic Misconduct

It is expected that students comply with University of Utah policies regarding academic honesty, including but not limited to refraining from cheating, plagiarizing, misrepresenting one’s work, and/or inappropriately collaborating. This includes the use of generative artificial intelligence (AI) tools without citation, documentation, or authorization. Students are expected to adhere to the prescribed professional and ethical standards of the profession/discipline for which they are preparing. Any student who engages in academic dishonesty or who violates the professional and ethical standards for their profession/discipline may be subject to academic sanctions as per the University of Utah’s Student Code: Policy 6-410: Student Academic Performance, Academic Conduct, and Professional and Ethical Conduct.

Plagiarism and cheating are serious offenses and may be punished by failure on an individual assignment, and/or failure in the course. Academic misconduct, according to the University of Utah Student Code:

“...Includes, but is not limited to, cheating, misrepresenting one’s work, inappropriately collaborating, plagiarism, and fabrication or falsification of information…It also includes facilitating academic misconduct by intentionally helping or attempting to help another to commit an act of academic misconduct.”

For details on plagiarism and other important course conduct issues, see the U's Code of Student Rights and Responsibilities.

 

Course Summary:

Course Summary
Date Details Due