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.

Prerequisites

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
Email: gondree@sonoma.edu
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:

Lectures

Section Time Room Instructor
1, 3 and 9Tu/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

Labs

Section Time Room Instructor Student Assistants
2 Tu 2:00–4:50 PM Darwin 28 Mark Gondree
4 Tu 5:00–7:50 PM Darwin 28 Noah Melcon
6 W 2:00–4:50 PM Darwin 28 Mark Gondree
8 W 5:00–7:50 PM Darwin 28 Noah Melcon

Extra help

Time Type Room Instructor
Th 5:00–6:50 PM Workshop Stevenson Hall 1034

Texts, Materials, Equipment

Textbooks

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.

Computer

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.

Website

This course website (http://www.cs.sonoma.edu/cs115/S19) 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.