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

Friday, January 31 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, February 3 Conditionals, Scribbler 2
• Motion
• Sensors
Conditionals Lab
Tuesday, February 4 Loops and Scribbler 2 Motion
• 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 Tuesday, February 18.
Wednesday, February 5 Project   Robot performs looped actions and sounds Tuesday, February 11
Friday, February 7 Supplemental Problem 1   Supplemental Problem 1 (done individually) Friday, February 7

## 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?