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

Wednesday, September 10 Types and Variables (with casting)
• Reading from Text
• King: Sections 7.1-7.5, pages 125-148, OR
• Kernighan & Ritchie, 1.1, 2.1-2.4, 2.7
Types and Variables Lab
Friday, September 12 Conditionals, Scribbler 2
• Motion
• Sensors
Conditionals Lab
Monday, September 15 Loops and Scribbler 2 Motion
• Reading from Text
• King: Sections 6.1-6.5, pages 99-120, OR
• Kernighan & Ritchie, 1.3, 1.4, 3.5 , 3.6-3.7
• Examples:
Loops Lab   Extra credit available if submitted by Monday, September 29
Tuesday, September 16 Supplemental Problem 1   Supplemental Problem 1 (done individually) Tuesday, September 16
Tuesday, September 16 Project   Robot performs looped actions and sounds Tuesday, September 23

## 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.
• Program uses eSpeak to announce each time it turns, each time it moves forward or backward, and each time it performs its short dance after ten other actions.

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?