CSCI 014

Lego Robot Engineering

>> The robots <<<

Instructors: Andrea Danyluk Tom Murtagh
email: andrea@cs.williams.edu tom@cs.williams.edu
phone: x2178 x2369
Office: TCL 305 TCL 309
Office Hours: TBA and by appointment TBA and by appointment
Meeting Times: Mon, Wed, Thurs 10:00-noon
Meeting Places: TCL 206 (lectures), TCL 312B (labs)

Disclaimer

Note that the course schedule is subject to change. Changes will be announced in class and updated in the online version of the syllabus.

Course Description

In this course, students will explore the theory and practice behind the construction of autonomous robots. Working in small teams, students will construct robots from battery powered microprocessor control boards, assorted sensors and motors, and LEGO components, and will then program them. Control programs will be written in a subset of the C programming language. The majority of class time will be spent in the laboratory. Students will be expected to complete appropriate structured exercises to develop basic skills in robot construction and programming. By the conclusion of the course, each team will be required to complete a project of their own design. Each team will be required to give a brief presentation describing their final project, demonstrate their robot's performance, and submit well-documented code.

Prerequisites

None.

Readings

There is no required text for this course. Assigned readings will either be available as course handouts or online. A number of reference texts will be available in the lab.

Lectures

Some meetings will involve lectures on the Handyboard and Interactive C.

Labs

Labs form the bulk of the work for this course. Students will be expected to come to the lab outside of the official class meeting times in order to complete assignments.

Lab assignments will typically have both a construction component and a programming component. All assignments will be designated as "team laboratory programs." See the honor code guidelines at the end of this document for details.

Final Project

For the final 1.5-2 weeks of the course, student teams will focus on large projects of their own design. The final assignment will include a presentation, a demonstration of the working robot, as well as appropriately-documented code.

Grading

Winter Study course grades are assigned as H (honors), P (pass), PP (perfunctory pass), and F (failure). If a group completes the lab assignments and submits a well-written design, they can expect to earn a P grade. Groups with some missing or inadequate submissions can expect a PP grade. The grade of H will be reserved for especially outstanding work.

Tentative Schedule

Note: Unless indicated otherwise, all homework assignments are due the following class period.

Week 1
Mon, 1/3
Class: Basics of using IC; Constructing a Handybug; Tutorial on IC and Handyboard
Reading: "The Art of Lego Design"
Homework: Complete Handybug + maze dead reckoning
Tues, 1/4
Optional Class/Lab: (Highly recommended) session on conditionals and simple loops for those with less programming experience
Lab office hours for everyone
Wed, 1/5
Class: Introduction to digital sensors; Soldering instructions
Homework: Bump-sensitive Handybug
Thurs, 1/6
Class: Introduction to light sensors; Construct new robot
Homework: Line following with new robot

Week 2
Mon, 1/10
Class: Servos and range sensors; More on IC programming
Homework: Begin range sensor project
Wed, 1/12
Class: More on IC programming; Work on range sensor project
Homework: Complete range sensor project
Thurs, 1/13
Class: Project planning
Homework: Project proposal

Week 3
Class: Work on projects
Homework: Work on projects

Week 4
Mon, 1/24
Class: Work on projects
Homework: Complete projects
Wed, 1/26
Class: Project presentations
Thurs, 1/27
Class: Lab clean-up

The Honor Code for Courses in Computer Science

The Honor Code as it applies to non-programming assignments is outlined in the Student Handbook.

For programming assignments in Computer Science courses, the honor code is interpreted in very specific ways. When a program is assigned, your instructor will identify it as a "practice," "test," "laboratory," or "team" program. The Honor Code applies to each as follows (unless otherwise specified by the instructor):

Practice Programs. These are provided to help you gain an understanding of a topic, and are not graded.
Guideline: Help on these programs is unrestricted.

Test Programs. Any assignment designated as a test program is to be treated exactly as a take-home, open-book test. You are allowed to read your textbook, class notes, and any other source approved by your instructor. You may not consult anyone other than your instructor. The instructor encourages the asking of questions, but reserves the right not to answer, just as you would expect during an exam.
Guideline: Any work that is not your own is considered a violation of the Honor Code.

Laboratory Programs. Laboratory programs are expected to be the work of the individual student, designed and coded by him or her alone. Help locating errors and interpreting error messages are allowed, but a student may only receive help in correcting errors of syntax; help in correcting errors of logic is strictly forbidden.
Guideline: Assistance in the design or coding of program logic will be considered a violation of the Honor Code.

Team Programs. Team programs are laboratory or test programs to be worked on in teams of two or more students. You are allowed to discuss team programs with your partners, but work with others is otherwise restricted by the appropriate rules above.
Guideline: Any work that is not the work of your team is considered a violation of the Honor Code.

If you do not understand how the Honor Code applies to a particular assignment, consult your instructor.

Students should be aware of the Computer Ethics outlined in the Student Handbook. Violations (including uninvited access to private information and malicious tampering with or theft of computer equipment or software) are subject to disciplinary action.
Guideline: To protect your work dispose of printouts and copies of your work carefully, and avoid leaving your programs on hard disks in labs and other public storage areas.

The Department of Computer Science takes the Honor Code seriously. Violations are easy to identify and will be dealt with promptly.