COMP 141
Computer Science I: Programming Fundamentals
(CRN 20505, Fall 2019)


  • Code files and in-class examples may be found here.
  • Instructions for purchasing textbooks are here.
  • You can download Python for Windows, Mac, or older Macs (OSX 10.5 or older) from these links.
  • Computer Science tutoring is offered on Sunday, Monday, Tuesday, Wednesday and Thursday evenings from 7-10pm in Briggs 019.
  • The first lecture will be held on Wednesday, August 21, 2019.

    Course Description

    This course is an introduction to the fundamental concepts and practices of procedural programming. Topics include data types, control structures, functions, arrays, files, and the mechanics of running, testing, and debugging. Emphasis is placed on program design and problem solving techniques. The course also includes an introduction to the historical and social context of computing and an overview of computer science as a discipline.

    The syllabus for this course can be found at

    Book, Course Information, and Prerequisites

    Textbook: Programming in Python 3 Instructions on how to access the online textbook.
    Location: Briggs 019
    Time: MWF 11-11:50am
    Prerequisite: CS 141 does not assume any previous programming knowledge; however you should have sufficient high-school mathematics background to solve simple linear equations and to appreciate the use of mathematical notation. If you have already taken a computer programming course, you probably should be enrolled in COMP 142 (please see me if that is the case) .

    Course Instructor

    Instructor: Catie Welsh
    Office: Briggs 208
    Email: (please include “CS 141" somewhere in the subject)
    Office Hours: Tues/Thurs 10-11:30am, or by appointment - Briggs 208


    Code files and in-class examples may be found here.

    This is a tentative schedule and subject to change as needed.

    Date Lecture Topic(s) Reading Assignment Homework
    W-August 21 Introduction slides   Fill out "Getting to Know You" worksheet - due 8/23
    F-August 23 The python language, output, variables slides Section 1.1-1.5 zyBook Assignment 1 - complete before class on 8/26
    M-August 26 Math operations, input from keyboard slides Section 1.6 zyBook Assignment 2 - complete before class on 8/28
    W-August 28 Literals, comments, intro wrap-up slides
    In-Class Lab
    Section 2.1-2.6 zyBook Assignment 3 - complete before class on 8/30
    Program 1 - due 9/5 by 11:55pm
    F-August 30 if, if-else, relational operators slides Section 4.1-4.2 zyBook Assignment 4 - complete before class on 9/4
    M-September 2 No Class - Holiday
    W-September 4 if-elif-else, and/or slides
    In-Class Lab
    Section 4.3-4.4  
    F-September 6 Functions slides Section 6.1 zyBook Assignment 5 - complete before class on 9/9
    Program 2 - due 9/12 by 11:55pm
    M-September 9 Functions that take arguments, local variables Kirlin Guest Lecture Section 6.2  
    W-September 11 Graphics, intro to simplegraphics slides
    Simple Graphics Reference Sheet
    F-September 13 Lab, Graphics & Functions In-Class Lab   zyBook Assignment 6 - complete before class on 9/18
    Program 3 - due 9/19 by 11:55pm
    M-September 16 Functions that return values slides Section 6.3  
    W-September 18 Lab: Functions, if-elif-else In-Class Lab   zyBook Assignment 7 - complete before class on 9/20
    F-September 20 While Loops slides Section 5.1-5.3 Program 4 - due 9/29 by 11:55pm
    M-September 23 General Procedure for writing a while loop slides   zyBook Assignment 8 - complete before class on 9/25
    W-September 25 Loops that count slides Section 5.4  
    F-September 27 For Loops slides Section 5.5-5.7 zyBook Assignment 9 - complete before class on 9/30
    M-September 30 Midterm Review Practice Problems    
    W-October 2 Midterm 1
    F-October 4 break, continue slides
    In-Class Lab
    Section 5.10  
    M-October 7 Input Validation Loops slides   zyBook Assignment 10 - complete before class on 10/9
    Program 5 - due 10/17 by 11:55pm
    W-October 9 Nested Loops slides
    In-Class Lab
    Section 5.8  
    F-October 11 Saving Previous Values in Loops slides
    In-Class Lab
    M-October 14 Fall Break - No Class
    W- October 16 Reading/Writing from/to a file slides Section 12.1-12.2  
    F-October 18 Using loops to read files slides    
    M-October 21 File reading, split function, lab slides
    In-Class Lab
      Program 6 - due 10/29 by 11:55pm
    W-October 23 Strings I slides Section 3.1  
    F-October 25 Strings II (with Dr. Kirlin) slides Section 7.1 zyBook Assignment 11 - complete before class on 10/28
    M-October 28 Strings III slides
    In-Class Lab
    W-October 30 Strings IV In-Class Lab Section 8.1 Program 7 - due 11/10 by 11:55pm
    F-November 1 Lists I slides
    Practice Problems
    Section 8.2-8.3 zyBook Assignment 12 - complete before class on 11/4
    M-November 4 Lists II slides   zyBook Assignment 13 - complete before class on 11/8
    W-November 6 Midterm 2
    F-November 8 Lists III and Review of Midterm 2 slides    
    M-November 11 Lists IV slides
    In-Class Lab
      Program 8 - due 11/21 by 11:55pm
    W-November 13 2-d Lists slides Section 8.5  
    F-November 15 2-D Lists II In-Class Lab    
    M-November 18 2-D Lists III List and 2-D List Worksheet    
    W-November 20 Tic-Tac-Toe with 2-D Lists In-Class Lab    
    F-November 22 Tic-Tac-Toe with Graphics   Program 9 - due 12/912/10 by 11:55pm
    M-November 25 More Tic-Tac-Toe with Graphics    
    W-November 27 Thanksgiving Break- No Class
    F-November 29 Thanksgiving Break- No Class
    M-December 2 Binary Numbers slides
    Review Material Since Midterm 2  Lists & Strings Reference
      zyBook Assignment 14 - complete before class on 12/4
    W-December 4 Wrap-up/Evals slides    
    F-December 6 Final Exam,Time: 1-3:30pm