CSC 115.005/006 Sonoma State University Spring 2022
Scribbler 2
CSC 115.005/006:
Programming I
Scribbler 2
Instructor: Henry M. Walker

Lecturer, Sonoma State University
Professor Emeritus of Computer Science and Mathematics, Grinnell College


Course Home References Course Details: Syllabus, Schedule, Deadlines, Topic organization MyroC Documentation Project Scope/
Acknowledgments

Notes:

CSC 115.005/006 Syllabus, Spring 2022

Course work: Course Format Course Components Submitting Work Supplemental Problems Anticipated Work Load
Resources: Instructor Reference Materials A Note on Typos Troubleshooting Guide Prog./Debugging Hints
Collaboration: Pair Programming Pair Responsibilities Academic Honesty Collaboration Tutors
Course Policies: Dates, Deadlines Covid-19, Emergencies, Illness Cell Phones Accommodations Grading
 

CSC 115, the introductory problem solving and programming course at Sonoma State University, is based on the following catalog description.

This course gives 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.

The course explores elements of computing that have reasonably close ties to the architecture of computers, compilers, and operating systems. The course takes an imperative view of problem-solving, supported by programming in the C programming language. Some topics include:

Course Work

Course Format and Activities

This course follows a lab-based format. Thus, work related to [almost] all class sessions proceeds in three stages:

  1. Read Before Class: Students are expected to read an on-line reading prior to each class session. Each student should prepare a list of questions or topics for class discussion, should questions arise on the reading.

  2. Ask Questions and Work on Lab during Class: Each class will begin with questions from students, based on the reading. Following this initial discussion, the course may involve some opening comments or a short quiz on the reading. After these preliminaries, students will work collaboratively, in pairs, on a lab exercise based on the reading. (I will assign lab partners, with pairings changed approximately every week.)

  3. Finish Lab for Homework: Although the in-class labs will help students get started on the lab exercises, students may not complete the lab during the class period. Any lab work not completed during class should plan be finished as part of homework.

In addition to an in-class, lab-based format throughout the semester, supplemental programming problems are assigned to provide additional practice and to suggest a range of applications beyond the courses robotic application theme.

Course Components

Course Work will involve a combination of several activities. Submission instructions vary somewhat according to the type of the assignment.

Anticipated Work Load
This course incorporates a variety of activities, including class preparation (reading), labs and projects (started in class and finished for homework), and supplemental problems (some required and some available for extra credit), as well as quizzes, tests, and a final exam. From past experience, the time required for these activities will likely vary substantially from student to student and from one part of the course to another. For example, a student may need to devote considerable time and effort when starting a new or different topic, but the workload may drop noticeably when that material is mastered.

Such variation in student experiences complicates any estimation of the time individual students may need to devote to homework for this course. However, from past experience, students working steadily on the course likely should expect to allocate 10-15 hours per week to homework. Some students may require additional time for some weeks; some students may complete work in less time for some weeks. Conversations with computer science faculty and others suggest this time allocation is consistent with expectations for many courses at Grinnell College and Sonoma State University.

Resources

Instructor

Henry M. Walker

Office: Darwin 116C
E-mail: henry.walker@sonoma.edu and walker@cs.grinnell.edu

Office hours are available most weekdays via Zoom, unless announced otherwise in class.

Monday: 8:00 pm – 9:00 pm via Zoom (URL available on CS 115.005 Home Page on Canvas)
Tuesday: 11:30 am – 1:00 pm via Zoom (URL available on CS 115.005 Home Page on Canvas)
Wednesday: 8:00 pm – 9:00 pm via Zoom (URL available on CS 115.005 Home Page on Canvas)
Thursday: no office hours scheduled
Friday: 11:30 am – 1:00 pm via Zoom (URL available on CS 115.005 Home Page on Canvas)

During office hours, I will try accommodate all students who want to talk with me, largely following a first-come, first-served strategy.

In addition, informal meeting times may be available just before or just after each class session.

Reference Materials

Readings and examples for this course are under development. As noted in the day-by-day schedule, complete readings, examples, projects, and labs are available for most class sessions throughout the semester. As tabulated in the course link on Project Scope/Acknowledgments, materials available for this course extend beyond 130,000 lines of text. With such resources available, students may not have a need for a separate textbook.

However, some students may wish to consult additional materials on a regular basis to supplement the course's online resources. The following two books provide substantial background, but these book target different audiences. CSC 115 students may wish to obtain one of these references for use in this course. CSC 115 students need NOT obtain either of these references, and purchasing both references is likely unnecessary.

  1. K. N. King, C Programming: A Modern Approach, Second Edition, W. W. Norton, 2008, ISBN 978-0393979503.

    • Targeted audience: Introductory CS students who are beginning their exploration of imperative problem solving and C
    • Approach: Teaching manual including many examples and much narrative
    • Style: Narrative with definition of terms and extended discussion
  2. Brian W. Kernighan and Dennis M. Ritchie, The C Programming Language, Second Edition, Prentice Hall, 1988, ISBN 0-13-110362-7 (paperback), 9780133086218 (digital).

    • Targeted audience: computing professionals who already know many computing concepts (but not C)
    • Approach: Reference book — the standard reference for the C programming language
    • Style: Terse with use of common technical terms

Additional references follow:

A Note on Typos

Planning and development of materials for this course represent an extensive effort:

Although the developers have read, re-read, and refined the materials extensively, one can be confident that typographical errors remain.

If you find an error, if something does not read well, if deadlines on one page do not seem to match those stated on another page, etc. — don't panic (or use colorful language). Rather, please talk to the instructor (nicely please). Thanks!

Pair Responsiblities

Work on labs and projects in this course is often done collaboratively (in pairs, occasionally in a group of three). Many studies suggest substantial benefits to learning with this type of group work. However, to be successful, collaboration requires partners to actively participate.

Failure to meet one's responsibilities to a group not only impacts the individual, but also impedes the education of the partner. Thus, except in exceptional circumstances (e.g., illness, family emergencies, serious injury), failure to follow through with one's responsibilities as a partner may have a significant impact on one's course grade and/or one's standing in the course. See Responsibilities for pair programming for details.

Academic Honesty

All work in this course is governed by the rules of the college regarding academic honesty. In summary, standard practice requires that you must acknowledge all ideas from others.

Collaboration

Collaboration is allowed on laboratory exercises and projects (i.e., all work done in class), but collaboration normally will NOT be allowed on supplemental problems and tests.

Course Policies

Dates and Deadlines

Sonoma State University offers alternative options to complete academic work for students who reserve religious holy days. Please contact me within the first three weeks of the semester if you would like to discuss a specific instance that applies to you.

Normally, laboratory write-up or project is due every Monday, and a supplemental problem is dues every 2-3 Fridays.

It is expected that the materials submitted electronically will match the materials submitted in paper form. Discrepancies may raise questions of academic dishonesty and be subject to review by the Committee on Academic Standing.

Deadlines are shown on the Tentative Class Schedule , and work is due at the start of each class specified. A penalty of 25% per class meeting will be assessed for any assignment turned in late, even work submitted in the middle or the end of a class. For example, paper printed at the start of class will inevitable be turned in after the start of a class, and thus will be considered late. Print your materials well before the start of class!

Exceptions to the deadline policy and its penalties:

Absolute Deadline: All homework must be turned in by Thursday, 12 May, at 5:00 pm;
laboratory reports, projects, or programs received after that time will not be counted in the grading of the course.

Covid-19, Emergencies, Illness

SSU Policy for In-person Classes and Covid-19

"It is the responsibility of all SSU community members to adhere to Covid safety protocols. My expectation is that you carefully read all sections of the Sonoma State Covid-19 information page. Before leaving your residence or coming to campus, you are required to complete the daily wellness screening. I expect you to have completed this screening and receive a green indicator such that you are cleared to come to campus prior to coming to class. If you are unable to come to class because you have not been cleared or if you are experiencing COVID-related symptoms, I can work with you so that you can make up the missed class sessions and/or assignments. When we are in class, we are required to wear masks at all times. If you forget to bring a mask you may obtain one at Seawolf Services, the University Library, or the Student Center. Thank you so much for helping to keep the members of our class safe.”

Energencies and Illness

Although dates for labs, programming assignments, tests, and the final exam are firm, I understand that circumstances arise when you are not able to attend class.

Cell Phones, Text Messaging, and E-Community Devices

Cell phones, text-messaging devices, and other social-networking connections may not be used in this class. If you bring such equipment to the classroom, it must be turned off before the class starts and stay off throughout the class period. Use of such equipment is distracting to those nearby and will not be tolerated.

Accommodations

DSS

If you are a student with a disability and think you may need academic accommodations, please contact Disability Services for Students (DSS) located in Schulz 1014A. Please contact DSS as early as possible in order to avoid a delay in receiving accommodation services. The use of DSS services, including testing accommodations, requires prior authorization by DSS in compliance with university policies and procedures. See SSU's policy on Disability Access for Students

Counseling and Psychological Services (CAPS)

If you feel stressed or otherwise worried about your circumstances, you are encouraged to contact SSU's Counseling and Psychological Services. In summary, CAPS offers short-term individual and group counseling, workshops, crisis intervention services, consultation, referral, training, and outreach.

Grading

This instructor's grading philosophy dictates that the final grade should ultimately be based upon each student's demonstration of her or his understanding of the material, not on the performance of the class as a whole nor on a strict percentile basis. The following scheme is proposed as a base for how the various assignments, quizzes, and tests will be counted in the final grade.

Lab Write-ups: 15%     Supplemental Problems: 20%     Projects: 15%     Quizzes and Test: 30%     Exam: 20%