Syllabus

CSc 110 Computer Programming I

Author

Xinchen Yu (she/her/hers)

Published

January 1, 2026

Location and Times

This course is scheduled to be an in-person course, meeting in-person two times a week. Your meeting time should be:

  • Gittings Room 129b, 3:30-4:45pm, Tuesday and Thursday

In addition to the lectures, you will attend one weekly in-person lab session (discussion section). This is the discussion section you selected when you enrolled in the course. The available sections are:

If you need an exception due to a medical or visa issue, please reach out to the DRC or instructor.

Description of Course

An introduction to programming with an emphasis on solving problems drawn from a variety of domains. Topics include basic control and data structures, problem solving strategies, and software development tools and techniques. Specifically, the Python programming language will be taught.

Course Prerequisites

The prerequisite is a C or better in College Algebra or CSc 101 or appropriate math placement score.

Instructor, Teaching Staff, and Contact Information

  • Instructor:
    • Xinchen Yu
      • Office: Gould-Simpson 829
      • Email: xinchenyu@arizona.edu
      • Instructor Website: xinchenyu.github.io
      • Office hours (open door, drop in, my office GS 829):
        • Thursday 12:00pm-2:00pm.
        • You are welcome to drop in at any time during this period. However, students in this course will be given priority from 12:00pm-1:00pm. If you arrive outside of this priority window, please understand that wait times may vary depending on whether students from another course are being helped.

There will also be many undergraduate TAs. See TAs and Office Hours!

Course Format and Teaching Methods

  • The course will have three required meeting times per-week. The in-class experience will consist of a combination of lecture, programming demonstrations (live coding), and in-class activities. This course will use active learning, peer-teaching, and flipped-classroom teaching techniques.

  • Each student must attend a weekly 50-minute discussion session that gives students the opportunity to practice additional problems in a smaller group setting of approximately 35 students. Guidance will be provided by the TAs. In addition, the students will be able to collaborate with neighboring students. Discussion sections are held in-person as a separate class meeting. Discussion section attendance is mandatory. The discussion section activities/problems will be graded for correctness.

  • By active learning, I mean that class time won’t be just 50 minutes of me talking. Instead, class meetings will include a number of in-class activities (ICAs) for you to work on individually and/or in a group. Thus, you can spend some time actively learning (instead of passively listening to the instructor).

  • By peer-teaching, I mean that you will have opportunities to learn from your classmates, and vice-versa. In many of the in-class activities, you will be able to work on groups and help each-other when necessary.

  • By flipped-classroom, I mean that you will often be assigned reading or other material to complete before attending each class meeting time. By doing this, you will come to class with (at least some) preparation. This will hopefully result in more class time allocated towards active learning!

Obtaining Help

  • Academic advising: If you have questions about your academic progress this semester, or your chosen degree program, consider contacting your department’s academic advisor(s). Your academic advisor and the Advising Resource Center can guide you toward university resources to help you succeed. Computer Science major students are encouraged to visit https://www.cs.arizona.edu/undergraduate/advising for advisor contact information.
  • CS Help Desk: The Computer Science IT team can help students with department technology issues including logging into/resetting your Lectura account, printing in the 930 lab, etc. You can submit a ticket for help by visiting the Computer Science Lab Helpdesk (note, requires UA login).
  • Life challenges: If you are experiencing unexpected barriers to your success in your courses, please note the Dean of Students Office is a central support resource for all students and may be helpful. The Dean of Students Office can be reached at 520-621-7057 or DOS-deanofstudents@email.arizona.edu.
  • Physical and mental-health challenges: If you are facing physical or mental health challenges this semester, please note that Campus Health provides quality medical and mental health care. For medical appointments, call (520-621-9202. For After Hours care, call (520) 570-7898. For the Counseling & Psych Services (CAPS) 24/7 hotline, call (520) 621-3334.
  • UA Ombuds: The UA Ombuds Office (https://ombuds.arizona.edu/) helps with a wide variety of issues, concerns, questions, conflicts, and challenges. The primary mission of the Ombuds Program is to assist individuals in resolving conflict, facilitating communication, and assisting the University by surfacing issues and providing feedback on emerging or systemic concerns. Communications with the Ombuds Committee are informal and off-the-record. The Ombuds Committee is governed by the following standards: (1) Confidentiality; (2) Impartiality: (3) Informality; and (4) Independence.

Course Objectives

By the end of the semester, you should be able to write complete, well-structured programs in python.

Expected Learning Outcomes

This successful CSc 110 student will be able to:

  • Use variables, control structures, basic data types, lists, dictionaries, file I/O, and functions to write correct 100 - 200 line programs.
  • Decompose a problem into an appropriate set of functions, loops, conditionals, and/or other control flow.
  • Find bugs when code is not working as expected using print statements and computational thinking skills, and will be able to understand and resolve errors.
  • Write clean, well-structured, and readable code.
  • Follow a provided style guide to write clean, well-structured, and readable code.
  • Explain the conceptual memory model underlying the data types covered in class.

(These learning outcomes are derived from ones developed by Allison Obourn, Ben Dicken, Adriana Picoral and other faculty at the UA).

Absence and Class Participation Policy

Participating in the course and attending lectures and other course events are vital to the learning process. As such, attendance is required at all lectures.

Absences may affect a student’s final course grade. If you anticipate being absent, are unexpectedly absent, or are unable to participate in class online activities, please contact me as soon as possible. To request a disability-related accommodation to this attendance policy, please contact the Disability Resource Center at (520) 621-3268 or drc-info@email.arizona.edu. If you are experiencing unexpected barriers to your success in your courses, the Dean of Students Office is a central support resource for all students and may be helpful. The Dean of Students Office is located in the Robert L. Nugent Building, room 100, or call 520-621-7057.

If you have any problems coming to class and decide to drop this course, see an advisor if it is after the drop period. Advisors will provide options and alternatives as appropriate for individual student situations.

The UA’s policy concerning Class Attendance, Participation, and Administrative Drops is available at https://catalog.arizona.edu/policy/courses-credit/courses/class-attendance-participation.

The UA policy regarding absences for any sincerely held religious belief, observance or practice will be accommodated where reasonable: [http://policy.arizona.edu/human-resources/religious-accommodation-policy](http://policy.arizona.edu/human-resources/religious-accommodation-policy.

Absences pre-approved by the UA Dean of Students (or dean’s designee) will be honored. See https://deanofstudents.arizona.edu/policies/attendance-policies-and-practices.

Administrative Drops

Every semester, students enroll in introductory CS classes but do not submit any work, resulting in a grade of E at the end of the term. To prevent this, at the end of the second week, all students who have not submitted/completed three or more of the following will be administratively dropped:

  1. Quiz 01
  2. Quiz 02
  3. Module 1 Programming Problem 1
  4. Module 1 Programming Problem 2

Nov 1 is the last day instructors may administratively drop students. Check more important dates here.

Illnesses and Emergencies

  • If you feel sick, or may have been in contact with someone who is infectious, stay home. Except for seeking medical care, avoid contact with others and do not travel.
  • Notify your instructor if you will be missing up to one week of course meetings and/or assignment deadlines.
  • If you must miss the equivalent of more than one week of class and have an emergency, the Dean of Students is the proper office to contact (DOS-deanofstudents@email.arizona.edu). The Dean of Students considers the following as qualified emergencies: the birth of a child, mental health hospitalization, domestic violence matter, house fire, hospitalization for physical health (concussion/emergency surgery/coma/COVID-19 complications/ICU), death of immediate family, Title IX matters, etc.
  • Please understand that there is no guarantee of an extension when you are absent from class and/or miss a deadline.

Statement on compliance with COVID-19 mitigation guidelines: As we enter the semester, our health and safety remain the university’s highest priority. To protect the health of everyone in this class, students are required to follow the university guidelines on COVID-19 mitigation. Please visit www.covid19.arizona.edu.

Makeup Policy for Students Who Register Late

If you register after the first class meeting you may make up missed assignments within your first week of attendance.

Course Communications

All online communication will be conducted through my official UA e-mail address (xinchenyu@arizona.edu), D2L, and Piazza. Ask questions on Piazza when you have questions about assignments, quizzes, and exams (has private options). Email the instructor only when you have logistics-related questions.

Required Texts or Readings

All readings, videos, and assignment instructions will be available in the course website.

Assignments and Examinations: Schedule/Due Dates

The breakdown of grades in this course is as follows:

  • 45% exams
  • 20% weekly quizzes
  • 10% programming problems
  • 10% short programming projects (Discussion section activities)
  • 15% programming projects

There will be three exams (each 15%) throughout the course (including two midterms and one final exam), for a total of 45%. These exams may cover material from class, the programming assignments, the projects, and the readings. If you score higher on Midterm 2 than on Midterm 1, we will use your Midterm 2 grade for both. However, we will not do the reverse — a higher Midterm 1 grade will not replace a lower Midterm 2 grade. If you would like an exam regraded, we reserve the right to regrade the entire exam, not only the parts you might question.

The midterm exams will be on:

  • Midterm Exam 1 - Tue, Oct 06
  • Midterm Exam 2 - Tue, Nov 03

You must keep theses dates available. Do not schedule any flights, travel plans, or other conflicts with these exams.

Weekly quizzes will usually be held every Tuesday (unless otherwise noted). There will be a total of 12 quizzes. Make-up quizzes will not be offered, however, your 2 lowest quiz scores will be dropped when calculating your final grade.

What counts as advanced code

Students must complete programming projects using only the concepts and materials covered in class or assigned readings. Using external or advanced code beyond this scope is not permitted unless explicitly approved by the instructor or teaching assistants.

Both an autograder and manual review will be used to detect unauthorized advanced content. Deductions will be applied accordingly. In cases where these deductions result in a negative score, the project grade will be adjusted to zero. Otherwise, your Gradescope score will be your final grade.

Please note that you should wait for the autograder to display your score, as only the points reported by the autograder will be used as your grade.

Late Work

For programming problems, short projects and long projects, late work is NOT accepted.

Extra Credit

Up to 1 point of extra credit will be awarded to students who come to office hours in person. Check our office hours schedule on the website TAs and Office Hours and ask the TA or instructor to submit your points to gradescope.

You are required to ask a question and/or work on an assignment or practice problem with the TA or instructor to receive 0.5 points for each office hour attendance. It is your responsibility to ensure the TA or instructor enter your 0.5 points on gradescope during the session. Instructors will not award you these points at a later date, do not email instructors about getting points at a later date (for example, if you forget to ask the TA to enter your office hour points on Gradescope).

Your first TA office visit should take place before the Midterm 1 date, and the second visit should take place before the Midterm 2 date.

Final Examination

The final exam is worth 15%.

The final exam date and time is: Fri, Dec 11 – 3:30-5:30pm.

You must keep this time available. Do not schedule any flights, travel plans, or other conflicts with this exam.

See also Final Exam Regulations and Schedule: https://registrar.arizona.edu/finals

Grading Scale and Policies

The instructor and teaching staff will do their best to have grades back to students within 1 week. This includes, but is not limited to, grades for exams, projects, programming assignments, attendance, and quizzes. Once a grade has been entered for a particular item on the digital grade-book, students have at most 5 days to dispute the grade. This includes disputes related to excuses such as sickness, personal matters, dean’s excuses, etc. If 5 days pass and there has not been such a request, the grade is final. Appeals submitted after this period will not be considered by the instructor or teaching staff under any circumstances. Please review your grades promptly and plan accordingly.

The correspondence between percentage grade and numeric grade is as follows:

  • Greater or equal to 90% at least an A
  • Greater or equal to 80% at least a B
  • Greater or equal to 70% at least a C
  • Greater or equal to 60% at least a D
  • Anything less, at least an E / F

Department of Computer Science Grading Policy:

  1. Instructors will explicitly promise when every assignment and exam will be graded and returned to students. These promised dates will appear in the syllabus, associated with the corresponding due dates and exam dates.
  2. Graded homework will be returned before the next homework is due.
  3. Exams will be returned “promptly”, as defined by the instructor (and as promised in the syllabus).
  4. Grading delays beyond promised return-by dates will be announced as soon as possible with an explanation for the delay.

Incomplete (I) or Withdrawal (W):

Requests for incomplete (I) or withdrawal (W) must be made in accordance with University policies, which are available at https://catalog.arizona.edu/policy/courses-credit/grading/grading-system.

Honors Credit

Students wishing to contract this course for Honors Credit should e-mail me to set up an appointment to discuss the terms of the contact and to sign the Honors Course Contract Request Form. The form is available at http://www.honors.arizona.edu/honors-contracts.

Scheduled Topics/Activities

List topics in logical units in a weekly/daily schedule, including assignment due dates and exam dates can be found on the course website.

Week Start Date Module Topic
1 Aug 24 Module 1 Python Basics (constants, variables, comments, strings, print)
2 Aug 31 Module 2 Operators and Expressions, functions
3 Sep 07 Module 3 Functions, decomposition
4 Sep 14 Module 4 Functions, input from user, decomposition
5 Sep 21 Module 5 Control Flow (if statements)
6 Sep 28 Module 6 Control Flow (while)
7 Oct 05 Module 7 Data Structures (lists)
8 Oct 12 Module 8 Control Flow (for loops), mutability, random
9 Oct 19 Module 9 Control Flow (for loops), Dictionaries
10 Oct 26 Module 10 Files and strings
11 Nov 02 Module 11 Data Structures (tuples)
12 Nov 09 Module 12 2D lists, nested for loops
13 Nov 16 Module 13 Data Structures (sets)
14 Nov 23 Module 14 Mutability
15 Nov 30 Module 15 Control Flow + Data Structures
16 Dec 07 Module 16 Review, Final Exam

Holidays

We won’t have classes due to university-wide holidays on the following dates:

Week Date Holiday
3 Tue, Sep 01 Labor Day
12 Wed, Nov 11 Veterans Day
14 Thu, Nov 26 Thanksgiving Recess

Assignment due dates

Assessment Date Time/Location
Quiz 01 Tuesday, August 25, 2026 in class
Quiz 02 Tuesday, September 01, 2026 in class
Module 1 Programming Problems Wednesday, September 02, 2026 9pm
Quiz 03 Tuesday, September 08, 2026 in class
Module 2 Programming Problems Wednesday, September 09, 2026 9pm
Short Programming Project 1 Wednesday, September 09, 2026 9pm
Programming Project 1 Friday, September 11, 2026 9pm
Quiz 04 Tuesday, September 15, 2026 in class
Module 3 Programming Problems Wednesday, September 16, 2026 9pm
Short Programming Project 2 Wednesday, September 16, 2026 9pm
Programming Project 2 Friday, September 18, 2026 9pm
Quiz 05 Tuesday, September 22, 2026 in class
Module 4 Programming Problems Wednesday, September 23, 2026 9pm
Short Programming Project 3 Wednesday, September 23, 2026 9pm
Programming Project 3 Friday, September 25, 2026 9pm
Quiz 06 Tuesday, September 30, 2025 in class
Module 5 Programming Problems Wednesday, September 30, 2026 9pm
Short Programming Project 4 Wednesday, September 30, 2026 9pm
Programming Project 4 Friday, October 02, 2026 9pm
Midterm 1 Tuesday, October 06, 2026 in class
Module 6 Programming Problems Friday, October 09, 2026 9pm
Short Programming Project 5 Friday, October 09, 2026 9pm
Programming Project 5 Monday, October 12, 2026 9pm
Quiz 07 Tuesday, October 13, 2026 in class
Module 7 Programming Problems Wednesday, October 14, 2026 9pm
Short Programming Project 6 Wednesday, October 14, 2026 9pm
Programming Project 6 Friday, October 16, 2026 9pm
Quiz 08 Tuesday, October 20, 2026 in class
Module 8 Programming Problems Wednesday, October 21, 2026 9pm
Short Programming Project 7 Wednesday, October 21, 2026 9pm
Programming Project 7 Friday, October 23, 2026 9pm
Quiz 09 Tuesday, October 27, 2026 in class
Module 9 Programming Problems Wednesday, October 28, 2026 9pm
Midterm 2 Tuesday, November 03, 2026 in class
Module 10 Programming Problems Wednesday, November 04, 2026 9pm
Short Programming Project 8 Wednesday, November 04, 2026 9pm
Programming Project 8 Friday, November 06, 2026 9pm
Module 11 Programming Problems Wednesday, November 11, 2026 9pm
Short Programming Project 9 Wednesday, November 11, 2026 9pm
Programming Project 9 Friday, November 13, 2026 9pm
Quiz 10 Tuesday, November 17, 2026 in class
Module 12 Programming Problems Wednesday, November 18, 2026 9pm
Short Programming Project 10 Wednesday, November 18, 2026 9pm
Programming Project 10 Friday, November 20, 2026 9pm
Quiz 11 Tuesday, November 24, 2026 in class
Module 13 Programming Problems Wednesday, November 25, 2026 9pm
Short Programming Project 11 Wednesday, November 25, 2026 9pm
Programming Project 11 Tuesday, December 01, 2026 9pm
Quiz 12 Tuesday, December 01, 2026 in class
Module 14 Programming Problems Friday, December 04, 2026 9pm
Short Programming Project 12 Friday, December 04, 2026 9pm
Programming Project 12 Monday, December 07, 2026 9pm
Final Exam Friday, December 11, 2026 3:30-5:30pm

Transferable Career Skills

In this course, we will focus on the following competencies:

  • Technology: Students will use technology to design and write complete, well-structured programs in Python.
  • Teamwork: The course will include lectures, in-class discussions, and activities, with a strong emphasis on teamwork through group work that requires collaboration with other students during class.
  • Communication: Students are encouraged to emphasize communication by interacting with teaching assistants and using various channels, such as office hours, Gradescope, class discussions, and Piazza, to stay updated on course materials.

Classroom Behavior Policy

To foster a positive learning environment, students and instructors have a shared responsibility. We want a safe, welcoming, and inclusive environment where all of us feel comfortable with each other and where we can challenge ourselves to succeed. To that end, our focus is on the tasks at hand and not on extraneous activities (e.g., texting, chatting, reading a newspaper, making phone calls, web surfing, etc.).

Students are asked to refrain from disruptive conversations with people sitting around them during lecture. Students observed engaging in disruptive activity will be asked to cease this behavior. Those who continue to disrupt the class will be asked to leave lecture or discussion and may be reported to the Dean of Students.

Class Participation Policies

Participation is required and is an important part of the learning experience in this course. Students are expected to arrive prepared, engage actively in lectures, contribute to discussions and in-class activities, and collaborate respectfully with their peers. While participation itself is not graded, consistent engagement is expected and is essential for success in the course.

Class Absence Policies

Attendance is required because lectures include quizzes, active learning activities, and collaborative exercises that support your learning and cannot be fully replicated outside of class.

If you must miss class due to illness, a university-approved activity, or other legitimate circumstance, please notify the instructor in advance whenever possible. In general, missed quizzes cannot be made up. To accommodate occasional absences, the two lowest quiz scores will be dropped automatically. No additional make-up quizzes or extensions will be provided except in cases approved through the Dean of Students or as otherwise required by University policy.

In-class activities are designed to support engagement and record attendance. They do not contribute to your final course grade and cannot be made up if missed.

Accessibility and Accommodations

At the University of Arizona, we strive to make learning experiences as accessible as possible. If you anticipate or experience barriers based on disability or pregnancy, please contact the Disability Resource Center (520-621-3268, https://drc.arizona.edu/) to establish reasonable accommodations.

Safety on Campus and in the Classroom

For a list of emergency procedures for all types of incidents, please visit the website of the Critical Incident Response Team (CIRT): https://cirt.arizona.edu/case-emergency/overview

Also watch the video available at https://arizona.sabacloud.com/Saba/Web_spf/NA7P1PRD161/app/me/ledetail;spf-url=common%2Flearningeventdetail%2Fcrtfy000000000003841

Confidentiality of Student Records

Student education records are considered confidential and may not be released without the written consent of the student. For more information visit http://www.registrar.arizona.edu/ferpa.

Subject to Change Statement

Information contained in the course syllabus, other than the grade and absence policy, may be subject to change with advance notice, as deemed appropriate by the instructor.