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. Gurman GillEmail: | gurman.gill@sonoma.edu |
Office phone: | 707-664-2806 |
Office location: | Darwin 116G |
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 9 | Tu/Th 9:20–10:35 AM | Zinfandel Classroom 1000A | Dr. Gurman Gill |
5 and 7 | Tu/Th 10:45 AM–noon | Zinfandel Classroom 1000A | Dr. Gurman Gill |
Labs
Section | Time | Room | Instructor | Student Assistants |
---|---|---|---|---|
2 | Tu 2:00–4:50 PM | Darwin 28 | Gurman Gill | Keegan D'Souza |
4 | Tu 5:00–7:50 PM | Darwin 28 | Noah Melcon | Nathan Kamm |
6 | W 5:00–7:50 PM | Darwin 25 | Kelsey Rangel | Jack Weatherford, Keegan D'Souza |
8 | W 5:00–7:50 PM | Darwin 28 | Noah Melcon | Darin Brown |
10 | W 5:00–7:50 PM | Stevenson 1034 | Tyler Holland | Alissa Greaney, Nathan Kamm |
Extra help
Time | Type | Room | Instructor |
---|---|---|---|
M 2:15–3:45 PM | Office Hours | Darwin 116G | Dr. Gurman Gill |
Tu 12:00–1:00 PM | Tutoring | Darwin 28 | Darin Brown |
Tu 1:00–2:00 PM | Tutoring | Darwin 28 | Jack Weatherford |
Wed 3:00–4:30 PM | Tutoring | Darwin 28 | Darin Brown |
Th 3:00–4:30 PM | Office Hours | Darwin 116G | Dr. Gurman Gill |
Th 5:00–6:50 PM | Workshop | Darwin 25 | Jack Weatherford |
Th 6:00–8:00 PM | Workshop/Tutoring | Darwin 25 | Alissa Greaney |
Fri 2:00–3:00 PM | Tutoring | Darwin 25 | Alissa Greaney |
Fri 3:00–5:00 PM | MESA Tutoring | Darwin Lobby | Darin Brown |
Fri 5:00–6:30 PM | Tutoring | Darwin 25 | Nathan Kamm |
Sun 5:00–6:30 PM | Tutoring | Stevenson 1034 | Nathan Kamm |
Sun 6:30–8:00 PM | Tutoring | Stevenson 1034 | Keegan D'Souza |
Texts, Materials, Equipment
Textbooks
Our primary course text is free and online:
- Brad Miller and David Ranum, How to Think Like a Computer Scientist, 2nd interactive edition: https://runestone.academy/runestone/static/CS115/index.html
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/F18) is our course syllabus. It contains:
- Descriptions of course policies and course activities.
- The course schedule, including exam dates and links to all active assignments.
- The course resources page, which has links to old exams, the textbook's website, and other helpful resources.
- Instructions for installing programming tools on your computer.
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
- 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.
- 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
- Improve understanding of the concepts and theories of science and technology
- Understand the interconnected and ever-changing relationships among the natural, physical, and technological sciences
- Critically assess the social and ethical implications of science and technology in relations to their daily lives
- 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.