CSC 161 Grinnell College Fall, 2013 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 11 Module 1: Conditionals, Loops, and Motion Examples
• `quarts-2.c`
• `dance.c`
• `ice-cream-truck.c`
• ```couple-1.c ```
• ```couple-2.c ```
``` ```

Friday, September 13 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 16 Conditionals, Scribbler 2
• Motion
• Sensors
Conditionals Lab
Tuesday, September 17 Loops
• King: Sections 6.1-6.3, pages 99-110, OR
• Kernighan & Ritchie, 1.3, 1.4, 3.5
• Examples:
Loops Lab
Wednesday, September 18 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 20 Supplemental Problem 1   Supplemental Problem 1 (done individually) Friday, September 20
Friday, September 20 Project   Robot performs looped actions and sounds Tuesday, September 24

## 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.
• If robot performs the same two turns in a row (e.g. two right turns), robot beeps and turns for a second or two (before performing any further movements).
Notes:
• The beep/turn around activity applies only when there are two turns, so going forward or backward twice in a row does not count!
• To accomplish this requirement, you likely will need at least one variable that keeps track of the previous robot activity. This variable is updated after each action. After a turn left or right, this variable can be consulted to determine if the previous move was the same type of turn.
• Every ten actions, robot performs a short dance three times in a row (the dance can just be a few actions).
• Program contains at least one `if` statement
• Program contains a `switch` statement or a second `if` statement
• Program contains 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

As with Project 000, submission of your project should come in two parts:

• Turn in a printed copy of your code at the start of class when the project is due.
• Include a program listing
• Identify what you did to test your program
• Since this program uses the Scribbler 2 robot, it is not feasible to turn in the output of the program (that would require a recording of the music played)! Instead, prepare a written statement that describes the result of testing — what happened when you ran your program, and why was that a correct result that meets the specifications of the project?