22C:078 Course Syllabus Spring 2004
Spring 2004 Monday/Wednesday/Friday 12:30-13:20 MacLean Hall 118
Professor:Ted Herman, 201M MacLean, Telephone: 335-2833
Office Hours:13:30-14:20 Monday/Wednesday/Friday
Note: if not in my office 201M MLH, try the network lab B1C MLH.
Teaching Assistant: Xin Lu, E-mail: email@example.com,Office Hours: (B20J MLH, 335-3650)
MF 9:30am -- 10:30am
Textbooks:Most of the readings will be from online sources or reserved materials in the Mathematics Library (in MacLean Hall). The Python language will be used for network programming, so the following text is recommended:
- Python in a Nutshell , by Alex Martelli, published by O'Reilly, 2003. Actually, there are several O'Reilly books on Python, with different levels of expertise and specialization.Note: we won't have any need for Python for the first two weeks of the course (no need to get this book early).
- In addition, there is a free, online book about Python: How to Think Like a Computer Scientist, Learning with Python, by Downey, Elkner, and Meyers, Green Tea Press, 2002. No need to get this book, it is little more than a gentle introduction to the first chapter topics of Python in a Nutshell. Alternatively, you may want to read the tutorial online by Guido van Rossum.
Announcements: Nearly all assignments, projects, examination information, and various help files will be posted to a 22C:078 Course Web site. The URL for the course's Web site is:http://22C078.cs.uiowa.edu
Content and Schedule: This is my first teaching of 22C078, and the following is an approximate plan for the semester -- I may need to adjust it based on the progress of students. Changes to this syllabus will be reflected in the online version, available on the course web site.Do not ask for lecture notes to be posted before lectures; this course is not an ``industrial powerpoint'' presentation where the audience checks off slides as they appear!
Week Monday Wednesday Friday Theme 1 (holiday) 21 Jan 23 Jan Networks 2 26 Jan 28 Jan 30 Jan Networks Continued 3 2 Feb 4 Feb (no class) Networks Continued 4 9 Feb 11 Feb 13 Feb Python 5 16 Feb 18 Feb (no class) Python Continued 6 23 Feb 25 Feb 27 Feb Parallel Programming 7 1 Mar 3 Mar 5 Mar Parallel Programming 8 8 Mar 10 Mar X 12 Mar Midterm 9 (no class) (no class) (no class) Spring Break 10 22 Mar 24 Mar 26 Mar Client/Server 11 29 Mar 31 Mar 2 Apr Simulation 12 5 Apr 7 Apr 9 Apr Simulation 13 12 Apr 14 Apr 16 Apr Transactions 14 19 Apr 21 Apr 23 Apr Transactions 15 26 Apr 28 Apr (no class) Sensor Networks 16 3 May 5 May 7 May Optional Topics
- The symbol * denotes a due date for a homework.
- The symbol X is an examination date.
Miscellaneous Announcements: The University of Iowa Policies.
- See the student academic handbook for administrative procedures, your rights and responsibilities, and other topics. You can also view the official classroom procedures for faculty, which includes policies on cheating and plagiarism, students with disabilities, and other topics. In particular, we are required to state the following:I need to hear from anyone who has a disability which may require some modification of seating, testing, or other class requirements so that appropriate arrangements may be made. Please see me after class or during my office hours.Also, we are required to specify the following information.
- ``The name of the department, location of the departmental office, and information on how to contact the DEO or his/her designee.''Department of Computer Science
14 MacLean Hall
Professor James Cremer, DEO
- ``Statement that, for each semester hour credit in the course, students should expect to spend two hours per week preparing for class sessions (e.g., in a three-credit-hour course, standard out-of-class preparation is six hours).''
- ``Procedures for student complaints.''There is rather specific language (legalese) describing the escalating hierarchy of complaint procedures in several University documents. Typically, the student tries to resolve the matter with the instructor; then it can go to the department chairman or higher levels of authority. Please see the official documents for all the details of grievances and appeals.
- The collegiate policy on plagiarism and cheatingPlagiarism and cheating are not tolerated. In the past, I've gone so far as making multiple versions of quizzes and examinations to discourage cheating (which had the unfortunate side-effect of being ``unfair'' because not all examinations were identical). Generally, students caught cheating for the first time may be given a penalty up to an automatic F in the course. Such an F cannot be removed from the transcript. Penalties up to expulsion may apply to second offences. While you are encouraged to discuss homework problems with others in the class (this is a good way to learn), do not discuss anyone's solutions prior to turning in your final copy! In some cases, I may assign group homeworks, and of course the submitted work will be by the group in those cases, where collaboration is expected.
- Goals and objectives of the course.Traditional networking courses (such as 22C178, taught in our department) explore the insides of networks, explaining various architectures and performance issues. Unlike a traditional course, 22C078 will spend less time explaining how networks are built and more time about how applications use networks. The goal is to learn how to make use of networks, even though you may not understand all the components and how they work. Note: students will be expected to demonstrate learning of topics by programming exercises (homework). These exercises will use the Python programming language, which is available on the CS Department's machines (and there are MS Window-based versions as well, in case students would like to work on programs at home). Naturally, many of the programming exercises will require working on computers connected to networks, usually meaning the Internet.
- Schedule of topics, readings, and course materials or other description of course content.See above, and frequently consult the course web page for assigned readings, pointers to online documents, and other announcements.
- Grading procedures, including whether plus/minus grading will be used.Plus/minus grading will be used based on normalizing total student scores to a curve. There are ten homeworks and two examinations: a midterm exam and a final exam. The midterm exam counts 20% of the score and the final exam counts 30% of the score. Each homework normally counts 5% of the score, however this may be adjusted (and announced) if some homeworks are significantly more difficult than others. Above, it is noted that students can expect to spend about six hours per week outside of class on this course.
- Instructor's or departmental policies on attendance and tardiness, assignments, and examinations.Students are expected to attend classes. No late homeworks are accepted if solutions have been posted to the course web site. There is no guarantee that late homeworks will be accepted; if the Professor or TA agree to accept a late homework, the score will be penalized: homeworks submitted late, but before the TA has graded all the on-time homework, will be penalized by 20%; homeworks submitted after the TA has finished grading all the on-time homeworks, but within a week of the deadline, will be penalized 50%.
- Dates and times of any exams scheduled outside of class time and the date and time of the final examination.The final examination is on Friday the 14th of May at 9:45am. (Taken from the University's Spring Final Examination Schedule.)
- Corrections or changes (if any) in the information about the course printed in the Schedule of Courses or other official University publications.Corrections, updates and announcements will be posted on the course web page version of this syllabus.
- Resources for obtaining additional help, such as tutors, teaching assistants, or tutorial laboratories (if any).Most of the additional resources are online or in libraries. They will be announced on the course web page.
20 January 2004