Course Syllabus
COMP 1020: Programming For all 2
Class in JTB 140 on Mondays & Wednesdays
12:55-13:45
Class is available via Zoom as a backup option. Details below.
Lab in WEB L208 on Fridays:
9:40 - 10:30
10:45 - 11:35
11:50 - 12:40
Lab is in-person only. Attendance counts toward your grade. Details below.
Instructors
| Instructor: |
Ben Greenman <blg@cs.utah.edu> MEB 3252 |
| TA: |
Connor Buchanan <u1316535@utah.edu> Henry Lee <hyunwoo.lee@utah.edu> Bobby Morelli <u1256866@utah.edu> Dibri Nsofor <u1472563@utah.edu> WEB L224 / L226 |
Course Description
Overview
| Course | COMP 1020 |
| Department | School of Computing |
| Credit Hours | 3 |
| Semester | Fall 2025 |
Outcomes
- Systematically design functions, classes, and scripts in Python.
- Debug and modify small programs.
- Use tools such as version control and unit-test frameworks to manage larger projects.
- Know how to use object-oriented constructs such as instance variables & inheritance.
- Make an interactive application with a GUI toolkit.
Materials
There is no required textbook.
Optional reading:
- Brad Miller, David Ranum, Jeffrey Elkner, Allen B. Downey, and Chris Meyers. How to Think Like a Computer Scientist: Interactive Edition.
Slides and lecture notes will appear in the Pages tab on Canvas: https://utah.instructure.com/courses/1167376/pages
Communication
Discord:
Email:
- blg@cs.utah.edu
- benjaminlgreenman@gmail.com (unofficial, just in case delivery to the utah address fails)
Help Hours / Office Hours
- Prof. Ben: Monday & Wednesday 2-3pm, MEB 3252
- TA Connor: Monday & Wednesday 4:30-5:30pm, CADE lab
- TA Bobby: Tuesday & Thursday 12:30pm-1:30pm, CADE lab
- TA Henry: Tuesday 2:30pm-3:30pm & Friday 1:00pm-2:00pm, CADE lab
- TA Dibri: Tuesday & Friday 1-2pm, CADE lab.
or by appointment.
Evaluation
Final grades will be based on the following combination of exam, programming assignment, quiz, and lab participation scores:
- 10% for Midterm Exam 1, to be completed in class on Wednesday September 17.
- 15% for Midterm Exam 2, to be completed in class on Wednesday November 5.
- 15% for the Final Exam, scheduled for December 12 from 13:00 to 15:00.
- [Edit: Nov 18] Location = our regular classroom, JTB 140
- 35% for Programming Assignments.
- There are 12 [Edit: Sep 8th] 11 assignments in total. Late assignments will be accepted up to 2 days after the deadline, penalized 10% each day. 2 days late = 20% penalty ==> max score is 80%.
- 15% for weekly, handwritten Quizzes.
- There are 15 [Edit: Sep 8th] 14 quizzes in total. We will drop your lowest two quiz scores.
- 10% for Lab Participation, in person in the CADE lab on Fridays.
- There are 13 labs in total. We will drop your lowest two lab scores.
Contact the instructor immediately if you have concerns about the exam schedule.
Regrade requests are accepted up to 7 business days after grades are posted to Canvas. You must email the instructor or visit office hours to submit a regrade request. Anything can be regraded: exams, assignments, quizzes, or labs.
Letter grades will be derived from numeric grades as follows:
| Final Grade on Canvas | Official Letter Grade |
| 94-100 | A |
| 90-93 | A- |
| 87-89 | B+ |
| 84-86 | B |
| 80-83 | B- |
| 77-89 | C+ |
| 74-76 | C |
| 70-73 | C- |
| 67-69 | D+ |
| 64-66 | D |
| 60-63 | D- |
| 0-59 | E |
The instructor reserves the right to adjust letter grades upward or downward on a case-by-case basis to reflect students' actual performance in the class.
Teaching and Learning Methods
Class time will center on lectures and small-group discussions.
Labs will provide hand-on practice with topics from lecture in a small-group format. The labs that take place just before an exam will review exam material.
Assignments will provide deep, individual programming experience.
Quizzes will reinforce basic concepts from lecture.
Course Policies
Attendance: Class attendance is optional. If present, you will be expected to speak and to participate in class activities.
Zoom: Lectures will be streamed on zoom and recordings will be available on Canvas for several weeks. Zoom attendance is allowed but not encouraged. We will not monitor the zoom chat. We will not allow audio from participants. The positioning of the recording camera and microphone may be poor. Our goal with the recordings is to allow anyone to catch up with class for any reason it might be necessary, no questions asked, but without distracting in-person participants.
Academic Misconduct: We follow the Kahlert School of Computing policy. See below. Academic dishonesty results in a failing grade for the course. Two instances of academic dishonestly lead to expulsion from the major.
Collaboration: Labs may be completed alone or in pairs. Groups of three or more are not allowed. Each person must submit their own copy of lab work. Programming Assignments must be completed individually. You may discuss assignments with other students. You may not copy solutions from another student. When in doubt, ask the instructor if your plans for collaboration would count as cheating.
Quizzes: Quiz solutions must be handwritten and submitted to the instructor (in class or in office), unless a disability accommodation is needed. The goal of this policy is to mimic the format of exams and to make absolutely sure that your quiz answers were not copy/pasted from an AI tool. If you choose to copy from AI, you will at least have to handwrite the answer.
AI + LLM: AI tools are allowed, but discouraged. We believe that heavy use of AI on labs and assignments will have a negative impact on your exam scores. Be advised that AI tools such as ChatGPT, DeepSeek, etc. may produce wrong and misleading outputs, and that their cost to the environment may not be factored into their usage price.
- U. Utah Center for Teaching Excellence AI guidelines: https://cte.utah.edu/instructor-education/ai-for-teaching.php
Schedule
| Week | Monday | Wednesday | Lab | Assignment |
| 1 | Course Overview, Design Recipe | Python Basics | Shapes | I/O |
| 2 | Structured Programming | Methods | Data | Plotting |
| 3 | No Class, Happy Labor Day | Working with Data | Classes | Horse Race |
| 4 | Classes, Horse Race | Planet Graphics | Midterm prep | - |
| 5 | Review for Midterm 1 | Midterm 1 | GitHub | Word Spinner |
| 6 | Spinner, Midterm 1 Solutions | ChatBots | Chat | ChatBot |
| 7 | Pygame | Events, Framerate | PyGame | - |
| 8 | No Class, Fall Break | No Class, Fall Break | - | |
| 9 | Collisions | Comprehensions | List Comp. | Clicker |
| 10 | Inheritance | Override Methods | Inheritance | Cave |
| 11 | Static Methods, Class Vars | Sound, Flappy Bird | Midterm 2 prep | Cave 2 |
| 12 | Review for Midterm 2 | Midterm 2 | Smolcraft | Sprite |
| 13 | Midterm 2 Solutions | Qt, Software Engineering | Qt | Maya |
| 14 | Maya 1: Parameterized Models | Maya 2: Color, Shading, Objects | Maya | Maya 2 |
| 15 | Maya 3 | Video: Shaders | - | |
| 16 | TBD | Review for Final Exam, Wrap-Up | Final Review |
Support
Accommodations will be considered on an individual basis and may require documentation.
Please contact the instructor as soon as possible (preferably shortly before the semester begins) to request accommodations of any kind.
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.
To request an accommodation for religious practices, contact your instructor at the beginning of the semester.
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
Office of Equal Opportunity
The Office of Equal Opportunity And Affirmative Action (OEO/AA) is dedicated to providing a fair and equitable environment for all to pursue their academic and professional endeavors and to equally access University programs.
OEA/AA
801-581-8365
oeo.utah.edu
383 South University Street
Level 1, OEO Suite
Salt Lake City, UT 84112
Price College Counseling Service
Goal: provide a confidential, safe, and non-judgmental space to address any stressor or concern in your life. Empower you to take actions to meet your needs, values, and goals.
Call to schedule an Initial Consultation (IC) appointment. Be sure to ask for “embedded counseling for College of Engineering”.
Counseling Center
801-581-6826
www.price.utah.edu/students/current/counseling
WEB 1707