Course Overview
This course gives students the opportunity to design, build, and program small, mobile robots using Lego pieces, tiny onboard computers, and a variety of sensors and actuators. In this context, the course will explore important concepts from computer science such as structured programming, abstraction, reasoning under uncertainty, real-time control, and elementary robotics. It will also engage other disciplines, including creative design, mechanics, and electronics. The course will culminate with a light-hearted robot talent show featuring the robots created by each team of 2 or 3 students. No prior experience with Lego is required.

Expectations
Students should have CSCI 100, 101 or the equivalent.

Course Webpage
http://community.middlebury.edu/~jeffp/Courses/LegoRobots/

Time and Place
Monday, Wednesday, Friday, 9 AM - noon
McCardell Bicentennial Hall 632

Instructors
Jeff Parker
642 MBH
443-5502
jeffp at middlebury dot edu

Tim Bahls
tbahls at middlebury dot edu

Office Hours
One of us will usually be available for help in lab Monday-Thursday 1:30-4 PM. We will also drop by the lab at other times and on weekends. Individual meetings can be set up by appointment. If you need help, please feel free to email or call any of us.

Text (required)
"Lego Robot Design Studio - Course Pack", available at the campus store.

Course Description
In this intensive introductory course, you will design and build robots out of LEGO parts, sensors, motors, and Handy Boards (palm-sized computers), and then program your creations to do your bidding. We start by learning some fundamental skills in the context of building and experimenting with a simple robot known as Sciborg. Then, working in small teams, you will design, build, and program a number of robots, culminating in a creative final project, which you will demonstrate to the college community in a "Talent Show" (scheduled in the MBH Great Hall for Monday, January 30, 2 PM - 5 PM).

Some of the concepts and skills you can expect to learn in this course include: simple programming (sequencing, conditionals, loops, procedure calls, concurrency), procedural abstraction, basic electronics (voltage, power, motors, sensors), fundamental mechanics (building robust structures, friction, gearing), hypothesis testing and debugging, divide-and-conquer strategies for problem solving, modularity and abstraction, the value of simplicity and robustness, as well as creating web pages.

Grading
Active participation in class and completion of all projects is expected. You must attend all 12 class/lab meetings. Your grade will be determined as follows:
  Attendance and class participation      20%
Quizzes 20%
Homework (daily) 30%
Final project 25%
Cleanup 5%