CS 1567: Programming and System Design using a Mobile Robot
Spring 2010

Daniel Mosse

Computer Science Department, University of Pittsburgh


NEWS:


Class:

MW 3:00pm-4:15pm, SENSQ 5804 (Bot Lab)

Instructor/TA Prof. Daniel Mosse (mosse@cs.pitt.edu) Nick Farnam (nlf4@cs.pitt.edu),
Office Hours: TH 10-11am (or by appointment) in Robot Lab, Mon,Wed 1-3pm, Thu 3-5pm



Mailing List Announcement
A class mailing list will be compiled, and will be used for important announcements. It is VERY important that you be included in this list. It is therefore your responsibility to e-mail the TA and request to be included on the CS1567 class mailing list.


Course Objectives
The purpose of this course is to understand and use the basic concepts of small mobile robots, implement some algorithms in an actual platform, interfacing the program (software) with the machine (hardware). In particular, this class is meant to be very hands-on, relying on implementations and labs, while also introducing several concepts needed to make the robots move.


Grading


Programming Assignments

The programming assignments are THE ESSENTIAL component of the course. If all goes as planned, you will be implementing several programs running atop a Linux OS.  In the first third of the course, these programs will be downloaded onto a laptop, which commands the robots.  The 2nd part of the course will have to program SONY AIBO dogs to perform several tasks.

The programming assignments will be evaluated on several factors:
  • Documentation: your code must be well-commented and must include a design document describing your solution.
  • Correctness: your code must do what it is supposed to do.
  • Structure: your code should be broken into natural functions and modules.
  • Style: your code should be easy to read, well indented, well commented, and use clear, self-explanatory variable and function names.
  • Your grade for each assignment will be based on your design (40%) and your code (60%). Good design and documentation are absolutely crucial for this class because of the difficulty of the concepts.

    Due dates and lateness:

  • Late work will be accepted up to a week late, at a penalty of 10% per day.
  • Graded work will be returned as soon as possible, usually within one week.

  • Getting Answers to your Questions

  • Attend class
  • Check the class web page frequently - we will post as much information as we can
  • Meet with the professor and TA during office hours
  • Email the professor and TA

  • Academic Honesty: Collaboration vs. Cheating

    This really should not be an issue, but to make things as clear as possible the following is necessary.

    You are encouraged to discuss the course material and concepts with other students in the class. However, all work that you submit must be your own. Under no circumstances may you look at anyone else's code or show anyone else your code. And while you may discuss the concepts used in the programming assignments, you may not discuss implementation details of the assignments themselves.

    If you are caught copying or otherwise turning in work that is not solely your own, you will fail the course.

    The bottom line is that you are expected to conduct yourself as a person of integrity - you are expected to adhere to the highest standards of academic integrity. This means that plagiarism1 in any form is completely unacceptable. As a (soon to be) computing professional, I encourage you to consult the code of ethics appropriate to your discipline2.

    Plagiarism will be assumed until disproved on work that is essentially the same as that of other students. This includes identically incorrect, off-the-wall, and highly unusual duplicate answers where the probability of a sheer coincidence is extremely unlikely. All parties to this unacceptable collaboration will receive the same treatment.

    You should bring a picture identification with you to all examinations and be prepared to show it upon request.

    If you are unsure of what is and is not allowed by this policy, talk to the instructor.

    1 pla-gia-rize vt. to steal and pass of as one's own (the ideas or words of another) to present as one's own an idea or product derived from an existing source - pla-gia-riz-ern. (source: Webster's New World Dictionary).
    2 The Association for Computing Machinery is http://www.acm.org/, the IEEE is http://www.ieee.org/ and the IEEE Computer Society is http://www.computer.org/.



    These web pages contain format kindly provided by Prof. Scott A. Brandt and materials kindly provided by Prof Don Chiarulli