CS 330: Syllabus
Fall 2026
Class Times
- Section 102, T/Th 6:00PM - 7:15PM in KEC 119
Instructor
- Professor G, gzhelezo@ycp.edu
- Office hours: T/R 7:15PM-7:45PM in KEC 119 or by appointment
Course Description
This course explores computer networks from the application layer down to the physical layer, with emphasis on the application, transport, and network layers. Topics include network applications and protocols, layered services, reliable transport, routing, link-layer protocols, and network security. Lab exercises and programming assignments provide hands-on experience developing network applications and protocols.
Prerequisites
CS201 - Fundamentals of Computer Science II - with a grade of 2 or better. You should be comfortable writing programs in a structured high-level language such as C, C++, Python, or Java.
Required Textbook
James Kurose and Keith Ross, Computer Networking: A Top-Down Approach. Pearson, 9th Edition, 2026, ISBN-13: 9780135429334
Course Objectives
This course provides a broad introduction to the core ideas behind designing and implementing computer networks, with a focus on protocols and applications. Key topics include:
- Network Architectures and Applications: An overview of different network designs and their real-world uses.
- Network Programming Interfaces: Practical use of interfaces such as sockets.
- Transport Mechanisms and Congestion Control: Techniques for managing data transmission and network congestion.
- Data Plane and Control Plane: Packet forwarding, addressing, routing algorithms, software-defined networks, and network management.
- Link-Layer Protocols: Examination of protocols at the link layer.
- Local Area Networks (LANs) and Data Center Networks: Study of network structures in localized and data-intensive environments.
- Wireless Networks: Exploration of wireless communication methods.
- Introduction to Network Security: Fundamentals of securing network systems.
The course will use examples from the Internet protocol suite, including TCP, UDP, and IP.
Assignments will include both written and programming work, and the course will feature three midterm exams and one final exam.
Learning Outcomes
By the end of this course, students will be able to:
- Design and implement network applications using client-server models and programming interfaces such as sockets.
- Explain and apply the layered architecture of the Internet, including the roles and interactions of the application, transport, network, and link layers.
- Analyze and interpret network traffic using tools like Wireshark to understand the behavior of network protocols and diagnose performance issues.
- Describe and compare transport-layer services (e.g., TCP vs. UDP) including concepts such as reliable data transfer, flow control, and congestion control.
- Apply routing and addressing concepts to solve problems involving IP addressing, subnetting, and routing algorithms.
- Evaluate security threats and defenses related to computer networks, including encryption, authentication, and secure protocols.
- Develop structured, maintainable, and well-documented code for networked systems in a high-level programming language.
- Demonstrate professional communication and collaboration skills, including adherence to coding standards, clear documentation, and academic integrity.
Policies
Grades
The grading scale for this course is shown below. Please note that this represents the most stringent standards students must meet for a particular grade. The instructor reserves the right to adjust the grade scale (that is, to curve it) based on the final performance of the class.
Numeric Range Letter Grade 90-100 A (4.0) 87-90 B+ (3.5) 80-87 B (3.0) 77-80 C+ (2.5) 70-77 C (2.0) 60-70 D (1.0) 0-60 F (0.0)
Your overall grade in the course will be determined as follows:
- Attendance and Participation: 10%
- Labs and Homework assignments: 30% (*)
- 4 Exams: 60% (†)
(*) You must demonstrate significant effort on all homework assignments in order to pass the course.
(†) You must pass (receive a grade of 70 or higher) on at least one exam, and have an average of 60 or higher on your three highest exam grades, in order to receive a passing grade for the course.
Course website
Please check the course web page, https://ycpcs.github.io/cs330-fall2026/, regularly for important announcements.
Reading assignments
Readings from your textbook will be assigned throughout the semester. The readings are listed in the course schedule. You are encouraged to read the assigned material before coming to class.
Labs and Homework Assignments
Homework assignments are based on the activities completed during class and may include both written and programming components. While collaboration on high-level design is encouraged, each student must submit their own work to demonstrate a solid understanding of the material.
Most labs will involve Wireshark: https://www.wireshark.org/. Wireshark is installed in the lab.
You MUST make a legitimate attempt to complete every homework assignment. I reserve the right to fail any student who does not make a good-faith effort to complete all homework assignments.
Late assignments will be marked down 20% per day. No credit will be given for assignments more than three (3) days late unless prior approval has been granted for an extension by the instructor.
Important: As noted above in the Grades section, you must make a good-faith effort to complete all homework assignments in order to receive a passing grade for the course.
Programming assignments will be graded according to the following criteria:
4: Superior. The program extends the basic requirements significantly by implementing additional features covered in the text and other resources.
3-3.5: Good. The program goes beyond the basic requirements by enhancing the final output using techniques discussed in class.
2-2.5: Average. The program meets only the basic requirements of the assignment.
1: Below Average. The program produces mostly incorrect output or shows little attempt at a solution to the problem.
0: Failure. The program does not execute.
Posting and submission of assignments and labs
Assignments and labs will be posted on the course web page: https://ycpcs.github.io/cs330-fall2026/.
Assignments and labs will be submitted using the server https://cs.ycp.edu/marmoset/. You will receive an email containing the username and password used for this server.
Exams
Exams will be open-book and closed-notes. They will last approximately 60 minutes and will be administered at the beginning of the class period.
Exams may include a programming component. The last half of the class may be used for instruction and/or laboratory work. A total of four exams will be administered.
No make-up exams will be given without approval from the instructor before class unless proof of an extreme emergency or illness is provided.
Academic Integrity
At York College, we uphold a strict policy of academic honesty. All students are expected to adhere to these principles, and any form of academic dishonesty will not be tolerated. Academic dishonesty includes, but is not limited to, cheating, plagiarism, fabricating research, and falsifying academic documents. This encompasses any situation where students present someone else’s work as their own.
Policy on Homework and Individual Lab Assignments:
-
Individual Work Required: All graded individual programming assignments must be completed independently. While discussing high-level concepts with peers is encouraged, all submitted work must be your own.
-
Prohibition on Copying: Direct copying of code or work from other students, websites, or any other sources is strictly prohibited.
-
Source Acknowledgment: Any sources consulted (books, websites, articles, fellow students, etc.), excluding the course textbook and lecture notes, must be properly acknowledged. It is advisable to use only the resources listed in the course syllabus or on the course web page. Your programming assignments must reflect your own work, not adaptations of others’ work.
Non-Graded Lab Assignments:
- Non-graded lab assignments may allow collaboration with other students. However, it is your responsibility to complete them, and you are encouraged to use class time to work on these labs and ask questions.
Handling Academic Dishonesty:
-
If a faculty member suspects a student of academic dishonesty, they will notify the student in writing. The faculty member must then report the incident to the Dean of Academic Affairs and the Department Chair within ten business days of notifying the student. Documentation of academic dishonesty will be maintained in the student’s permanent record.
-
For a first offense, the faculty member may impose a suitable sanction, including potentially awarding a grade of 0 for the course. Students are not allowed to withdraw from a course in which they have been accused of academic dishonesty.
If at any point you are unsure whether something is allowed under the academic integrity policy, please ask your instructor!
For the full policy, go to the Academic Standards section of the current Course Catalog https://www.ycp.edu/about-us/offices-and-departments/registrar/catalogs/.
Attendance and Participation
Regular attendance and active participation in class are crucial to your success. Please let me know in advance if you need to miss a class. You are responsible for all material covered, regardless of attendance.
If you consistently attend and participate, you will receive full credit for attendance and participation. However, frequent absences or lack of participation will negatively affect your standing in these areas.
Students are expected to attend every class. One unexcused absence is permitted without penalty. After that, each additional unexcused absence will result in a deduction of 2% from the final grade, up to a maximum of 10%. If you anticipate needing to miss more classes (for example, due to illness, work, or personal responsibilities), please contact the instructor in advance to discuss alternative accommodations.
You are responsible for keeping up with the reading assignments described in the course schedule.
Artificial Intelligence (AI) Tools Policy
The use of artificial intelligence (AI) tools such as Microsoft Copilot, ChatGPT, Claude, Gemini, GitHub Copilot, and similar technologies is permitted in this course as a learning aid, provided that their use supports, rather than replaces, your own understanding and work.
Acceptable Uses
- Explaining course concepts
- Reviewing and improving written communication
- Assisting with debugging and error interpretation
- Generating study materials, practice questions, or summaries
- Brainstorming approaches to programming assignments or projects
Unacceptable Uses
- Submitting AI-generated code, solutions, reports, or written responses as your own work
- Using AI tools to complete assignments without understanding the material
- Circumventing learning objectives by relying primarily on AI-generated answers
- Using AI tools during exams or other assessments unless explicitly authorized
- Misrepresenting AI-generated content as independently created work
Attribution Requirements
If AI tools are used in the completion of an assignment, students should acknowledge that use in their submission.
Academic Integrity
The use of AI tools does not exempt students from the College’s Academic Integrity Policy. Work submitted for credit must demonstrate the student’s own understanding of the material. Excessive reliance on AI-generated content, submission of AI-generated solutions as original work, or failure to disclose significant AI assistance may be treated as academic dishonesty and handled according to College policy.
Professionalism
I expect you to conduct yourself as a professional in this course. Professionalism includes:
- Respect for and courteous interaction with peers, faculty, and facilities;
- Integrity, which includes honesty, responsibility, and accountability for one’s own actions;
- Sensitivity and appreciation for diverse cultures, backgrounds, and life experiences;
- Constructive evaluation, which means that criticism is offered and accepted in a productive manner;
- Self-reflection and identification of one’s own strengths and weaknesses;
- Responsibility for one’s own education and learning;
- An attitude that fosters professional behavior in colleagues and peers;
- Punctuality at meetings and class sessions;
- Attentive behavior during class sessions, avoiding personal or social use of cell phones, laptops, or other electronic devices;
- Acknowledgement of the Kinsley Engineering Center as a professional workplace, and treatment of this facility as a business or office space, not as an informal space.
I reserve the right to enforce this code through the York College Code of Student Conduct.
Use of Personal Technology in the Classroom
While York College recognizes students’ need for educational and emergency-related technological devices such as laptops, PDAs, and cellular phones, using them unethically or recreationally during class time is never appropriate. The college recognizes and supports faculty members’ authority to regulate student use of all electronic devices in the classroom.
Communication Standards
York College recognizes the importance of effective communication in all disciplines and careers. Students are expected to analyze, synthesize, organize, and articulate course material clearly in papers, examinations, and presentations. In addition, students should know and use communication skills current to their field of study, recognize the need for revision as part of the writing process, and employ standard conventions of English usage in both writing and speaking. Students may be asked to revise assignments that do not demonstrate effective use of these communication skills.
Student Accessibility Services
York College of Pennsylvania offers a variety of academic accommodations to students with documented disabilities to ensure their success. To request accommodations, please contact Student Accessibility Services at (717) 815.1717 or sas@ycp.edu. Student Accessibility Services will discuss the confidential process of requesting accessibility services and establish the accommodations for which the student is eligible.
Advice
-
Start Projects Early: Don’t wait until the last minute to begin your projects. They can be time-consuming, so it’s important to pace yourself. Procrastination often leads to unnecessary stress and lower quality work.
-
Ask Questions: If you have any questions, don’t hesitate to ask. Engaging actively with the material helps deepen your understanding.
-
Engage in Discussions: Participate actively in class discussions. Avoid relying on slides to answer questions; instead, contribute your thoughts and insights directly.
Disclaimer
The instructor reserves the right to modify all policies within this syllabus including, but not limited to, number of assignments, weighting of assignments, and homework policies. Any significant changes will be announced to all students.
