Syllabus for CS 54 Robot Design
STILL UNDER SOME CONSTRUCTION
| Monday, Wednesday and Friday 1:45 - 2:50 |
Sudikoff 215 |
Prof. Stephen Linder |
||
| Office | Sudikoff 216 | ![]() |
| Phone | 603-646-1613 | |
| Office Hours | TBD | |
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.
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.
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 is not required except when working on group projects. Students missing group meetings, in or out of the lab periods, will be penalized.
Students shall be required to participate in team meeting outside of class to complete their group lab project.
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.
TBD
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.
Academic Calendar for 2003-2004
| Due date | |

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.
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.
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.
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.
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.