CSC 364 Computer Networks
Spring 2014
Synopsis: This course focuses on the communications protocols
used in computer networkstheir functionality, specification,
verification, implementation, and performance. The course also considers
the use of network architectures and protocol hierarchies to provide
more complex services. Existing protocols and architectures are used
as the basis of discussion and study. Includes formal laboratory work.
| Instructor: | Jerod Weinman |
| Office: | Noyce 3825 |
| Phone: | x9812 |
| E-mail: | [weinman] |
Course web page: http://www.cs.grinnell.edu/~weinman/courses/CSC364/2014S/
Contents
1 Overview
2 Accommodations
3 Textbook
4 Class attendance
5 Assignments and activities
5.1 Reading
5.1.1 Preparation
5.2 Participation
5.3 Lab assignments
5.4 Exams
6 Grading
7 Academic honesty
8 Deadlines
9 Contacting Me
1 Overview
Our major objectives for this course include:
- Appreciating the major problems of computer networking
- Understanding the principles of layered networking
- Conversance in modern Internet protocols
- Experience using, writing, and evaluating network-related programs
2 Accommodations
If you have any disability that requires accommodations, please meet
with me right away so that we can work together to find accommodations
that meet your learning needs. You will also need to provide documentation
of your disability to the Dean for Student Academic Support and Advising,
Joyce Stern, located on the 3rd floor of the Rosenfield Center (x3702).
Please also note that I require your accommodations. The synthetic
fragrances found in deodorants, lotions, after shave, body sprays,
laundry products, perfume, cologne, etc. make many people who suffer
with asthma, allergies, environmental sensitivities, cancer, and migraines
much sicker. I am sensitive to many such chemicals you may not even
notice, so please try to avoid using such scented products before
coming to class and especially if you visit my office.
3 Textbook
Our course will be closely based on the following text:
James F. Kurose and Keith W. Ross. Computer Networking: A Top-Down
Approach, Sixth Edition. Pearson, 2012. ISBN: 978-0-13-285620-1.
4 Class attendance
This course will be entirely inverted. You are expected to read (and
think about!) the textbook material before coming to class, where
our meetings will involve a mix of discussions and collaborative activities
(mostly exercises from the text). In short: You are expected
to attend and actively participate in class. I am expected to make
class worth attending.
Because is a collaborative, discussion-based course, your presence
is integral to your learning. Thus, 1.5% (0.06 grade points) will
be deducted from your overall grade for each absence. I know
that sometimes "things happen." Therefore, you will be granted
one unexcused absence from class without penalty. However,
this rebate is cancelled upon a second absence.
If you are absent, you must send a written explanation (email is appropriate)
before class except in the (rare) case of dire emergency.
(Consider the analogy for phoning in sick for work; you wouldn't do
it at 4 PM.)
Because I do not wish you to risk harm to yourself or others,
I am likely to moderate penalties in case of illness.
If you know in advance that you will be absent for any reason, you
must notify me in writing (again, email is fine) at least 7 days in
advance to make arrangements for considering your absence excused.
Our discussions benefit from your contributions. If you do miss a
class, you must first talk to a classmate about any material that
you may have missed. After that, you may follow up with the instructor
about any further questions or concerns.
5 Assignments and activities
Under a normal 16 credit load, I expect that you will spend at
least 40 hours per week on your studies (class time, homework, and
studying).1 Thus, you should plan to spend a minimum of 10 hours/week
on work for this course:
5.1 Reading
Our class meetings will be heavily discussion-based, and this will
require a significant amount of preparation on your part. Most of
this will consist of careful reading and reflection on the material
through the use of a reading journal.
5.1.1 Preparation
You should check the class schedule for updates and read any material
that has been assigned before coming to class. Reading the
textbook entails the following:
- Overview
- You should quickly skim through the reading once to
get an overview of the material to be covered, paying particular attention
to subject headings and topic introductions. This first "reading"
can (and should) be very quick. (Expected time: 5
to 10 minutes.)
- In-Depth
- Next, read the material closely. Try to understand what
individual steps of algorithms or mathematical proofs are accomplishing.
Not everything will make sense at this point, but hopefully many things
will. (Expected time: 40 to 50 minutes.)
- Final Notes
- After carefully reading the material, mentally review
and try making a few notes to yourself about what you think are the
most important concepts being covered, as well as any questions
you have. (Expected time: 5 to 10 minutes.)
Many of the readings are fairly short (about 12 pages, or roughly
30-40 pages per week), but can contain diagrams, mathematics, or algorithms
that require a moderate amount of study. While I realize not everyone
learns best by reading, you are asked to make your best effort and
come to class with any questions you may have. Then we can proceed
with discussion, examples, and exercises that enhance and clarify
the material in class.
5.2 Participation
Because much of our work in this course involves collaboration and
discussion, you will be evaluated on your participation.
Participating in class involves:
- being present in class (physically and mentally)
- coming to class on time
- coming to class prepared
- asking questions when appropriate
- making positive contributions to class discussion by volunteering
and when called upon
- staying on task during collaborative exercises, and
- working effectively with your group.
Students who regularly meet these criteria can expect to earn a 3.67
(i.e., an A-) for their participation grade. I will reward students
who regularly provide significant insights, productively guide discussion,
or supportively assist and instruct classmates with a higher participation
score. Students who fail to participate regularly or who participate
in counterproductive ways (e.g., by dominating the conversation or
making inappropriate comments) can expect to earn a lower score.
5.3 Lab assignments
Roughly bi-weekly lab-based programming assignments use material from
our reading to address interesting problems. Our programming exercises
will be done in Python and C, while other labs will have you inspect
network traffic using a program called Wireshark.
Instructions regarding collaboration will be given with each assignment.
While you are welcome to discuss course concepts with others, solutions
and any work you do and submit should be that of you and your group
alone. (See Academic honesty, section 7
below.)
Most work is required to be done with partners, which will often be
assigned. Working with a partner will help ensure you can take some
advantage of the principle that "Given enough eyeballs, all bugs
are shallow."2 Working with an assigned partner will increase the chances
of being exposed to different ways of thinking and problem-solving
as well as help you practice the skills you'll need in the real world,
where you typically do not get to choose your coworkers.
Working collaboratively means everyone whose name appears on a submission
has contributed to and understands all parts of the work. I reserve
the right to briefly interview you to ask questions about your work.
The kinds of questions I would ask will be easy for anyone who contributed
to and understands their submission.
All group members are jointly responsible for ensuring a submission
is made. (For example, if your partner told you he would submit a
lab but he forgets to, you will both receive late penalties.) For
this reason, I recommend submitting collaborative labs while you are
sitting together.
You are highly encouraged to use the PioneerWeb Discussion
Board for questions related to the course. If a post is related to
an assignment, it must adhere to the standards of collaboration for
that particular assignment.
As opportunities for you to demonstrate your individual knowledge
of network analysis, design principles, and protocols there will be
four hour exams and a cumulative final exam.
| Hour Exam 1 | Friday 14 February |
| Hour Exam 2 | Friday 7 March |
| Hour Exam 3 | Friday 4 April |
| Hour Exam 4 | Friday 25 April |
| Final Exam | Wednesday 14 May (2 pm) |
Do not make airline reservations that will conflict with your final
exam schedule.
6 Grading
My goal is for everyone taking this course to be able to demonstrate
familiarity and fluency with the course concepts. I would be very
happy if you all met the goals above and received "A"s. The following
weighting will provide a basis for evaluation
| Programming Assignments | 25% |
| Participation | 10% |
| Homework | 25% |
| Exams | 30% |
| Final Exam | 10% |
with the caveat that you must pass the final exam to pass the course.
Grading will be based on the College's
Grading System with the following brackets:
| Average at least | Receives | Grade Points | Definition |
| 3.75 | A | 4.00 | Excellent |
| 3.50 | A- | 3.67 | Excellent |
| 3.16 | B+ | 3.33 | Good |
| 2.83 | B | 3.00 | Good |
| 2.50 | B- | 2.67 | Good |
| 2.16 | C+ | 2.33 | Satisfactory |
| 1.50 | C | 2.00 | Satisfactory |
| 0.50 | D | 1.00 | Passing |
| 0.00 | F | 0.00 | Failing |
To compensate for the unpredictability of learning exercises' outcomes,
the brackets (left column) may be adjusted downward (but not
upward).
7 Academic honesty
You, as students, are members of the academic community. Both the
College and I expect the highest standards of academic honesty. (See
the Grinnell College Student Handbook, e.g.,
http://catalog.grinnell.edu/content.php?catoid=4&navoid=89\#Honesty_in_Academic_Work).
Among other things, this means clearly distinguishing between work
and ideas that are your own, and those that should be attributed to
others. It is expected that the collaboration policies given in this
syllabus and on particular assignments will be followed. In particular:
- When you explicitly work as part of a group or team, you need not
identify the work of each individual.
- You may discuss concepts (algorithms, ideas, approaches,
etc.) described in the readings, lab exercises, during class, or explained
in the lab assignments with anyone.
- You may only discuss collaborative homework assignments (algorithms,
solutions, write-ups, code, debugging, etc.) with your partner/group
members or the instructor.
- All the work submitted (code, experimental data, write-ups, etc.)
must be your own. Important: Code or documentation
provided by the instructor or textbook must be attributed, but no
other code or written work (from any source) may be shared
with others or copied for your own use.
- All non-syntax consultations (including the textbook and language
references) require formal citation within the related program or
write-up.
- Any conceptual contributions by others (not in your group)
must be acknowledged and attributed in your report. That is you must
give specific attribution for any assistance you receive.
The suggested acknowledgment format is
"[Person X] helped me to do [thing Y] by [explaining
Z]."
- Any program results or output must be faithfully recorded, not forged.
(A thoughtful explanation of unexpected behavior can often be a worthwhile
submission and is much better than the alternative.)
- You are responsible for safeguarding your work from being copied by
others. This requires you to take reasonable precautions with hard
copy printouts as well as file system permissions.
As an instructor, I will meet my obligation to bring any work suspected
to be in violation of the College's Academic Honesty Policy to the
attention of the Committee on Academic Standing, after which there
is no recourse with me.
8 Deadlines
Assignments are due at the specified time and date. Assignments due
on days for which you have a prior excused absence must still be submitted
by the deadline.
A late penalty of one letter grade (one grade point) will be deducted
in each subsequent twenty-four hour period after the deadline.
Absolute deadline: All work (except the final) must be submitted
by Monday 12 May at 5 p.m. (Note that this is earlier than the institutional
deadline).
Exception: Deadlines for MathLAN computer-based assignments
will automatically be extended by at least one twenty-four hour period
if MathLAN is down for an unscheduled period of three or more hours
during the week preceding the assignment due date.
9 Contacting Me
Please come by during my office hours to discuss the course content,
get any extra assistance, or just talk about how the course is going.
Note that if multiple students have similar questions or issues, we
may work together as a group. If you cannot attend a scheduled office
hour, you may also email me to schedule an appointment; please include
3-4 possible meeting times so that I can find one that works for both
of us.
I enjoy getting to know my students, but I prefer to reserve office
hours for academic matters. If you would like to have a more informal
conversation, I would be delighted to accept an invitation to eat
lunch with you at the Marketplace.
Email is also a reliable way to contact me, but please allow 24 hours
for a response (except on weekends, when I do not regularly read email).
You may also call me in my office (x9812).
With thanks to Janet Davis for the "Reading Suggestions"
and other key policies.
Copyright © 2012 Jerod
Weinman.
This work is licensed under a Creative
Commons Attribution-Noncommercial-Share Alike 3.0 United States License.
Footnotes:
1This is a minimum recommendation for achieving "satisfactory"
(i.e., C-level) results. "Good" or "excellent" results may
require a greater investment.
2This principle is dubbed Linus's Law by Eric S. Raymond in The
Cathedral and the Bazaar, O'Reilly Media, 1999, p. 30.