Syllabus for CS 88/188
Design and Implementation of
a Rock Climbing Robot
Spring 2004
| Monday, Wednesday and Friday 12:30 - 1:35 |
Sudikoff 115 |
| Tuesday 1:00 -1:50 | Sudikoff 01 |
Prof. Stephen Linder |
||
| Office | Sudikoff 216 | ![]() |
| Phone | 603-646-1613 | |
| Office Hours |
Monday, Tuesday and Wednesday 5:00 - 7:00 PM |
|
|
Opening
Joke |
An
Embedded Cartoon |
A design project focusing on the development of a large complex robotics product which requires application of engineering skills and extensive collaboration with team members. Students contribute to the entire development cycle, including requirement and specification development, component design and testing, and final integration and testing. The project culminates in a public demonstration.
Only through the efficient communication between team members can individual components be fused into a product that conforms to the initial requirements.
Develop the confidence, skills and habits necessary to successfully complete a large project while part of a multi-person team. Become conversant in engineering paradigms, project management, and further develop your expertise in your domain while taking a holistic approach to the project. And finally, enhance skills in self-directed learning, problem solving, and communication.
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.
Extreme Programming Installed
by Ron Jeffries, Ann Anderson, Chet Hendrickson, Kent Beck
Amazon.com- Books- Extreme Programming Installed
The following book is for those of you that are working on the embedded microcontroller:
Programming Embedded Systems in C and C ++
by Michael Barr
Amazon.com - Price: $20.97
Design and build a robot that autonomously finds and climbs a route to the top of a climbing wall.
Students will be evaluated using three metrics grading will consist of three parts
| class participation | actively participate in discussion in class and on the mailing list, keeping the lab clean, etc. |
| incremental releases | the project will have three incremental releases during the term |
| final project | a public demonstration of final project along with documentation, code, drawings, etc. |
Your assessment will be weighted as followed
| class participation | 20% |
| incremental releases | 30% |
| final project | 50% |
I starts the semester with the assumption that everyone will work hard, be conscientious, learn a lot, and have a successful final presentation. You don't have to get things correct the first time, maybe not the even the second time, but you will quickly iterate on successful solution. If you are productive member of your team you will probably get an A for the course. My definition of productivity includes:
However, because certain things have been problematical in past semesters the following sticks are introduced to improve your productivity
The following can raise your grade:
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 is required and will be used in grading.
Students shall be required to participate in team meeting outside of class to complete this project.
The course mailing list maintained by the instructor. If you do
not receive email from me in the first week please email me.
Miscellaneous Pebbles
You are expected to use CVS to facilitate the sharing of code and documentation and for saving milestones.
Follow the Coding Standards when ever possible and use Jalopy to format your code. Programs will be also graded on the correctness of the design, proper choice of field, method and class names, proper formatting , and the generation of Javadocs for all public methods. NetBeans includes a wizard to help you write your Javadocs. Other references
Please reuse code.
You can not reuse code without citing who's code you are using.
Organization of Teams
The instructor will select teams to work on the various modules with the goal of creating diverse teams with a wide breadth of expertise. See FAQ - Cooperative-Group Problem Solving