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. Mark Gondree
Office phone: 707-664-3854
Office location: Darwin 116H

Note: You can send messages to me privately via Piazza. You can send a private note to me and all instructors / TAs simultaneously by using the contact "Instructors" on Piazza. I prefer Piazza over both normal email and Moodle email.

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 37 Dr. Mark Gondree
5 and 7Tu/Th 10:45 AM–noon Darwin 29 Dr. Mark Gondree


Section Time Room Instructor Student Assistants
2 Tu 2:00–4:50 PM Darwin 25 Mark Gondree Gaybi Igno
4 W 5:00–7:50 PM Stevenson 1034 Noah Melcon Alissa Greaney
6 Tu 5:00–7:50 PM Darwin 28 Noah Melcon Boaz Cogan
8 W 5:00–7:50 PM Darwin 28 Dan Tilden Boaz Cogan

Extra help

Time Type Room Instructor
M 1:00–2:00 PM Tutoring Darwin 25 Boaz Cogan
M 5:30–7:30 PM Tutoring Darwin 28 Gaybi Igno
W 9:30–11:00 AM Office Hours Darwin 116H Mark Gondree
W 1:00–2:00 PM Tutoring Darwin 25 Gaybi Igno
W 4:00–5:00 PM Tutoring Darwin 28 Alissa Greaney
Th 2:30–4:00 PM Office Hours Darwin 116H Mark Gondree
Th 5:00–6:50 PM Workshop Stevenson 1034 Alissa Greaney / Gaybi Igno
F 10:00–12:00 PM Tutoring Darwin 28 Alissa Greaney

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 corect 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.