Generative AI Disclosure
Generative artificial intelligence was used as an assistive tool in
the development and refinement of this course description and its
learning objectives. Specifically, ChatGPT (GPT-5.6 Luna, OpenAI)
was used to help organize ideas, identify educationally appropriate
terminology, refine wording and tone, and explore alternative
formulations of the course's learning objectives.
The substantive course content, instructional priorities, and final
pedagogical decisions were determined by the instructor. AI-generated
suggestions were reviewed, revised, and evaluated by the instructor
for accuracy, appropriateness, and alignment with the goals and
content of the course. The instructor retains full responsibility for
the final text and for the accuracy and academic integrity of the
course materials.
— Your AI friend Chat.
Course Description
This is a course in:
- Packet communications and the Internet
- Network architecture, protocols, and programming
- Internet addressing, naming, routing, and transport
- Cryptography, message authentication, and digital signatures
- Authentication and trust in distributed systems
- Distributed storage, consistency, and availability
- Consensus, blockchains, and decentralized systems (time permitting)
- Ethereum and decentralized finance (time permitting)
The course develops a systems-level understanding of how distributed
computing systems communicate, establish identity and trust, maintain
shared state, and coordinate in the absence of a central authority.
Students move from the mechanics of packet transmission and Internet
protocols through network programming and security, and then apply these
concepts to distributed storage, consensus algorithms, blockchain
systems, and decentralized applications.
Intended Student Learning Outcomes
Upon successful completion of this course, students will be able to:
-
Knowledge: Identify the fundamental concepts,
terminology, protocols, and mechanisms of packet-switched
communication and the Internet, including network layering,
encapsulation, Ethernet, MAC and IP addressing, ports, DNS,
routing, TCP and UDP, sockets, HTTP, cryptography,
authentication, distributed storage, consensus, and blockchain
systems.
-
Comprehension: Explain how layered network
architectures and protocols provide communication between
distributed systems, including the roles of addressing, naming,
routing, transport, protocol headers, cryptographic mechanisms,
authentication and trust, distributed storage, consistency and
availability, and consensus.
-
Application: Apply networking and systems
programming concepts to construct, configure, observe, and
troubleshoot networked applications and communication systems
using sockets, standard network protocols, operating-system
facilities, and network analysis tools.
-
Analysis: Analyze network protocols and
distributed systems by examining their layered architectures,
communication mechanisms, addressing and routing, protocol
behavior, security properties, performance, consistency,
availability, replication, ordering, and coordination.
-
Synthesis: Synthesize concepts from networking,
cryptography, authentication, distributed storage, and consensus
to formulate and construct solutions for networked and distributed
systems, including blockchain systems and applications.
-
Evaluation: Evaluate protocols, architectures,
cryptographic and authentication mechanisms, distributed storage
and consensus schemes, and decentralized systems including
Bitcoin, Ethereum, smart contracts, and decentralized finance
in terms of their security properties, assumptions, limitations,
incentives, performance, and design tradeoffs.
Course Materials and Resources
Course Communication
-
Join the class Slack channel:
csc-courses.slack.com,
#csc424-262.
-
Visit the
CSC 424 GitHub organization
for course repositories, projects, and related materials.
-
Students are responsible for monitoring the course Slack channel, GitHub
repositories, and course website for announcements concerning assignments,
deadlines, examinations, and other course activities.
Computing Resources
-
Students will use Amazon Web Services (AWS) Elastic Compute Cloud
(EC2) for selected course projects and exercises.
-
Students should enroll in AWS and establish access to the computing
resources required for the course.
-
Students may qualify for an AWS free tier. Students who do not
qualify should expect the cost of computing resources used during
the semester to be less than $100, depending on usage.
Suggested Reading
-
Computer Networks: A Systems Approach, Fifth Edition
(The Morgan Kaufmann Series in Networking)
,
by Larry L. Peterson and Bruce S. Davie.
Other editions may also be suitable.
Additional Course Resources
The course makes extensive use of instructor-developed lecture notes,
technical documentation, Internet standards and RFCs, programming
exercises, network traces, research papers, and other online resources.
These materials are provided through the course website, GitHub
repositories, and linked resources associated with individual topics.
Projects and Programming Assignments
The course includes a series of programming and systems projects, generally
two to three weeks in length. Projects provide students with opportunities
to apply the concepts developed in lectures to the construction, observation,
analysis, and testing of networked and distributed systems.
Project Evaluation
-
Projects are generally evaluated on a 0-5 point scale.
-
The project
Makefile generally provides a
BasicTest. Successfully passing the basic test
normally earns 3 points.
-
Projects that pass the basic test are evaluated with an
ExtendedTest for the remaining points.
-
The usual 3+2 point distribution may be modified according to the
difficulty and requirements of an individual project.
-
Programs that are substantially similar to solutions produced by
other students, in the current or previous semesters, or to solutions
found on the Internet, may receive a deduction in points.
-
Projects are provided with an automatic three-day grace period. Work
submitted within the grace period is accepted without a lateness penalty.
After the grace period, a penalty of one point is applied, with an
additional point deducted on the week anniversary since the due date.
The deadline for a day is midnight, Miami local time.
Quizzes
Quizzes may be assigned periodically to emphasize important concepts and
provide students with opportunities to demonstrate their understanding of
course material.
-
Quizzes will generally have a short completion period.
-
No lateness is permitted for quizzes.
-
Quiz deadlines are midnight on the stated date, according to current
Miami local time.
-
If quizzes are assigned as a component of the final course grade,
their weighting will be announced in advance.
Examinations
Midterm Examination
The midterm examination assesses students' understanding of the concepts,
principles, and techniques developed during the first portion of the course.
Date: To be announced.
Final Examination
The final examination assesses students' understanding of the course as a
whole, with particular emphasis on the ability to integrate concepts across
networking, security, distributed systems, and related topics.
Date: To be announced.
Grading
The course grade is based on examinations and projects, with additional
assessment components such as quizzes incorporated when assigned.
After any necessary normalization, the general distribution is:
| Assessment |
Weight |
| Final Examination |
30% |
| Midterm Examination |
30% |
| Projects |
40% |
If quizzes or other assessment components are introduced, their contribution
to the course grade will be announced when they are assigned.
Late Work
-
Late work for projects is discussed under Projects.
-
No lateness is permitted for quizzes, examinations or presentations.
Honor Code
Special Accommodations
Religious Holidays
Pets on Campus