Communications networks are fundamental to our everyday lives. Whether
for enabling global scale commerce or connecting long lost friends,
these systems have created an unparalleled age of information.
Accordingly, knowledge of such systems is critical for all scientists
and engineers. This course provides an overview of networking
technologies. Students satisfactorily completing this course will gain
the skills necessary to analyze and design networking systems and
protocols. The course will begin with the application layer, looking at
design patterns present in common application layer protocols. We then
move down the network stack, considering topics such as reliable
transmission and congestion control at the transport layer, routing at
the network layer, and multiple access protocols at the link layer.
After this discussion, the latter portion of the course will include
wireless/mobile networks and devices, queuing fundamentals, security,
and network management.
The course objectives are:
- Students will have experience with developing programs using network application protocols.
- Students will understand and be able analyze and apply the tradeoffs in developing network related protocols, algorithms, and services.
- Demonstrate an understanding of network architecture concepts, the OSI reference model, and the TCP/IP architecture.
- Demonstrate proficiency in analyzing and verifying communication protocols (such as IPv6, ICMP, UDP and TCP).
- Demonstrate an understanding of routing principles and algorithms, and routing protocols used on the Internet.
- Demonstrate an understanding of application-layer protocols and their interaction with underlying services.
- Establish an understanding of network-related security threats and solutions.
Most of the course readings will come from the following
book, with possible additional papers assigned for readings and as reference
James F. Kurose and Keith W. Ross, Computer Networking, 7th Edition,
Pearson Addison-Wesley, 2017.
Students may find the following book helpful for reference during the programming projects, but it is not required for the course.
Kenneth L. Calvert and Michael J. Donahoo; TCP/IP Sockets in Java, Second Edition: Practical Guide for Programmers;
Morgan Kaufmann, 2008.
A detailed list of lectures, readings, assignments, due dates (subject
to change as the semester evolves) is available on the
Students will be evaluated based on the following breakdown:
- 15% Homeworks
- 20% Projects
- 25% Midterm
- 35% Final
- 5% Class Participation
Scale: 70 ≤ C < 77 ≤ C+ < 80 ≤ B- < 84 ≤ B < 88 ≤ B+ < 90 ≤ A- < 94 ≤ A
The course will include one midterm and one final exam. Students
will be responsible for material covered both in the readings AND
lectures. Attendance is therefore recommended as not all class
discussions will be covered in the text.
Homeworks and Projects
This course will consist of three homeworks and four programming
projects. Digital copies of the assignments turned
in via Blackboard are due at the beginning of class. Projects
must be written in the Java programming language and submitted to Blackboard as a single compressed file by
class time on the due date. See the lateness policy below.
Note that this is a systems course - successfully completing coding
assignments is a necessary condition for earning a desirable grade.
Assignments and project milestones are assessed a 15% per-day late penalty,
with a maximum of 3 days, after which the assignment will be assessed a 0 grade.
Unless the problem is apocalyptic, don't give me
excuses. Students with legitimate reasons who contact the professor before
the deadline may apply for an extension.
To do well in this course, students must take active and regular roles
in discussion and demonstrate comprehension of the reading and lecture
themes. Students are required to do the assigned reading before
class. This will be closely monitored by the professor, thereby
making a student's ability to demonstrate their comprehension of
material essential to a receiving a passing grade.
Disabilities and Learning Support
It is the policy of Villanova to make reasonable academic accommodations
for qualified individuals with disabilities. You must present verification
and register with the Learning Support Office by contacting 610-519-5176
or at firstname.lastname@example.org. Accommodations cannot be made
until verification is delivered to the professor, and cannot be enacted retroactively.
For physical access or
temporary disabling conditions, please contact the Office of Disability
Services at 610-519-4095 or email Stephen.email@example.com
Registration is needed in order to receive accommodations.
Academic Integrity Policy
All students are expected to uphold Villanova's Academic Integrity Policy
and Code. Any incident of academic dishonesty will be reported to the Dean
of the College of Liberal Arts and Sciences for disciplinary action. For
the College's statement on Academic Integrity, you should consult the
You may view the university's Academic Integrity Policy and Code, as well
as other useful information related to writing papers, at the
Academic Integrity Gateway web site