Catalog Information

Catalog description

(4 units) Lecture, 3 hours; laboratory, 3 hours. An overview of computer organization; arithmetic and logical expressions, decision and iteration, simple I/O; subprograms; principles of good programming style, readability, documentation, structured programming concepts; top-down design and refinements; techniques of debugging and testing. Use of the above concepts will be implemented in a standard high-level programming language.

This course is currently taught using Python.


GE Math eligibility (satisfaction of ELM requirement) and English eligibility (satisfaction of EPT requirement). Students who do not meet these prerequisites will be dropped from the class unless they obtain instructor consent.

Instructor Contact

Dr. Gurman Gill
Office phone: 707-664-2806
Office location: Darwin 116G
Dr. Mark Gondree
Office phone: 707-664-3854
Office location: Darwin 116H

Note: You can send private messages to all instructors / TAs simultaneously by using the contact "Instructors" on Piazza. Piazza is preferable to e-mail.

Meeting Times

MySSU shows that you are enrolled in two consecutive section numbers (for example, sections 3 and 4). The first number is your lecture section. The second number is your lab section. You are expected to attend your lecture section (twice a week) and your lab section (once a week), as shown below:


Section Time Room Instructor
1 and 3Tu/Th 9:20–10:35 AM Darwin 29 Dr. Mark Gondree
5 and 7Tu/Th 10:45 AM–noon Darwin 29 Dr. Gurman Gill
SIM noon–1:00 PM Darwin 102 Nazania Barraza
SITu 4:00–5:00 PM Darwin 102 Alissa Greaney
SIW 7:00–8:00 PM Darwin 102 Alissa Greaney
SIF noon–1:00 PM Darwin 102 Nazania Barraza


Section Time Room Instructor Student Assistants
6 Tu 2:00–4:50 PM Darwin 28 Gurman Gill Brooke, Keegan
8 Tu 5:00–7:50 PM Darwin 28 Gurman Gill Alissa, Boaz
2 W 2:00–4:50 PM Darwin 28 Mark Gondree Alissa, Boaz
4 W 5:00–7:50 PM Darwin 28 Kelsey Rangel Boaz, Keegan

Extra help

Time Type Room Instructor
M 11:00–noon Tutoring Darwin 28 Nazania Barraza
M 2:15–4:00 PM Tutoring Stevenson 1034 Boaz Cogan
Tu 11:00–12:30 PM Office Hours Darwin 116H Dr. Mark Gondree
W 11:00–1:00 PM Tutoring Darwin 28 Nazania Barraza
W 3:00–4:30 PM Office Hours Darwin 116G Dr. Gurman Gill
Th 2:30–4:00 PM Office Hours Darwin 116H Dr. Mark Gondree
Th 3:00–4:30 PM Office Hours Darwin 116G Dr. Gurman Gill
Th 5:00–6:50 PM Workshop Darwin 28 Brooke Gardner
F 4:00–6:00 PM Tutoring Darwin 25 Alissa Greaney
Sun 5:00–7:00 PM Tutoring Darwin 28 Brooke Gardner

Texts, Materials, Equipment


Our primary course text is free and online:

Supplemental course materials are available via the course website and/or Moodle, and are also free.

Note: The version of the text we are using has been edited and re-organized to support our class. Please use the links on this site to access the reading, as these link to the correct version of the text.


You do not need a computer or laptop for this course, although you may find having one to be convenient. It is possible to complete all course work using the CS department lab computers.

When classes are not using the CS labs, they are typically locked. If you would like access, you can request a key by filling out a "CS lab key request form" from the CS department office.


This course website ( is our course syllabus. It contains:

Moodle Gradebook

Moodle is the primary tool to submit graded work. The course gradebook is maintained via Moodle. You can check your grades at any time using Moodle. Access Moodle via MySSU; e-mail the instructor if you do not have access yet.

Piazza and Email

We use Piazza for class discussion. Our Piazza site is linked from our Moodle page.

Piazza is designed to help you receive assistance from tutors, instructors and other students. You can post questions publicly to the class; you can send sensitive questions privately to Instructors, e.g., questions about grades; you can post under your own name, or anonymsouly.

You are responsible for setting up Piazza notifications. You should make sure you receive all announcements, in a timely manner, to an address that you actually check. See my initial post on Piazza for instructions on how to set up notifications.

Course announcements may also be sent to your SSU email address (either directly or via a Moodle announcement), so you should check that account at least daily.

Course Goals and Objectives

  1. Develop algorithms for solving problems.
    • Write programs that interact with the user textually and graphically.
    • Write programs that perform calculations using arithmetic expressions.
    • Write programs that choose which actions to perform using control structures.
    • Apply, program, and evaluate common algorithms for searching and sorting data.
  2. Use design strategies for managing complexity.
    • Design programs that are readable and maintainable.
    • Decompose a complex problem into smaller parts through the use and design of functions.
    • Organize data using standard data structures (e.g. lists, strings, files).
    • Design and use specialized data types (object-oriented programming).

GE Information

This class satisfies the General Education category B3 requirement (Specific Emphasis in Natural Sciences). As of May 2008, the GE B3 objectives are

  1. Improve understanding of the concepts and theories of science and technology
  2. Understand the interconnected and ever-changing relationships among the natural, physical, and technological sciences
  3. Critically assess the social and ethical implications of science and technology in relations to their daily lives
  4. Improve problem solving and critical thinking skills through application of scientific knowledge using hands-on activities

More information can be found on the SSU GE homepage.