Introduction to Programming
CSC 401 (902 & 911)

Marcus Schaefer

Latest additions

hw4 is online

Week 4 examples are online

Homeworks and Examples

Assignments will be available through this webpage. Late homeworks will not be accepted (but the lowest homework score will be dropped). You can submit your homeworks through d2l.



hw1 4/5
hw2 4/12
hw3 4/19
hw4 4/26

Week 1
  • (our shell interaction,you cannot run this, but you can copy/paste commands into the shell to rerun them)
  • (our first program, print)
  • (our second program, input)
Week 2
Week 3
Week 4

Questions and Answers


Classes, labs and office hours

The in-class section (901) meets Th 5:45-9:00 in Lewis 1511, online recordings will be available shortly after the completion of the class.

Since we will be doing a lot of programming in this class, I suggest you bring your laptop to class (if you're in the in-class section, make sure it's charged, there won't be sufficiently many outlets in the classroom for everybody), or work along as you're watching it online if you're in the OL section.

My office hours are Th 4:00-5:30pm and MW 1:25-2:10 (CDM 749, loop campus), online students: feel free to call me during that time.

If you want to set up an appointment at another time, or simply ask a question, send email to


Introduction to Computer Science with Python, 2nd edition, Ljubomir Perkovic, Wiley, 2015 (get the ebook, ISBN: 978-1-118-89105-6, it is more comprehensive than the printed book; if you already have the print-version, it'll work, but some case examples will be missing).


For general information, see the official class syllabus. This course has no prerequisites.

The following is a very rough schedule, and we might depart from it.


Python Interpreter, variables, expressions, assignments, basic data types (Chapter 2)


Control Flow: conditionals, iteration, functions, parameter passing (Chapter 3)


String processing; file I/O, exceptions (Chapter 4)


More Control Flow: multi-way conditions, loop patterns, multi-dimensional data types (Chapter 5)




Functions and modular abstraction; namespaces, execution flow (Chapter 7), intro to recursion

8-9 Recursion (Chapter 10)


Advanced Topics: Exception Handling (Chapter 7), collection classes, string encoding, randomness (Chapter 6)
11 Final Exam

Grades and exams

Assignments: 40%, Midterm: 30%, Final exam: 30%.

Midterm for the in-class section will be during class-time, Thursday, 5/4, in a lab (CDM 819); the final exam will take place on Thursday, 6/8 (again CDM 819), at 5:45pm. Online students will be able to sign up for proctored exams. No make-up exams. Exams will require a laptop (in-class exams will meet in a special lab, online students need to find a proctoring location with laptops, or bring their own laptop).

I will use the following grading scheme:

Grade Percentage
A 95-100
A- 90-95
B+ 87-90
B 83-87
B- 80-83
C+ 77-80
C 73-77
C- 70-73
D+ 65-70
D 60-65
F <60

Throughout the quarter there will be extra credit problems; extra credit does not directly make up for points lost on homeworks or exams; instead it is added in with a weight to the final grade (i.e. not doing extra credit won't harm you, but doing it can move you up).

General Policies

Academic Honesty

The course adheres to the university Academic Integrity Policy, the following is an excerpt from the policy:

Cheating: Cheating is any action that violates university norms or instructor's guidelines for the preparation and submission of assignments. This includes but is not limited to unauthorized access to examination materials prior to the examination itself, use or possession of unauthorized materials during the examination or quiz; having someone take an examination in one's place-copying from another student; unauthorized assistance to another student; or acceptance of such assistance.

Plagiarism: Plagiarism is a major form of academic dishonesty involving the presentation of the work of another as one's own. Plagiarism includes but is not limited to the following:

Complicity: Complicity is any intentional attempt to facilitate any of the violations described above. This includes but is not limited to allowing another student to copy from a paper or test document; providing any kind of material—including one’s research, data, or writing—to another student if one believes it might be misrepresented to a teacher or university official; providing information about or answers to test questions.

A charge of cheating and/or plagiarism is always a serious matter.  If proven, it can result in an automatic F in the course and, in case of a repeated violation, possible expulsion.

For homework this means that while you can talk to other students about the class material in general, you cannot talk about homework problems, or your homework solutions; you cannot share your homework solutions, either in written or electronic form. Any work you submit with your name on it needs to have been prepared and created solely by yourself, and you need to be able to explain it fully. The only people you are allowed to talk to about your homework are the instructor, the lab tutor, and CDM tutors. The only resources (written or online) you should be using are the textbook, and the materials linked off the class web-page.

Using materials prepared for other purposes (e.g., another course or work) needs the course instructor's prior permission.


An incomplete grade is given only for an exceptional reason such as a death in the family, a serious illness, etc. Any such reason must be documented. Any incomplete request must be made at least two weeks before the final, and approved by the Dean of CDM. Any consequences resulting from a poor grade for the course will not be considered as valid reasons for such a request.

Marcus Schaefer
Last updated: March 10th, 2017.