22C:118 Course Syllabus Fall 2004
22C:118 Course Syllabus Fall 2004
Fall 2004 Monday/Wednesday/Friday 14:30-15:20 MacBride Hall 112
Professor:
Ted Herman,
201M MacLean, Telephone: 335-2833
E-mail: herman@cs.uiowa.edu
Office Hours: 13:30-14:20 MWF
Note:
if not in my office 201M MLH, try the network lab B1C MLH.
Teaching Assistant:
Xin Lu xinlu@cs.uiowa.edu
Tuesday and Thursday, 10:00-11:00, in B20J MLH
Prerequisite: 22C:060
Textbooks:
- Sync: How Order Emerges from Chaos
in the Universe, Nature, and Daily Life, by Steven Strogatz.
- TCP/IP Sockets in C: Practical Guide for Programmers,
by Donahoo and Calvert.
- 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. Some of these
other books are a better introduction to the language than the
text recommended above, but we will surpass the level of the
introductory books when we use some of Python's library functions
(essential for networking features). You might consider using
the following for the first week learning Python:
- A good beginner's book is
Learning Python by Mark Lutz. This text is available
online if you access it via the University's
catalog.
- Another is:
Python: How to Think Like a Computer Scientist
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
online tutorial
by Guido van Rossum.
- Other readings will be from online sources or reserved
materials in the Mathematics Library (in MacLean Hall).
Announcements:
Nearly all assignments, projects, examination
information, and various help files will be posted to a
22C:118
Course Web site. The URL for
the course's Web site is:
http://22C118.cs.uiowa.edu.
Content and Schedule:
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.
| Week | Monday | Wednesday | Friday | Theme |
| 1 | 23 Aug | 25 | 27 Jan | Networks |
| 2 | 30 | 1 Sep | 3 Sep | TCP/IP |
| 3 | (no class) | 8 | 10 | Sockets |
| 4 | 13 | 15 | 17 | Python |
| 5 | 20 | 22 | 24 | Python Web Services |
| 6 | 27 X | 29 | 1 Oct | Parallel Programming |
| 7 | (no class) | (no class) | 8 | Parallel Programming |
| 8 | 11 | 13 | 15 | Peer-to-Peer |
| 9 | 18 | 20 | 22 | Client/Server |
| 10 | 25 | 27 | 29 | Simulation |
| 11 | 1 Nov | 3 | 5 | Simulation |
| 12 | 8 X | 10 | 12 | Transactions |
| 13 | 15 | 17 | 19 | Transactions |
| 14 | (no class) | (no class) | (no class) | Vacation |
| 15 | 29 | 1 Dec | 3 | Security |
| 16 | 6 | 8 | 10 | Sensor Networks
|
Note: The symbol X is an examination date.
Miscellaneous Announcements: The University of Iowa Policies.
- This course is given by the College of Liberal Arts and Sciences (CLAS).
This means that class
policies on matters such as requirements, grading, and sanctions for
academic dishonesty are governed by the College of Liberal Arts and Sciences.
Students wishing to add or drop this course after the official deadline must
receive the approval of the Dean of the College of Liberal Arts and Sciences.
Details of the University policy of cross enrollments may be found at:
http://www.uiowa.edu/~ provost/deos/crossenroll.doc.
- See the
student academic handbook
for administrative procedures, your rights
and responsibilities, and other topics. The official
classroom procedures for faculty 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 cheating
Plagiarism 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 explore the insides of networks,
explaining various architectures and performance issues.
Unlike a traditional course, 22C118 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 four homeworks,
three examinations, and possibly a programming project.
Examination scores contribute 50% of the final grade,
and homework/project scores contribute 50% of the score.
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 Monday the 13th of December at 9:45am.
(Taken from the University's
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.