CSC 141 Computer Science I

2026-Fall Course Website

Course Overview

Instructor: Si Chen · schen@wcupa.edu

Meeting: Tuesday / Thursday, 11:00 AM – 12:15 PM · Mitchell Hall 102

Term: Fall 2026 (Aug 24 – Dec 12, 2026) · CRN: 34650

An introduction to programming using Python. Topics include basic program design; program flow with decisions, functions, and loops; command-line and file input/output; variables and types; and string and sequence processing. No prior programming experience is assumed — the course emphasizes problem decomposition and program design as well as Python syntax.

General-Education Attribute: Science Distributive.

Expected Background

Textbook & Tools

Required textbook: None. Readings, examples, starter files, and practice materials are posted in D2L.

Slides & Schedule

#DateTopicSlidesSupporting Materials
1Aug 25, 2026Introduction; computational thinking; Python environment; expressions; print() Class01.pdf Follow along in playground (Class 1); Class-1 check-in; Syllabus (PDF); Class code (.zip)
2Sep 1, 2026Computational thinking; values & types; expressions; print() and input() Class02.pdf Follow along in playground (Class 2); Class-1 check-in; Class code (.zip)
3Sep 3, 2026Variables & assignment; numeric & string types; operators; f-strings (formatted output) Class03.pdf Programming Assignment 1 assigned (due Thu Sep 17, 11:59 PM, D2L — extended). Follow along in playground (Class 3); Class code (.zip)
4Sep 8, 2026Boolean expressions & comparison operators; if / else; comparing strings; and / or / not Class04.pdf Follow along in playground (Class 4); Class code (.zip) · Schedule change: PA1 now due Thu Sep 17, 11:59 PM; Quiz 1 moved to Tue Sep 15
5Sep 10, 2026if / elif / else; nested decisions; flags & truthiness; conditional expression; program design & boundary testing Class05.pdf Follow along in playground (Class 5); Class code (.zip) · No quiz today — Quiz 1 is Tue Sep 15 (Classes 1–5); PA1 due Thu Sep 17, 11:59 PM
In-class activity: Pokémon Python Lab · Class Pokémon World
6Sep 15, 2026Quiz 1 (first 15 minutes); nested decisions; indentation; tracing; branch selection Class06.pdf Class code (.zip) · Editable slides (.pptx) · Quiz 1 (11:00–11:15 AM, Classes 1–5) · Quiz practice
Python Playground (Class 6) · PokéLab Phase II (07–09)
7Sep 17, 2026Boundary tests; syntax, runtime, and logic errors; systematic debugging; guided practice Class07.pdf Class code (.zip) · Editable slides (.pptx) · PA1 due tonight at 11:59 PM in D2L · PA1 guide
Python Playground (Class 7) · PokéLab Phase II (10–12)
8Sep 22, 2026Functions: def, parameters, and return values Class08.pdf Class code (.zip) · Editable slides (.pptx) · No quiz today — Quiz 2 moved to Tue Sep 29 · Programming Assignment 2 is out — due Thu Oct 1 (extended), handout
Python Playground (Class 8) · PokéLab Phase III (13–15)
9Sep 24, 2026Void vs. fruitful functions; composing calls; decomposing a program into functions Class09.pdf Class code (.zip) · Editable slides (.pptx) · Programming Assignment 2 due Thu Oct 1, 11:59 PM (extended) · Quiz 2 next class (Tue Sep 29), first 15 min, Classes 6–7
Python Playground (Class 9) · PokéLab Phase III (16–18)
10Sep 29, 2026Local scope: how a function's variables stay inside it Class10.pdf Editable slides (.pptx) · Quiz 2 first 15 min, Classes 6–7 · Programming Assignment 2 deadline extended to Thu Oct 1, 11:59 PM
Python Playground (Class 10) · Interactive: Local scope visualizer · PokéLab Phase IV (19–24)
11Oct 1, 2026Function design; parameters are local; debugging programs with several functions Class11.pdf Class code (.zip) · Editable slides (.pptx) · Exam 1 review begins Tue Oct 6 (Exam 1: Thu Oct 8) · Programming Assignment 2 due tonight, 11:59 PM
Python Playground (Class 11) · PokéLab Phase IV (19–24)
12Oct 6, 2026Class cancelled (instructor sick) — work through the Midterm 1 practice exam on your own (Classes 1–11) Midterm 1 Practice Exam (PokéLab) — 6 problems, 100 points, 75-minute timer; use today's class time to do it in one sitting. · Exam 1: Thu Oct 8, ONLINE during class time (see the Oct 8 row)
13Oct 8, 2026Midterm Exam 1 — ONLINE (Classes 1–11), during class time 11:00 AM–12:15 PM Midterm Exam 1 (online) — access code SQUIRTLE. No penalty for going up to 30 minutes over time (submit by 12:45 PM). Closed-book, closed-notes, no AI tools.
14Oct 15, 2026Loops: while, for, and range(); accumulator and counting patterns Class14.pdf Class code (.zip) · Editable slides (.pptx) · Tue Oct 13: Fall Break, no class
Python Playground (Class 14) · PokéLab Phase V: The Loop Trails (25–30)
15Oct 20, 2026Loops in practice: review, bug hunt, nested loops; lab time in PokéLab Phase V (The Loop Trails) Class15.pdf Class code (.zip) · Editable slides (.pptx) · Second half of class: PokéLab Phase V: The Loop Trails (25–30) — finish 25–28 first, then 29 (while until a goal) and 30 (nested loops)
Python Playground (Class 15) · Programming Assignment 3 posted today, due Tue Nov 3, 11:59 PM (handout)
16Oct 22, 2026Strings: indexing, slicing, and traversal; counting, building, and searching patterns over characters Class16.pdf Class code (.zip) · Editable slides (.pptx) · Thu Oct 22: university course-withdrawal deadline · Quiz 3 next class (Tue Oct 27), first 15 min, Classes 14–16 — practice questions · PA3 due Tue Nov 3
Python Playground (Class 16)
17Oct 27, 2026Quiz 3 (first 15 min, Classes 14–16); lists: indexing, slicing, mutability, append/insert/pop/remove, looping, accumulate and build patterns; nested loops over lists Class17.pdf Quiz 3 in class (11:00–11:15 AM, Classes 14–16): online quiz (access code given in class) · practice questions
Class code (.zip) · Editable slides (.pptx) · Python Playground (Class 17) · PokéLab Phase VI: The Poké Mart (31–36) — 31–32 match today
18Oct 29, 2026Processing lists: count, sum, search, and min/max patterns; built-ins; lab time in PokéLab Phase VI (The Poké Mart) Class18.pdf Class code (.zip) · Editable slides (.pptx) · Second half of class: PokéLab Phase VI: The Poké Mart (31–36) — 34 (search), 35 (max), 36 (build a list)
Python Playground (Class 18) · PA3 due Tue Nov 3

Assignments & Deadlines

AssignmentAssignedDue (D2L)PointsHandout
Programming Assignment 1 — Variables, Types, Expressions & Formatted OutputThu Sep 3, 2026Thu Sep 17, 2026, 11:59 PM100CSC141_PA1.pdf
Programming Assignment 2 — Decisions, Program Design, Testing & DebuggingFri Sep 18, 2026Thu Oct 1, 2026, 11:59 PM (extended)100CSC141_PA2.pdf
Programming Assignment 3 — Loops, Accumulators, Nested Loops & StringsTue Oct 20, 2026Tue Nov 3, 2026, 11:59 PM100CSC141_PA3.pdf

Programming Assignment 1 — what is in it

  • Part A (20 pts): predict values and types, trace a short program, explain a TypeError — answers go in partA.txt.
  • Part B (10 pts): write pseudocode before coding Program 2.
  • Part C (60 pts): four programs — time_convert.py, bill_split.py, name_tag.py, free_fall.py.
  • Part D (10 pts): find and fix three bugs in an AI-written program (debug_me.py).

Everything you need is in Classes 1–3: print(), input() + int()/float(), the arithmetic operators, and f-strings. Read the full handout for exact output formats and the grading rubric.

How to submit

  1. Put these six files in one folder: partA.txt, time_convert.py, bill_split.py, name_tag.py, free_fall.py, debug_me.py. Every .py file starts with the header comment (name, date, description) shown in the handout.
  2. Compress the six files into a single ZIP named Lastname_Firstname_PA1.zip (e.g. Lovelace_Ada_PA1.zip). Do not zip the whole folder tree and do not submit screenshots or Word documents.
  3. Upload the ZIP to D2L → CSC 141 → Assignments → Programming Assignment 1 before Thursday, September 17, 2026, 11:59 PM. You may resubmit as many times as you like before the deadline; only the last submission is graded.
  4. Check the D2L confirmation email. The D2L timestamp is authoritative.

Late work: no credit unless a valid excuse is communicated before the deadline (see syllabus). Partial credit: a program that does not fully work still earns points if a comment at the top says what works, what does not, and what you tried. Individual work: you may discuss concepts, but not exchange or co-write code; AI tools may explain concepts and error messages but may not write your solution. You must be able to explain every line you submit.

Questions? Office hours Tue/Thu 12:30–2:00 PM (by appointment), Wed 1:00–3:00 PM, 25 University Ave. Room 131, or email schen@wcupa.edu with the program name, the exact error message, and what you already tried.

Programming Assignment 2 — what is in it

  • Part A (20 pts): trace a nested decision, find an elif-order bug, explain a runtime error — answers go in partA.txt.
  • Part B (10 pts): design boundary test cases before coding Program 2, in test_plan.txt.
  • Part C (60 pts): four programs — grade_bracket.py, library_fine.py, movie_ticket.py, shipping_zone.py.
  • Part D (10 pts): find and fix three bugs (syntax, runtime, logic) in an AI-written program (debug_attendance.py).

Everything you need is in Classes 4–7: Boolean expressions, if/elif/else, nested decisions, and boundary testing. Read the full handout for exact output formats and the grading rubric.

How to submit

  1. Put these seven files in one folder: partA.txt, test_plan.txt, grade_bracket.py, library_fine.py, movie_ticket.py, shipping_zone.py, debug_attendance.py. Every .py file starts with the header comment (name, date, description) shown in the handout.
  2. Compress the seven files into a single ZIP named Lastname_Firstname_PA2.zip (e.g. Lovelace_Ada_PA2.zip). Do not zip the whole folder tree and do not submit screenshots or Word documents.
  3. Upload the ZIP to D2L → CSC 141 → Assignments → Programming Assignment 2 before Thursday, October 1, 2026, 11:59 PM. You may resubmit as many times as you like before the deadline; only the last submission is graded.
  4. Check the D2L confirmation email. The D2L timestamp is authoritative.

Late work: no credit unless a valid excuse is communicated before the deadline (see syllabus). Partial credit: a program that does not fully work still earns points if a comment at the top says what works, what does not, and what you tried. Individual work: you may discuss concepts, but not exchange or co-write code; AI tools may explain concepts and error messages but may not write your solution. You must be able to explain every line you submit.

Questions? Office hours Tue/Thu 12:30–2:00 PM (by appointment), Wed 1:00–3:00 PM, 25 University Ave. Room 131, or email schen@wcupa.edu with the program name, the exact error message, and what you already tried.

Programming Assignment 3 — what is in it

  • Part A (20 pts): trace a while loop with a table, list range() values, index and slice a string — answers go in partA.txt.
  • Part B (10 pts): design test cases for the savings program before coding, in test_plan.txt.
  • Part C (60 pts): four programs — step_counter.py, savings_plan.py, word_stats.py, times_grid.py.
  • Part D (10 pts): find and fix the three classic loop bugs (no update, accumulator reset inside the loop, off-by-one range()) in an AI-written program (debug_tally.py).

Everything you need is in Classes 14–16: while and for loops, range(), the accumulator and counting patterns, nested loops, and strings. Programs 1, 2 and 4 need only Classes 14–15; Program 3 uses Thursday's string material. Read the full handout for exact output formats and the grading rubric.

How to submit

  1. Put these seven files in one folder: partA.txt, test_plan.txt, step_counter.py, savings_plan.py, word_stats.py, times_grid.py, debug_tally.py. Every .py file starts with the header comment (name, date, description) shown in the handout.
  2. Compress the seven files into a single ZIP named Lastname_Firstname_PA3.zip. Do not zip the whole folder tree and do not submit screenshots or Word documents.
  3. Upload the ZIP to D2L → CSC 141 → Assignments → Programming Assignment 3 before Tuesday, November 3, 2026, 11:59 PM. Only the last submission before the deadline is graded.

Warning: the Part D program has an endless loop on purpose. Run it in VS Code (stop with Ctrl+C), not in the browser Playground. Late work, partial credit, and individual-work rules are the same as PA1 and PA2 (see above and the syllabus).

Tutorials & Supporting Materials