CS 115: Programming I, Spring 2013

Links: [Course Home] [Course Info] [Schedule] [Resources] [Programming Tools] [Moodle] [CS 115W]


InstructorDr. Suzanne Rivoire
Meeting times Lecture:TuTh9:20 AM-10:35 AMDarwin 102
Lab (Sections 1/2):Tu4:00 PM-6:50 PMDarwin 25
Lab (Sections 3/4):W10:00 AM-12:50 PMDarwin 25
Lab (Sections 5/6):W2:00 PM-4:50 PMDarwin 25
Workshop:M4:00 PM-5:50 PMDarwin 25
TextbookJohn Zelle, Python Programming: An Introduction to Computer Science, 2nd edition (ISBN-13: 978-1-59028-241-0)
It is very important to get the correct edition of this book!

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.

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 to take CS 115.

This course is currently taught using Python.

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.

Course Goals and Objectives

  1. Develop algorithms for solving problems.
  2. Use design strategies for managing complexity.

Note: this course's goals and objectives are based on the Association for Computing Machinery (ACM)'s Computing Curricula 2013. This course addresses the areas of Software Development Fundamentals, Software Engineering, and Algorithms and Complexity.

Consolidated Syllabus

You may download the course description, objectives, syllabus, and schedule in a consolidated pdf:
http://rivoire.cs.sonoma.edu/cs115/syllabus_consolidated.pdf