(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.
| Exam 1: | Thursday, September 25 | In lecture |
| Exam 2: | Thursday, November 6 | In lecture |
| Final Exam (9:20 - 10:35 lecture): | Thursday, December 11 | 8:00 AM -9:50 AM |
| Final Exam (10:45 - 12:00 lectures): | Tuesday, December 9 | 11:00 AM -12:50 PM |
Students who have scheduling conflicts on these dates should not take this class.
John Zelle, Python Programming: An Introduction to Computer Science, 2nd edition (ISBN-13: 978-1-59028-241-0)
| Dr. Ali A. Kooshesh | Course Instructor |
| Roger Beigh | Instructor, lab 02 |
| Noah Melcon | Instructor, labs 06 |
| Jake Paris | Instructor, labs 04 and 08 |
| CS Administrative Coordinator: | Liz Meyer | |
|---|---|---|
| Email: | meyerel@sonoma.edu | |
| Office phone: | 707-664-2667 | |
| Office location: | Darwin 116 |
If you have a question about careers in computer science or need advising for the CS major or minor, talk to the CS administrative coordinator in Darwin 116 to schedule an advising appointment.
You can get help in the following ways:
The course gradebook will be kept on Moodle so that you can check your grades and compute your average at any time. To access Moodle, go to the SSU homepage, sign in, and follow the link to Moodle.
Course announcements will be sent to your Sonoma email address, so you should check your email frequently.
You are responsible for all material presented in lecture and are expected to get the notes from another student if absent. You are also expected to spend additional time outside of class to master the lecture material. Resources available to you include your textbook, the instructor's office hours, and tutoring.
Quizzes, announced and unannounced, may be given in both lecture and lab. Missed quizzes cannot be made up.
The weekly lab allows you to practice programming with immediate feedback from the instructor and other students. Lab attendance is expected. Each week's lab assignment will be posted online and linked from the course schedule and Moodle. Lab writeups and code are due at 4:00 PM on or before Thursday unless otherwise specified.
Programming projects require you to take the skills you've learned in lecture and lab and apply them at a larger scale. They are a rewarding and challenging part of the course, and they require perseverance and time management skills. Projects must be a student's individual work, and the collaboration policy will be strictly enforced.
After each project, you will be expected to conduct a review of another student's code and produce a report evaluating its quality and adherence to the course coding standards. Code reviews are a standard part of professional software development and a great way to learn from other people's programs.
The exams cover the material from lecture, lab, and the textbook. Exams are cumulative, although they will emphasize recent material. You may bring one 8.5 by 11-inch handwritten sheet of notes (front and back); no other aid will be permitted. Makeup exams will be given only in extraordinary circumstances, and the instructor MUST be notified in advance.
| Lab attendance and exercises | 20% |
| Programming projects and code reviews | 35% |
| Exams and quizzes | 45% |
You must also pass each of these three components individually (60% or better) to receive a C- or better in the course. In other words, if you fail one or more of these three components, the maximum grade you can earn in the course is a D+.
| 93-100% | 90-92% | 87-89% | 83-86% | 80-82% | 77-79% | 73-76% | 70-72% | 67-69% | 63-66% | 60-62% | Below 60% |
| A | A- | B+ | B | B- | C+ | C | C- | D+ | D | D- | F |
Up to 3% may be added to your final grade at the instructor's discretion for constructive participation in the class. Constructive participation includes in-class participation and doing outstanding or extra work on assignments. No other adjustments of borderline grades will be considered.
Labs: Late lab writeups, demos, and code will only be accepted with prior arrangement with the instructor.
Projects and code reviews: There is a 48-hour grace period associated with final project and code review deadlines. This grace period is designed to cover small personal emergencies and other unexpected events. No other consideration will be given for these small emergencies.
Regrade requests will be accepted up to 7 days after an assignment or exam is returned. The reason for the regrade request must be explained in writing and submitted as a hard copy along with the assignment or exam to be regraded. Note that all regrade requests, except for those pointing out mistakes in the totaling of points, will cause the entire assignment or exam to be regraded. The adjusted grade may therefore be higher or lower than the initial grade.
You are encouraged to work with other students in the labs. However, your lab writeups and code must be turned in individually, and you must be able to explain and stand by all of the work you turn in for credit.
Programming projects must be your own work unless otherwise stated, and academic misconduct is taken very seriously. You may discuss ideas and approaches with other students and the course staff, but you should work out all details and write up all solutions on your own. The following actions will be penalized as academic dishonesty:
Exams must be your own work. You are allowed to consult only your own brain and your 8.5x11in handwritten cheat sheet. Quiz policies will vary and will be announced when the quiz is given. On both exams and quizzes, giving or receiving unpermitted aid will be penalized as academic dishonesty.
Academic dishonesty will be severely penalized; at a minimum, you will receive a grade of 0 on the assignment. For more information, see SSU's cheating and plagiarism policy (http://www.sonoma.edu/UAffairs/policies/cheating_plagiarism.htm) and the Dispute Resolution Board website (http://www.sonoma.edu/senate/drb/drb.html).
If you are a student with a disability and you think you may require accommodations, please register with the campus office of Disability Services for Students (DSS), located in Salazar Hall - Room 1049, Phone: (707) 664-2677, TTY/TDD: (707) 664-2958. DSS will provide you with written confirmation of your verified disability and authorize recommended accommodations. This authorization must be presented to the instructor before any accommodations can be made. Visit http://www.sonoma.edu/dss for more information.
There are important University policies that you should be aware of, such as the add/drop policy, cheating and plagiarism policy, grade appeal procedures, accommodations for students with disabilities, and the diversity vision statement. Go to this URL to find them: http://www.sonoma.edu/uaffairs/policies/studentinfo.shtml.
This class satisfies the General Education category B3 requirement (Specific Emphasis in Natural Sciences). As of May 2008, the GE B3 objectives are
More information can be found on the SSU GE homepage.
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.