CSC 161 | Grinnell College | Fall, 2011 |
Imperative Problem Solving and Data Structures | ||
Traditionally, CSC 161 has focused on the student of imperative problem solving and C; and this offering of the course continues those themes. This course offering, however, also includes the control of robots as an application theme.
Although many elements of this revised course are in place, details will evolve through the semester, and you should check these Web pages frequently about specifics of modules, examples, readings, labs, projects, and assignments.
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:
In order to explore these topics, this offering of the course uses robots for many examples, labs, and projects. More specifically, the course is largely organized into eight modules, each of which has these general qualities:
Main links for the modules follow:
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.
The hardware, software, readings, labs, and other materials from this course have evolved from many sources:
The underlying hardware and some software for this course are based on research performed by the Institute for Personal Robots in Education (IPRE), hosted at Georgia Tech and Bryn Mawr College. Their materials, including software interfaces, reference materials, and hardware, were funded by grants from Microsoft Research and the National Science Foundation. (wording modified from suggestions by Douglas Blank of the IPRE project and Bryn Mawr College) The main pages for this work are:
The MyroC++ project grew out of efforts by Professor Bruce MacLennan's group, University of Tennessee; special thanks to John Hoare in that group for his assistance.
The MryoC project was developed by Henry Walker and his group at Grinnell college and funded from Grinnell's Dean's Office.
Henry Walker, An Introduction to C Through Annotated Examples, http://www.walker.cs.grinnell.edu/c/index.html
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).
The MyroC.h header file identifies the full range of C-based commands available for the MyroC/Scribbler 2 robots, as used in this course.
The GNU make Manual, Free Software Foundation, 2006.
Eric Huss, The C Library Reference Guide, University of Illinois Student Chapter, 1997.
Online materials are associated with many of modules and labs for the course. These materials may be accessed through the Module Outline.
This course relies upon MyroC and Myro-Cpp software that may be obtained through launchpad.net:
While the schedule for this course is expected to evolve, a Tentative Class Schedule is available in .dvi , pdf, and postscript formats.
Also, if you are logged into the departmental network and want a copy printed, click duerer to have a copy printed on the printer duerer.
Course Work will involve a combination of the following activities.
Supplemental Problems extend the range of problems considered in the course and help sharpen problem-solving skills. Through the semester, seven supplemental problems will be required. Supplemental problems numbered 8 or above may be done for extra credit, although extra credit may not raise a student's average on assignments above 120%.
Module Laboratories and Projects: Topics in this course are organized into eight modules and a few supplementary labs. Modules include laboratory sessions and conclude with a integrative project.
Laboratory sessions introduce specific features of Grinnell's computing environment, highlight concepts and constructs introduced in class, allow instructor assistance in a "hands-on" setting, and supplement normal office hours. Approximately six labs require a formal write-up, explaining what work you have done, showing any programming you have done, indicating tests or experiments run, and giving your conclusions. Labs designated [Req] on the Tentative Class Schedule are required -- labs designated [EC] may be done for extra credit. In order for extra-credit labs to provide reasonable benefit, any such lab being submitted for credit must be turned in within 2 weeks of when it is scheduled for coverage in class. As with written homework, extra credit may not raise a student's average on laboratories above 120%.
Note: As a special incentive for mastering the laboratory exercises, between a third and a half of the problems on each test and on the exam will be taken from the laboratory exercises (with only slight editing).
Projects: Each of the eight modules concludes with a project, involving both a computer program and associated commentary; and each project is a required part of the course.
Collaboration on labs and projects encouraged: Many lab activities and projects should be done in groups of two or three, although you may work individually on labs after Lab 8. Only one write-up is expected per group.
Lab Evaluations: Since the readings and labs are new or newly revised for this offering of the course, student feedback is actively sought for each laboratory exercise. Thus, for each lab, students should log into Pioneer Web, click on the "Lab Evaluation" section for CSC 161, complete the form for a lab, and click "submit".
Evaluations for a lab are available after an in-class lab until midnight just before the third class meeting following the lab. Thus, if students work on a lab in class on Monday's class, then the third class meeting after the lab would be on Friday; and students can complete the survey for that lab from Monday after class until midnight between Thursday and Friday.
Hour Tests: Three hour tests are tentatively scheduled for Friday, 23 September, Wednesday, 12 October, and Tuesday, 22 November.
Exam: Following the College's published schedule, the final examination for this class is scheduled for Tuesday, 13 December 2011 at 2:00 pm.
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.
Absolute Deadline: All homework must be turned in by Friday,
9 December at 5:00 pm;
laboratory reports or programs received after
that time will not be counted in the grading of the course.
The rules regarding collaboration in this course depend upon the nature of the assignment:
Collaboration is allowed on laboratory exercises and projects.
Collaboration is NOT be allowed on supplemental problems and tests.
In particular, this means that you may work in groups of two laboratory exercises and projects. However, you are reminded that All academic work at Grinnell College must follow standard academic practice regarding quotation, paraphrase, and citation. Grinnell's Student Handbook provides basic guidelines. For this course, academic honesty requires the following practices:
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.
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.
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: 10% | Module Projects: 25% | Supplemental Problems: 10% | Hour Tests: 30% | Exam: 20% | Lab Evaluations: 5% |
This document is available on the World Wide Web as
http://www.walker.cs.grinnell.edu/courses/161.fa11/index.shtml
created 25 April 2008 last revised 16 October 2011 |
![]() ![]() |
For more information, please contact Henry M. Walker at walker@cs.grinnell.edu. |