CSC 161 Grinnell College Fall, 2012 Imperative Problem Solving and Data Structures

# CSC 161 Module to Introduce Conditionals, Loops, and Scribbler 2 Motion

## Introduction

This module introduces CSC 161 students to several fundamental elements of programming in C, including:

1. using conditional statements (e.g., ` if, switch`),
2. using loops (e.g., initialization, iteration, condition testing, loop body with `for, while`), and
3. introducing motion with the Scribbler 2 robot.

## Day-by-day Details

Day Topic Preparation In-class Due Date Availability
for
Extra
Credit
Wednesday, September 12 Module 1: Conditionals, Loops, and Motion Examples
• `quarts-2.c`
• `dance.c`
• `ice-cream-truck.c`
• ```couple-1.c ```
• ```couple-2.c ```
``` ```

Friday, September 14 Types and Variables (with casting)
• King: Sections 7.1-7.5, pages 125-148, OR
• Kernighan & Ritchie, 1.1, 2.1-2.4, 2.7
Types and Variables Lab
Monday, September 17 Conditionals, Scribbler 2
• Motion
• Sensors
Conditionals Lab
Tuesday, September 18 Loops
• King: Sections 6.1-6.3, pages 99-110, OR
• Kernighan & Ritchie, 1.3, 1.4, 3.5
• Examples:
• Annotated `counting-loop.c`
• Annotated `asterisk-loop.c`
• loops.c
• coins.c
Loops Lab
Wednesday, September 19 Supplemental Problem 1   Supplemental Problem 1 (done individually) Wednesday, September 19
Wednesday, September 19 Loops and Scribbler 2 Motion
• King: Sections 6.4-6.5, pages 111-120, OR
• Kernighan & Ritchie, 3.6-3.7
Motion and Loops Lab
Friday, September 21 Project   Robot performs looped actions and sounds Tuesday, September 25

## Project Options

Working in pairs, students should develop a program that includes these elements:

• Program controls robot such that the robot avoids obstacles in the room.
• Robot recalls the last two actions (currently done and the one one before that).
• If robot performs the same two turns in a row (e.g. two right turns), robot beeps and turns around (before performing any further movements). Note that this is only when there are two turns, so going forward or backward twice in a row does not count!
• Every ten actions, robot performs a short dance three times in a row (the dance can just be a few actions).
• At least two `if` statements
• At least three loops, at least one of which must be a `for` loop, and at least one must be a `while` loop
• .

Together with the program, a student pair must write a paragraph that describes what steps are needed to demonstrate the program is working correctly (this can be pseudocode).

#### Project Submission

Here are some guidelines for this project:

• The very first part of a program listing should indicate the authors of the project (use a C comment).
• The paragraph description of the project may be included in comments at the start of the program, or it may be written as a separate document.
• If the description is included in the program, please place the paragraph immediately after the authors' names.
• If the description is separate, please be sure the authors's names are at the top of the page.
• A copy of the program and description should be printed and turned in at the start of class when the project is due.
• A copy of the program and description also should be emailed to the instructor at walker@cs.grinnell.edu by the start of the class when the project is due. In the email, please include the authors' names as well as the project title in the subject line.

• Inclusion of at least two `if` statements that impact the functioning of the program (6 points)