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 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 Zinfandel Classroom 1000A Dr. Mark Gondree
5 and 7Tu/Th 10:45 AM–noon Zinfandel Classroom 1000A Dr. Mark Gondree


Section Time Room Instructor Student Assistants
2 Tu 2:00–4:50 PM Darwin 28 Mark Gondree Jack Weatherford
4 Tu 5:00–7:50 PM Darwin 28 Christopher Wineland Sara Gemmell
6 W 2:00–4:50 PM Darwin 28 Mark Gondree Jack Weatherford
8 W 5:00–7:50 PM Darwin 28 José Pagán Sara Gemmell

Extra help

Time Type Room Instructor
Mon 12:00–1:00 PM Tutoring Darwin 25 Sara Gemmell
Mon 1:00–3:50 PM Tutoring Darwin 25 Alissa Greaney
Tu 12:00–1:00 PM Office Hours Darwin 116H Dr. Mark Gondree
Tu 1:00–3:00 PM MESA Tutoring Darwin Lobby Darin Brown
Wed 9:00–9:50 AM Tutoring Darwin 28 Jack Weatherford
Wed 1:00–2:00 PM Office Hours Darwin 116H Dr. Mark Gondree
Wed 1:00–2:00 PM Tutoring Darwin 28 Jack Weatherford
Th 1:00–3:00 PM MESA Tutoring Darwin Lobby Darin Brown
Th 5:00–6:50 PM Workshop Stevenson Hall 1034 Jack Weatherford
Th 6:00–7:50 PM Tutoring Stevenson Hall 1034 Sara Gemmell
Fri 12:00–1:00 PM Office Hours Darwin 116H Dr. Mark Gondree
Fri 1:00–3:00 PM Tutoring Darwin 28 Alissa Greaney
Su 6:00–8: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 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.