Syllabus for CS 54 Robot Design

STILL UNDER SOME CONSTRUCTION

Monday, Wednesday and Friday 1:45 - 2:50

Sudikoff 215

Instructor

Prof. Stephen  Linder 

Office Sudikoff 216
Email  
Phone 603-646-1613
Office Hours  TBD

Course Overview

Approach

Using a team oriented, project-based approach students will learn to design and build intelligent robots. Robots will be built from both mechanical and electrical components that requires using hand and power tools, soldering iron, logic probe, oscilloscope, etc.. Robot will interface to an embedded controller that implements low-level behaviors, while high level planning is implemented on a PC-based server. Example of theses projects can be found on the Student Robot page.

Course Objective

Students shall successfully demonstrate their robots performing intelligent behaviors and planning at a public forum with students, faculty and children from the local middle school. Students shall be comfortable and lucid discussing the rational behind the design of the robot, both the physical construction of the robot, and the algorithms and software used to control the robot.

Pedagogy
Learning that actively engages students in material is more effective than listening to monotonous lectures. I am a proponent of active learning, which flies in the face of traditional passive learning by involving students directly in the learning process ( I got this line from my student Josh.)  If you want to read more about this approach read my paper Facilitating Active Learning.

Not all material required for completion of your programming assignments will be covered in class. Students are expected to independently read technical documentation and to search the web for answers to technical questions that might arise as they work on their projects. You are encouraged to share the fruits of your research through in-class presentations and use of the class newsgroup.

In the past students have lamented that assigned projects were too difficult. Some even went so far as to intimate that the instructor would not be able to implement the assigned projects. These projects have purposely been designed to be interesting and engaging; interesting projects are usually challenging. While having challenging projects might be initially painful, in the long run you will better understand how to develop software and solve problems. 

All students are expected to participate in class discussions and in addition provide their rationale for answers. Active participation is more important than always being correct. 

At times I will critique your answers to questions or work in the presence of other students, especially those on your project team. While this may be uncomfortable for some of you, it is no different than situations that you can expect to find yourself in when you are in the work place. If you feel I have made an inappropriate remark please talk to me as soon as possible so I can attempt to rectify the situation. 

Accommodation

Any student with a documented disability needing academic adjustments or accommodations is requested to speak to me by the end of the second week of the term. All discussions will remain confidential, although the Student Disabilities Coordinator may be consulted to verify the documentation of the disability.

Attendance

Attendance is not required except when working on group projects. Students missing group meetings, in or out of the lab periods, will be penalized.

Out of class lab group meeting

Students shall be required to participate in team meeting outside of class to complete their group lab project. 

Class Participation

Class participation includes presentations of software designs and code, active involvement in discussion, helping other students with technical questions, and the asking and the answering of questions. Adding to and submitting corrections to the this website are also strongly encouraged. 

Collaboration
While the formation of study groups and collaboration in learning the course material is strongly encouraged, all work should be produced by the individual taking credit for the work, unless exceptions are outlined by the assignment indicate otherwise.

Email/Newsgroup - electronic discussion forum

Some electronic forum for questions will be arranged. I am not sure if this will be in the form of a mailing list or news group.

Students are encouraged to actively participate on the list.  I monitor the list and occasionally give hints or relax requirements for a project. You can only make your life easier by checking daily. 


Text Books

Required

TBD

Supplemental 


Grading

Grades will be based on  programming assignments and a team projects. These metrics will be weighed as follows

 

four robotic assignments  (tentative number)

40%

class participation

20%

one team project

40%

Total

100%

A passing grade in the course requires a passing grade on three of the four robotics assignments and on the team project. A passing grade will only be given to programs that work to a large degree. 

Poor programming practice and style will adversely affect your grade. 

Students that earn a grade of A should be able to teach much of the material in this course to another student not in the course.

Students will be required to orally explain the working of their code and give rationales
for their design decisions. 


Schedule

Academic Calendar for 2003-2004

Homework and Team Projects

Due date
   
   
   
   
   
   
   
   
   

 


Miscellaneous Pebbles

Homework Submission and Evaluation

Homework will be submitted electronically and evaluated on my office computer which will be running Windows 2000, Java 1.4.01, and NetBeans 3.51. Your submissions should be as a zip-file. Your code will be recompiled before running. 

Coding Language

I prefer to code in Java and assembly language, but I will accept assignments in any language. It is however the students responsibility to show the instructor how to compile and run the code if the code is not Java.

Developing Environments

The instructor is a proponent of the following open source tools:

I will be running your Java code in Eclipse and when you ask for help I will use Eclipse to look at your code. You can download your own copies from my local mirror.

Coding Style

Programs will be also graded on the correctness of the design, proper choice of field, method and class names, proper formatting (you must use Jalopy, which can be run from inside of Eclipse), and the generation of Javadocs for all methods. NetBeans includes a wizard to help you write your Javadocs. 

Code Reuse

Students are discouraged from writing all code fragments from scratch. Most things you do in Java follow a pattern that has already been optimized. Unless the assignment explicitly says you must code something yourself, you are free to look for resources that help you solve specific problems. However, full credit for a lab assignment will only be given to students that write a substantial portion of their program. 

You can reuse any code that is on a website directly linked from the course website or from a link in a faculty email. 

You are allowed to use any code fragments or Java class that you find searching the web, magazines or books, but only if you reference the source of the code and include the original author in the author list. You are always responsible for documenting code that you reuse and for being able to explain what it does.

What Code Reuse is Forbidden

You are forbidden to reuse code from a current or former Dartmouth student, or to hire someone else to program for you. 

You can only reuse code that is publicly available to all CSC 43 students. If you have other code that you would like to use, you may consult the instructor, and he may opt to approve its use for yourself and the rest of the class.

If you are uncertain about whether you can reuse a portion of code please contact an instructor.