About CPS 214
Who should take this course. Undergraduate and graduate students with
an interest in systems and networking. The course covers core areas in
network software and protocols, principles and evolution of the
Internet architecture,
the Internet protocol family, secure
communication on public networks, Internet infrastructure
services such as the Domain Name Service and routing, security challenges
in the Internet environment, and networked systems and services (e-mail,
Web services, file sharing, resource sharing).
This course will also cover selected research topics in networking and
networked systems.
Preparation. You should be familiar with undergraduate-level
operating systems, consider yourself a strong student and a good programmer,
and have enough familiarity with networked systems and networking concepts
to come up to speed quickly. We won't assume any specific networking
knowledge in this class, but we will cover the introductory (textbook)
material rapidly
and move significantly beyond it in the readings, class discussion, and
exams.
Readings. This semester we will take background readings from
the basic textbook, Computer Networking: A Top-Down Approach
Featuring the Internet by Jim Kurose and Keith Ross.
We will also read roughly 20 research papers and I will ask you to
reflect on them and comment on them in class and (for a subset of
papers) in writing. Exams will focus on core material
and principles, rather than details of the research readings.
Base Workload. In addition to the readings, there will be 3-4
assigned labs (done in teams of two) and two exams.
Because the class is small and diverse, I will assign final grades on
a relative scale that takes into account initial knowledge, effort,
demonstration of interest and aptitude, and progress. On the one hand,
this will minimize any perceived risk of getting in over your head.
On the other hand, you will have to count on me to get it right when
I consider subjective factors in assigning final grades.
Project. A course project is an important part of this course.
In the course project you will propose some interesting ideas, present an
argument supporting those ideas, and build software and/or conduct experiments
to obtain an interesting outcome. We have a rich environment here with
many useful tools in place as a basis for projects (e.g., a sizable cluster
with the ModelNet network emulation system and the MACEDON toolkit for
large-scale distributed systems). Projects will be graded on the
basis of a final report and demonstration. You will conduct your progress
in teams of 1-3 individuals. You can choose the teams and the projects,
but I have to approve them.
Policy on collaboration for CPS 214. Collaboration
on lab work and project work is
encouraged. Help each other. However, any work you turn in must be
your own, and you may be called upon to
explain (alone) your choices and approaches in more detail. You may
incorporate public software into your assigned lab work and course
project to a reasonable
extent, but not so much as to undermine the educational
purpose and spirit of the
project. In any case, you must acknowledge
any sources of your words, ideas, and software when they are not your own, and you
should disclose (in advance, without any specific request)
the names of anyone who helped you with your work. Failing
to do so is at best a violation of professional etiquette, and at worst
it is plagiarism. Plagiarism, like collaboration on exams, is cheating.
Cheating is a very serious offense and I do not expect it to occur in
this class.
|