810:161 (section 2), Spring 2009

Introduction to Robotics
Syllabus Addendum

 

General Information

Information in this addendum pertains to the additional rules and procedures to be followed for those students taking section 2 of 810:161 -- the section including the laboratory for Introduction to Robotics.  Unless clearly indicated differently in this document, you should follow the procedures and rules explained in the main syllabus for this course.  Participants wishing to complete the Robotics Lab should sign up for section 2 of 810:161.  In addition to the three credits earned for the regular coursework, you will receive an additional one credit for the work conducted in the Robotics Lab.

Time and Place:   W 1:00-1:50, Wright 117, Additional time as determined by your team.

Class Directory http://www.cs.uni.edu/~schafer/courses/robotics/ (Check here for announcements, assignments, and supplemental lab materials)

Class Mailing List: 810-161-02-SPRING@uni.edu


Course Description

Introduction to Robotics is a laboratory based component of 810:161.  It is designed to be a hands-on introduction to the the challenges of the construction and programming of a variety of robotic agents.  As an bonus, it will also provide participants with a hands-on application of some of the Artificial Intelligence techniques studied in the classroom. 

We will be using the Mindstorms NXT robots produced by the LEGO Corporation and programming them using the leJOS language/operating system.  Students will be divided into teams and complete a variety of robot construction and programming activities within the confines of these teams. 


Course Structure and Policies

Meeting times/Attendance - Officially, this course meets once a week for one standard teaching "hour."  After we get through the first week or two (when we will be first getting acclimated to the robotics equipment and the operating environment) most class meetings will consist of a brief group introduction to the next assignment, a chance for teams to "check off" previous assignments, and work time. 

It is expected that you will be in the lab during the scheduled meeting each week.  In fact, a portion of your grade for the robotics lab will depend on this (see section on "grading").  It is also expected that you will need to meet with your teammates several hours each week outside of this regularly scheduled meeting time.  The specific time(s) that you set up to do this will be up to you and your teammates.  A portion of your grade for the robotics lab will be based on a team evaluation completed at the end of the semester.  Thus, it is important that you show up for your team meetings, or let your teammates know otherwise.

Equipment Access - In completing the robotics lab assignments you will spend a fair amount of time in the robotics lab itself (Wright 117).  So that you may have access on your schedule rather than a lab monitor's schedule, each student will be issued two keys.  The first gets you in the building itself, while the second gets you into the robolab.  You will be responsible for picking these keys up at the key shop (located in the northeast corner of the physical plant, across Hudson Road from the Redeker Complex).  You will also be responsible for returning them to me at the end of the semester.  Due to the amount of equipment in our lab, and Wright Hall in general, please make sure that you keep these keys secure and that doors get locked and closed (the door to the robot lab must be locked by key) when you leave the building.

Each team will be assigned a lockable storage space and one or more containers of equipment.  You and your teammates are responsible for the equipment that you are issued.  Any team failing to return equipment in good condition (clean and working) at the end of the semester will be held financially responsible for replacement costs.  Since access to this room is largely restricted to our class it is up to you whether or not you lock this storage space, but the option is available.  In general, it is recommended that you leave your robot equipment in this laboratory for security purposes.

Each team will also be assigned a computer that they may use.  This computer should contain all the software necessary to complete any assignments necessary for this course.  Teams should not install additional software without the prior consent of Dr. Schafer.  Computers in the robolab  are NOT hooked up to the standard CNS computer network.  Because of that, you do not have direct access to your lab directories, and all students logging on to the computer share a common desktop.  Thus, any files saved on your machine are "publicly" accessible.  The code you write for these labs will not compile on general CNS lab machines, thus you will either need to do all of your programming in the robolab, or you will need to install Java and the leJOS class libraries on a personal machine.  If you want to try this, please talk with me.

It is your responsibility to ensure that your physical and intellectual property are properly secured.


Grading

I consider the robolab to be mostly an experiential thing.  That is, the content that I teach you isn't nearly as important as the experiences that you have during the course.  Even more so, I consider robolab to take a backseat to the AI course.  That is, completing and understanding the assignments/material in the AI course proper is more important than the robolab.

As such, grading is fairly "simple" in robolab.  For each assignment I will evaluate you individually as well as your team and assign you one of the following "grades"

I will try to keep you informed of your status in the course, but I will certainly notify you if you are receiving any negative evaluations.

It is my expectation that the majority of students will complete robolab "satisfactorily" (met expectations).  However, students who show a track record of negative evaluations may have their final grade in the AI course dropped by as much as a full letter grade.  Conversely, students who show a track record of doing cool, interesting, and "additional" things with their assignments may have their final grade in the AI course raised by as much as a full letter grade.

Again, if you aren't hearing from me in any way then you may assume that you are doing just fine.


Scholastic Conduct

You are responsible for being familiar with the University’s Academic Ethics Policies (http://www.uni.edu/pres/policies/301.shtml).

You may think that the "Scholastic Conduct" section addressed in the main course syllabus no longer holds true when we are talking about the robotics lab.  On the contrary, I think that it is absolutely valid.  The only difference is that as you read that section the "individual" now refers to an individual team rather than an individual student.  Thus, the statement  "your final submission for assignments should be individual, original work..." is still valid.

You are encouraged to discuss solution strategies with your classmates, but you should be sharing strategies rather than code.


Teamwork

Several times during the semester I will ask each student to complete a group evaluation form.  Part of this form will be a section that asks you to indicate what percentage of the overall work each member of the team performed.  I realize that it is impossible for each member to do an exactly equal portion of the work -- if you tell me that each person did exactly 33.3% of the work I will probably think you are lying to me!  I realize that it is difficult, if not impossible, to keep everyone involved with every task.

You should feel free to coordinate the tasks that are part of each week's lab.  For example, one person may coordinate construction/modification to the robot, another may lead the efforts to write the code, while the third may take charge of keeping documentation in order.  Notice that I do not say that each person divides up the work and is responsible for that one component.  Instead, each person takes charge of coordinating a particular task.  Furthermore, it is probably best if you switch off who does what from assignment to assignment.  While it might seem best in the short run to let the strongest coder do all of the programming of the robot, it will lead to very short sighted solutions and an immense lack of learning by the other members of the team.  Recall that part of each assignment's grade is based on questions asked to random members of your team.  While failure to adequately answer a question will hurt that individual's grade, it also will hurt the team's grade.

Also, I would be foolish if I don't think that conflicts sometimes come up in teamwork.  They do, and they will.  Most of the time these are short term things such as a disagreement over how to tackle a given problem, or a little bit of hard feelings when someone feels they are pulling more than their fair share of the load (or, believe it or not, feelings that they aren't being allowed to pull enough of the load).  Often these kind of problems can be worked out by the team sitting down and calmly discussing what is going on.  I encourage you to try to solve your problems internally.

However, I also ask that you don't let problems fester so that by the time I find out about them it is impossible to resolve the situation.  If you are having problems with members of your team, please talk to me sooner rather than later.