CSC 161 Grinnell College Spring, 2013
 
Imperative Problem Solving and Data Structures
 
 

Although much of this course is reasonably stable, you should expect on-going refinements throughout the semester. Check schedules and other materials on a regular basis for updates.


  Modules: Outline Module 000 Module 001 Module 010 Data Representation
  Topic Index Module 011 Module 100 Module 101 Module 110 Module 111

Instructor Supplemental Problems Credits Textbooks Schedule ( .dvi format / pdf format / postscript )
A Note on Typos Prog./Debugging Hints Tutors Course Work Dates and Deadlines
Collaboration Academic Honesty Cell Phones Accommodations Grading
 

This 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:

Instructor

Henry M. Walker

Office: Science 3811
Telephone: extension 4208
E-mail: walker@cs.grinnell.edu

Office hours are posted weekly on the bulletin board outside Science 3811, with additional hours possible by appointment. You may reserve a half hour meeting by signing up on the weekly schedule, but please sign up at least a day in advance.

Credits

The hardware, software, readings, labs, and other materials from this course have evolved from many sources:

Textbook

Students in this course should have a ready reference for the C programming language. Some labs include only a brief discussion of a topic, and students will need to do additional reading to understand the general context and the details of the material. Use of a textbook can be an effective means to study this material in appropriate depth.

The following two books provide the needed background, but these book target different audiences. CSC 161 students are strongly encouraged to obtain one of these references for use in this course. CSC 161 students need NOT obtain both of these references.

  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-8 (paperback), 0-13-110370-9 (hardback).

    • 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:

Examples of comments in programs:

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!

Schedule

While the schedule for this course is expected to evolve, a Tentative Class Schedule is available in .dvi , pdf, and postscript formats.

A reasonably detailed, day-by-day outline of course work is available through the base page for each module.

Course Work

Course Work will involve a combination of the following activities.

Dates and 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.

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 at the end of a class. However, an extension of at least one class period is automatically granted if the department's Linux network is down for an unscheduled period of three or more hours during the week preceding the assignment. Normally, a program or laboratory write-up is due every third class meeting.

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, 14 December at 5:00 pm;
laboratory reports or programs received after that time will not be counted in the grading of the course.

Collaboration

Collaboration often will be allowed on laboratory exercises and problems from the textbook, but collaboration normally will NOT be allowed on supplemental problems and tests. To avoid confusion, the rules for collaboration on homework are included in the specification of each assignment.

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.

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

If you have specific physical, psychiatric, or learning disabilities and require accommodations, please let me know early in the semester so that your learning needs may be appropriately met. You will need to provide documentation of your disability to the Director of Academic Advising. Feel free to talk to me if you have questions or want more information.

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 and tests will be counted in the final grade.

Lab Write-ups: 15%     Supplemental Problems: 15%     Projects: 25%     Hour Tests: 25%     Exam: 20%