CSC 161 Module 000: Getting Started with Linux, C, and the Scribbler 2
Summary and Main Topics
This module introduces CSC161 students to the basics of Linux, C
programming, and the Scribbler robots, including:
- introduction to using the terminal window;
- basic Linux
- elements of a C program, including variables and primitive types;
- editing, compiling, linking, and running a program; and
- basic Scribbler actions (beeping and motion).
Day-by-day Details
Day
| Topic
| Preparation
| In-class
| Due Date
| Availability for Extra Credit
|
Tuesday, January 20
| Problem-solving Process
Module 0: Linux Introduction
|
|
|
|
|
Wednesday, January 21
| Linux Basics
- Use of terminal window
- Setting up the emacs editor
- Updating .bashrc
- Creating a 161 directory structure
- Linux directory commands: mkdir, rmdir,
cd, pwd
- Linux file commands: ls, mv,
cp, rm
|
| lab exercise
|
|
|
Friday, January 23
|
Overview of C
- Basic syntax
- Elements of a program
- Variables and arithmetic expressions
- Variable names
- Data types and sizes
- Constants
- Compiling C programs
- Running C programs
Printing with lpr
|
|
Discussion: Overview of C
lab exercise
|
|
|
Monday, January 26
| More C
- Speech synthesis with eSpeak
- Elements of Linux
- Arrow keys
- Auto completion
- Linux commands: cat, more, head, tail
- Relative and absolute paths
|
| lab exercise
|
|
|
Tuesday, January 27
| Using the Scribbler 2 Robot
- the MyroC package
- Using MyroC with eSpeak
|
| lab exercise
|
|
|
Wednesday, January 28
| Project
| Program formatted for submission
| Program a Song
| Due: Monday, February 2
|
|
Project: Program a Song
Working in pairs, students should develop a program that causes the
Scribbler 2 robot to play a song or melody that extends at least 30
seconds. Within the program, eSpeak should be used to speak text that
introduces the song. Students should also write a description of their
program, compile the program, and run it. Creativity in identifying a song
or melody is encouraged. Songs which have been used in examples or labs
may not be used.
Project Submission
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
-
Of course, the program should be logically formatted and commented.
Turn in a a written statement that describes how you tested your program.
This should include:
-
what happened when you ran your program,
-
how did the result of running your program meet specifications of the
project?
-
Email your program to grader-161-01@cs.grinnell.edu.
-
The subject line should include "CSC 161 Project 000", together with the
names of the collaborators who wrote the program.
-
Include the C program (not the compiled machine code) as an attachment.
-
Include a separate, attached file with your written statement regarding
testing.
Deadlines
This project, as well as any labs or supplemental problems due later in the
semester, is due at the start of class.
-
The time stamp on the email must be before the start of class.
-
The printed copy should be turned in at the start of class.
Note: If you email the project code or print the program after you
arrive in class, there is a good chance that your work will be considered
late and subject to the late penalty.
Exceptions to the deadline policy and its penalties:
-
An extension of at least one class period is automatically
granted if the department's Linux network is down for an unscheduled period
of three or more hours during the week preceding the assignment.
-
Difficulties sometimes arise with printing through PaperCut. When such
difficulties arise, you should contact the instructor (either at the start
of class or via email). Note, however, that difficulties with PaperCut do
not impact deadlines for emailing materials.
-
Students arriving late to a class should turn in the paper form of the work
as soon as they arrive in the classroom. In such cases, the assignment
will be considered on time if the email submission was received before the
class began.
Grading