NETWORK APPLICATIONS AND PROTOCOLS
Fall 2024
Class times:
- Section 102, T/Th 6:00PM - 7:15PM in KEC 123
Instructor:
- Galin Zhelezov, gzhelezo@ycp.edu
- Office hours: T R 7:15PM-7:45PM in KEC 123 or by appointment
Course Description
The course covers computer networks from the application layer down to the physical layer, with emphasis on the application, transport, and network layers. Topics will include network applications and protocols, layered services, reliable transport, routing, link layer protocols, and network security. Lab exercises and programming assignments will 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 proficient in a structured high-level programming language, such as C, C++, Python, or Java.
Required Textbook
James Kurose and Keith Ross, Computer Networking: A Top-Down Approach. Pearson, 8th Edition, 2021, ISBN-13: 9780135928608
Course Objectives
This course provides a comprehensive introduction to the core concepts of designing and implementing computer networks, focusing on protocols and applications. Key topics include:
- Network Architectures and Applications: An overview of various network designs and their real-world applications.
- 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: Insights into 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 within localized and data-intensive environments.
- Wireless Networks: Exploration of wireless communication methods.
- Introduction to Network Security: Fundamentals of securing network systems.
The course will primarily utilize examples from the Internet protocol suite, including TCP, UDP, and IP.
Assignments will include both written and programming components, and the course will feature three midterm exams and one final exam.
Policies
Grades
The grading scale for the course is given below. Please note that this grading scale represents the most stringent criteria the students will have to meet to get a particular grade. The instructor reserves the right to reduce (i.e. curve) the grade scale based on the final course performance.
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 for 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-fall2024/, regularly for important announcements.
Reading assignments
Readings from your text book will be assigned throughout the semester. You will find the readings listed in the Course Schedule. You are encouraged to read the scheduled material before coming to class.
Labs and Homework Assignments
Homework assignments will be based on the activities performed 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 thorough understanding of the material.
Most labs will incorporate 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 of the homework assignments.
Late assignments will be marked down 20% per day late. No credit will be given for assignments that are more than three (3) days late unless prior approval has been granted for an extension by the instructor.
Important: As mentioned above in the Grades section, you must make a good faith effort to complete all of the homework assignments in order to receive a passing grade for the course.
Programming Assignments will be graded based on 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 embellishing 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-fall2024/.
Assignments and labs will be submitted using the server https://cs.ycp.edu/marmoset/. You will receive an email containing the username and password you will use for this server.
Exams
Exams will be open-book, 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 of the instructor prior to class unless proof of 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 the 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 for your success. Please inform me in advance if you need to miss a class. You are responsible for all material covered, regardless of your 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 impact your credit in these areas.
The first absence will result in a 1 percentage point deduction from your final grade. For two or more absences, the total deduction will be calculated using the following formula:
2(absences - 1)
where absences is the number of times you were absent. Therefore, with 5 absences (2.5 weeks), you will have a 16 percentage point deduction, which will automatically drop you 1.5 to 2 letter grades.
You are responsible for keeping up with the reading assignments as described in the course schedule.
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 at its core 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, cellular phones, etc., using them unethically or recreationally during class time is never appropriate. The college recognizes and supports faculty members’ authority to regulate in their classrooms student use of all electronic devices.
Communication Standards
York College recognizes the importance of effective communication in all disciplines and careers. Therefore, students are expected to competently analyze, synthesize, organize, and articulate course material 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 their writing process, and employ standard conventions of English usage in both writing and speaking. Students may be asked to further 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.