Class Objectives

Computer programming relies on organized thinking, creative problem solving, and the precise description of solutions. In this course we introduce core concepts and techniques of computer programming as a way to develop these skills, as basis for further CS study, and for application to other fields.

We’ll cover the basic principles of computer programming, a tiny part of the computer science discipline. We’ll learn about a programming language (Python) – how to write, run and create new programs in this language.

This course is the recommended first course for the B.A. in Computer Science, as well as for non-CS majors. This course has no prerequisites.

About the Python Programming Language

Python is a widely used general-purpose, high-level programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C++ or Java.

This course uses Python version 3.6 or later.


The topics covered in this course can be found on the Lectures page.


Class will meet:

Section Days Time Bldg Room
15655 MTW 0900-1155 GAVET 208

The full class schedule can be found on this page: Schedule.


I do not require a textbook for this course, but I do strongly recommend the books by John Zelle, on which this course is based. View the Reading Room, to look at recommended books, and resources you can use.



Professor Richard E Sarkis <>

Office Hours:
Bausch & Lomb Hall, room 470
By Appointment

To find my office: Take the elevator in B&L Hall to the 4th floor. Turn left, and walk all the way to the end of the hall. My office will be on your left.

The instructor loves to hear from students outside of class. Whether you are loving the course or hating it, please stop by my office, and share your concerns, complaints, suggestions, and questions.

Teaching Assistant

Michael Henry <>

Office Hours:
Carlson Library
Every Thursday, 11am-12pm

Class Deliverables

  • Lab Assignments: Assignments for the week will be assigned every Wednesday to be worked on over the remaining week, to be due Monday morning. I will allow you to work in groups of, at most, 2 people, given that your submissions clearly lists the names of both members of the group.
  • Attendance: I will keep an informal attendance to class as part of your class ‘deliverables’. Deliver yourself to class each lecture, be attentive, and perhaps even speak every once in a while, and you should be good.
  • Project: There will be one class project, done individually. It will be split into three ‘milestone’ objectives.


Course Components

  • 20% Attendance and Participation
  • 50% Lab Assignments
  • 30% Project

Total: 100%

Grading Scale

Letter Grade Lower % Upper %
A 93% 100%
A- 90% 92%
B+ 87% 89%
B 83% 86%
B- 80% 82%
C+ 77% 79%
C 73% 76%
C- 70% 72%
D 60% 69%
E 0% 59%

Class Policies

  • Registration

    Please attend only the lecture, lab or workshop section for which you are registered to avoid any confusions and errors with attendance or grading.

    If you need to permanently switch a lecture, workshop or lab section you must add/drop the section(s) using online registration or the registrar’s Add/Drop form. Failure to do so may cause problems with grading.

  • Communication

    I respond very well by e-mail, so expect a personal conversation to end with me saying “send me an e-mail” so that I can better handle your issue.

  • Attendance

    Attendance to my class lecture is obligatory, and it is part of your final grade, but overall enforcement is left as an exercise of self-discipline by the student.

  • Excusals

    Students with an appropriate excuse for missing a deadline for a component of the course (exam, lab) must make arrangements in advance with me. No prior arrangement, no excusal! What constitutes appropriate is left to my final discretion. The general rule of thumb is:

    • Medical excuses should come with a doctor’s note (note, UHS will not give out retroactive excuses for missed class so get documentation at the time of your visit.)
    • Religious holidays conflicts need to be announced to me with clear detail and with advanced warning.

    Emergencies do happen and prior notice may not be possible. In cases of emergencies, I do ask for legitimate documentation to allow for an excusal. No proof, no excusal!

Class Work

  • Submissions

    All class content is submitted either through Blackboard (labs, project). Workshops have no materials to hand in.

    I absolutely do not accept any e-mail submissions of graded items, and such e-mails will be ignored.

    You can re-submit your assignments through Blackboard as many times as you want, until the deadline is reached. Only your last submission will be graded.

  • Due Dates

    Blackboard will list any and all due dates for assignments. All graded components of the course will receive a grade of zero if they are handed in late.

    • Attendance and participation are “due” by being in lecture.
    • Labs and project can only receive an extended due date upon given an appropriate excuse (usually family, medical, or religious).
  • Appeals

    It is your responsbility to keep track of your grades, and to query me if you have grading questions within one week of your posted grade.

Additional Class Policies

  • Individual Work

    Students are encouraged to discuss the course material and the assignments with each other but the submissions must be individual and unique work.

    You must be able to explain anything you submit, in person at any time, at the instructor’s discretion.

  • Academic Honesty

    I have zero tolerance for cheating, and will begin immediate Academic Honesty procedures if it is suspected.

  • Computer Issues

    Practice good habits with regard to your data (backups, cloud storage, etc). A broken computer is not an excuse, as you should have backups and any computer lab on campus will have Python 3 installed, allowing you to complete your work.

  • Self-Respect

    No begging for grade adjustments! They will be ignored.

Policy on Electronics

Please turn off or put into airplane mode all phones and leave them out of sight.

Unless you are taking notes with a laptop, you do not need it.

Even if you think you want to take notes with a laptop, you may be interested to know that research shows that students who take notes using pen and paper retain significantly more of the information. Typing your handwritten notes into the computer after class improves understanding even more.

If you insist on using your laptop to take notes, please turn off your Wi-Fi and otherwise disable notifications. You should probably also sit at the back of the room to avoid distracting the people sitting behind you.

Please note Section V.7 of the College’s Academic Honesty policy regarding “Unauthorized Recording, Distribution or Publication of Course-Related Materials.”

CSUG Tutoring

CSUG is the Computer Science Undergraduate Council. These students graciously volunteer their time to help other students, especially students in introductory and core courses.

CSUG Tutoring Schedule:

If you visit the CSUG tutors, please be respectful of their time and COME PREPARED. Try to solve the problem/question BEFORE going to CSUG Tutoring. Go to lab and work on the problem with the TAs BEFORE going to CSUG Tutoring. Go to workshop and discuss the problem with your colleagues BEFORE going to CSUG Tutoring. You MUST be able to show them what you have tried BEFORE you came to them.

University Policies

  • Academic honesty: Any case of academic dishonesty will be dealt with according to the University Honesty Policy.
  • Disabilities: Please see university policies on student accommodations and discuss your needs with the instructor.
  • Learning Assistance: Students who are having difficulty with course material are encouraged to talk to the instructor, and/or the staff in Learning Assistance Services.