CSC 161 Grinnell College Fall–Term 1, 2020
CSC 161
Imperative Problem Solving and Data Structures


CSC 161.01, Fall 2020–Term 1

Course work: Course Schedule Course Format Course Components Supplemental Problems Anticipated Work Load
Resources: Instructor Reference Materials In-class slides A Note on Typos Prog./Debugging Hints
Collaboration: Pair Programming Pair Responsibilities Academic Honesty Collaboration Tutors
Course Policies: Dates, Deadlines Emergencies, Illness Accommodations Grading

CSC 161 is the second course in Grinnell's 3-course, introductory computer science sequence

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

For over a decade, this course has followed a lab-based format, and that approach is maintained with the move to remote learning. However, the change from 14-week semesters (plus exams) to 7 week terms (plus exams) requires coverage of topics in a dramatically changed schedule—both in the timing of individual topics and in the basic format of each class session. The following table provides both a basic comparison of a typical in-person format with this term's virtual format. The table also gives information about the technical support to be used with this offering of the course.

  Traditional, In-person Format Term F-1's Remote Format Notes
Timing Considerations
Time in class 80 minutes/class for 3 classes/week for 14 weeks = 3360 minutes or about 56 hours 110 minutes/class for 5 classes/week for 7 weeks = 3850 minutes or about 64 hours. A common rule of thumb for colleges courses is that a student should plan to spend about 3 hours outside class for each hour in class. However, the remote environment provides 8 more hours of lab each week, and this structured time likely will replace some time for homework.
Expected Homework Time about 10-15 hours/week for 14 weeks or 140-210 hours overall about 18-22 hours/week for 7 weeks or 126-154 hours overall Time in lab plus time for homework are roughly the same between the two formats.
Organization of a Class Session
Before class Finish previous lab, complete reading for current class, have questions ready, if any Follows a common lab-based format; no change in expectations.
Beginning of class (20-40 minutes) Class discussion and/or presentations
  • Announcements
  • Answer student questions
  • Discussion of new material
  • "Clicker-style, multiple choice questions" with discussion
  • Live coding examples
  • Resource materials available on Blackboard (access before class)
    • Announcements on Blackboard course page
    • In-class slides on Blackboard Documents
  • Full-class discussion on Microsoft Team CSC161-F-1
    • Full-group session using screen sharing on Microsoft Team
      • Announcements, slides,
      • examples
      • live coding
    • Small groups
      • Partners assigned "Group number"
      • Discussion of clicker questions in Teams breakout groups
      • Poling/answering clicker questions on course-Teams page
Remote format allows somewhat more time for questions and discussion
Middle/end of most class meetings
  • Each week for labs, students assigned partners (usually pairs, occasionally 3)
    • Partners work in classroom/teaching lab
    • Work started during class session
    • Partners finish lab for homework, meeting as needed
    • Instructor and/or class mentor circulates through room for questions/feedback periodically
  • Quiz most weeks (often on Wednesdays)
  • Daily for labs, students assigned partners (usually pairs, occasionally 3)
    • Students utilize for collaborative writing, compiling, and running of programs (FastX to MathLAN is a backup)
    • Verbal discussion using Microsoft Teams
      • Group ID distributed during class
      • See Blackboard for URL/instructions
      • Instructor and/or class mentor may join group periodically
  • Quiz most weeks (this term, on Wednesdays)
Remote format allows substantially more time for in-class work on lab exercises
After class Complete lab for homework before next class meeting
  • Each pair arranges meeting time(s)
Arrange time with your partner(s), as needed to complete lab before next class meeting
  • Use for editing/running programs
  • Use designated group or private chat on Microsoft Teams for audio
  • See Blackboard for URL/instructions
Easy to get behind, if lab not completed before next class, so ask questions early and often!
Pace of course Topics proceed in what is hoped to be a reasonably steady pace
  • Students generally report pace manageable
  • Many topics will seem new and different to many students, and it may take time for students to become comfortable with each topic/unit.
  • if a student gets behind for any reason, a concerted effort is needed to catch up (as topics keep coming).
Comments for the in-person format apply, but
  • Getting behind is a particular problem in a compressed 7-week term!
Both versions are designed to cover the same fundamental topics, algorithms, structures, and programming elements.
The approximately-even pace places those course elements into the time available.
Required lab Although students are responsible for all labs, only selected labs are due about once per week. Although students are responsible for all labs, only selected labs are due each Tuesday. In a compressed time frame, somewhat fewer labs can be turned in—although quizzes can/will cover all labs.
Weekly Quiz 15-20 minutes at start of designated day of week 20-30 minutes at end of class: Friday for first week, thereafter on Wednesdays. In the virtual course, Wednesdays are devoted to stand-alone topics in addition to the weekly quiz.
Test one in-class test (in place of one weekly quiz), given approximately in the middle of the course. No change due to course formats.
Supplement Problems (no collaboration allowed) Typically 5 problems required, numerous others available for extra credit.
  • Work one individually on MathLAN machine or on personal computer
  • Work submitted both in paper and via email
3 problems required, 7 others available for extra credit
  • Work one individually using any of three environments:
    • account, upgraded to "hacker's account"
    • C compiler and command-line environment, downloaded as needed to personal computer.
    • FastX connection to MathLAN machine
  • Work submitted via Blackboard
Options for online course somewhat limited with compressed course.
Final Exam A final exam is scheduled during the exam period, as scheduled by the Registrar's Office. Expectations for a final exam are the same in both course formats.

Course Components

Course Work will involve a combination of several activities.

Anticipated Work Load

As noted above, this course includes a variety of activities, including class preparation (reading), labs (started in class and finished for homework), and supplemental problems (some required and some available for extra credit), as well as quizzes, a test, 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, following a rule of thumb for many college courses and considering past experience, students working steadily on the course likely should expect to allocate about 3 hours outside class for each hour in class. With labs providing some time for student work, students might expect to devote 18-22 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.



Henry M. Walker


Office hours will be announced frequently as the course progresses. Feel free to contact me via email (with several proposed meeting times), if you wish to schedule specific office hours.

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. Links on the online schedule provide some readings and examples, as well as labs.

Even with these online resources, 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 161 students may wish to obtain one of these references for use in this course. CSC 161 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:

In-class Slides

Many class sessions will begin with a series of slides, including multiple-choice, clicker-style questions designed to promote class discussion. These slides will be posted regularly within the course pages on Blackboard.

A Note on Typos

Planning and development of materials for this course represent an extensive effort by many people, including both the instructor and numerous student assistants.

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 Responsibilities

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 is allowed on laboratory exercises (i.e., all work done in class), but collaboration is NOT be allowed on supplemental problems and tests.

Course Policies

Dates, Deadlines

Grinnell College 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 Tuesday, and a supplemental problem is dues every 2-3 Fridays.

In all cases, the time stamp on Blackboard must be before the start of class on the day specified.

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!

Emergencies, 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.

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


I strive to create a fully inclusive classroom, and thus welcome individual students to approach me about distinctive learning needs. In particular, I encourage students with disabilities to have a conversation with me and disclose how our classroom or course activities could impact the disability and what accommodations would be essential to you. You will also need to have a conversation about and provide documentation of your disability to the Coordinator for Student Disability Resources, John Hirschman, located on the 3rd floor of Goodnow Hall (x3089).

Grading pwd

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: 30%     Supplemental Problems: 20%     Quizzes: 20%     Test: 10%     Exam: 20%    

created summer 2020
last revised 21 August 2020
Valid HTML 4.01! Valid CSS!
For more information, please contact me at (