| CSC 161 | Grinnell College | Fall, 2011 |
| Imperative Problem Solving and Data Structures | ||
The table below is a working draft of modules for CSC 161. Each module has these elements:
The table references these materials:
| Module | Overall Purpose | Summary and Main Topics | Readings | Examples | Lab Exercises | Project Description |
|---|---|---|---|---|---|---|
| 0 | Introduction: Play a song
This module helps CSC161 students to gain familiarity with foundational concepts of C programming, the Scribbler robot, and the Linux terminal. Each of these topics form major parts of the CSC161 curriculum. | This module introduces CSC161 students to the basics of
Linux, C programming, and the Scribbler robots, including:
|
|
| Program a song Working in pairs, students should develop a program that includes a song/melody at least 30 seconds long. Students should also write a description of their program, compile the program, and run it. Songs which have been used by other groups (including the example programs) may not be used. | |
| 1 | Motion (+song, motion)
This module introduces and explores the possibilities that are offered by loops and conditionals, which are fundamental aspects of computer science. The module also allows individuals to learn to program while paying attention to a program or robot that performs actions simultaneously, while reviewing how programs can change based on variables. | This module is to introduce CSC161 students to
control flow in C and Scribbler programming, including
|
|
|
| Make the robot dance and sing.
Working in pairs, students should develop a program that makes the robot move while beeping to a melody. The program should incorporate at least 3 loops, of which at least one must be a for loop, and one a while loop. The program must also include at least two if statements. |
| 2 | Motion and sensors
This module is expand the CSC161 students' working knowledge of C language, improve problem solving and creativity, and create an introduction to more complex programming than most CSC161 students have previously encountered. |
The purpose of this module is to organize and study data and the
logical complexity of programming in C, as well as advance knowledge of
the scribbler robot, leading to learning:
|
|
|
| Follow a moving object
Working in pairs, students should develop a program to follow a moving object in front of the robot; the robot should be able to turn to follow the object, and stop when the object is stationary. |
| 3 | Deepen understanding of imperative problem solving
and C
The purpose of this module is to deepen understanding of the C language and smoothly integrate previous experience in the course into the larger framework of programming in C. | The purpose of this module is to move away from simple
static program declaration towards writing programs that can take input
and follow commands based on input, including:
|
|
| ||
| 4 | Image Processing
The purpose of this module is to introduce the customizable nature of self-written programs by using structs and 2-dimensional arrays. (???) | Dynamic data structures
The purpose of this module is to introduce CSC161 students to a wide variety of data structures, including
|
|
|
| Image processing (2 days)
Working in pairs, students should transform pictures --- details needed, highlighting problem solving |
| 5 | Music Composition
The purpose of this module is to introduce the customizable nature of self-written programs by using structs, but also to establish commonly-used data structures and their advantages and disadvantages. (???) | Dynamic data structures
The purpose of this module is to introduce CSC161 students to a wide variety of data structures, including
|
|
|
| Music composition --- insertion of series of notes
periodically into song tune (2-3 days)
Working in pairs, students should insert a series of notes periodically into the tune of a song; the program must implement at least one linked list, and contain one custom struct. |
| 6 |
This module increases familiarity with programming in C, integrates the Scribbler 2's sensors into the curriculum, and continues to practice previously-introduced concepts. | The purpose of this module is to clarify previously
introduced concepts, such as
|
|
|
| Do something interesting with pictures (2-3 days)
Working in pairs, students should write 5 image functions that take a picture using the Scribbler and modify it in some way. Students wishing inspiration may look at CSC151 functions for inspiration, or may devise their own "Photoshop-like" manipulations. |
| 7 | Integrated Robotics
The purpose of this module is to smoothly integrate and review material that has been presented through the semester, with a particular emphasis on C programming concepts and full usage of the Scribbler robot. | Advanced Input/Output
The purpose of this module is to wrap up the course, while introducing concepts used in later courses, such as
|
|
|
| Description of project needed
[Should integrate sensors, motion, song; loops, conditionals, i/o, functions; all should be tested] |
This document is available on the World Wide Web as
http://www.walker.cs.grinnell.edu/courses/161.fa11/module-outline.shtml
|
created created 29 June 2011 last revised 11 July 2011 |
|
| For more information, please contact Henry M. Walker at walker@cs.grinnell.edu. |