CMPE 322 Computer Networks and Network Programming

Course Schedule: Tuesday(9 AM) E2-221; Lab: Friday
Course TA(s): Haluk Özgen (haluk.ozgen90 [at] gmail.com)
Course webpage: http://ww3.ticaret.edu.tr/aboyaci/dersler/cmpe-322-computer-networks-and-network-programming/
Source Codes: https://github.com/aboyaci/
Course Description: The connection of computers in networks, whether local or global, has added a new dimension to the power of computers. This course aims to introduce students to the standards that make this power possible, the theoretical concepts needed to understand it, and approaches for designing networked software systems. Practical element of the course involves writing programs that use the various protocol stacks to carry out network computing tasks.

Subjects covered include layered network architecture, local and wide area network protocols, network topologies, connectivity and delay analysis, network security and communication secrecy, client/server and peer-to-peer communication architectures, programming for high-load web applications. Applied sessions in this course aim to introduce students, according to their choices, to contemporary problems such as peer-to-peer networking, web application protocols and architectures, along with high performance programming techniques and frameworks that form the basis of popular networked applications such as Facebook,Twitter, and Google.

Students who register to this course is expected to have a fair command of object oriented programming and concurrent programming techniques.
Prerequisite(s): None.
Note(s): You should have a Linux (preferably Ubuntu) running laptop with you.
Credit Hours: 3
ECTS Credits: 7
Textbook: Computer Networking: A top-down approach, 6th Edition, Kurose, J.F, and Ross, K.W.; ISBN-13: 978-0132856201 (Slides are available at: http://www-net.cs.umass.edu/kurose-ross-ppt-6e/)

http://beej.us/guide/bgnet/

Course Objectives:
At the completion of this course, students will be able to:

  1. Develop a robust understanding of digital data transmission, packet switching, and the Internet protocol
    stack.
  2. Understand security issues in Internet communication, encryption and hashing techniques, and how to
    make choices among security measures and apply them using common security tools.
  3. Understand issues in concurrent network applications in connection-less and connection-oriented infrastructures.
  4. Understand issues in implementing client/server systems using distributed programming techniques.
  5. Develop a firm understanding of network topologies and their consequences, and be able to measure
    performance and monitoring tasks in local area networks.

Grade Distribution:

Assignments/Lab/Attendance 20%
Midterm Exam 40%
Final Exam 40%

Letter Grade Distribution:

>= 90.00 AA 50.00 – 59.99 CC
80.00 – 89.99 BA 45.00 – 49.99 DC
70.00 – 79.99 BB 40.00 – 44.99 DF
60.00 – 69.99 CB <= 39.99 F

Course Policies:

  • General
    • You should have your computer with you in all sessions.
    • Quizzes and exams are closed book, closed notes.
    • No makeup quizzes or exams will be given.
  • Grades
    • Grades in the C range represent performance that meets expectations; Grades in the B range represent performance that is substantially better than the expectations; Grades in the A range represent work that is excellent.
    • Grades will be maintained in OBS. Students are responsible for tracking their progress by referring to the online gradebook.
  • Labs and Assignments
    • Students are expected to work independently. Offering and accepting solutions from others are an act of plagiarism, which is a serious offense and all involved parties will be penalized according to the Academic Honesty Policy. Discussion amongst students is encouraged, but when in doubt, direct your questions to the professor, tutor, or lab assistant. No late assignments will be accepted under any circumstances.
  • Attendance and Absences
    • According to the University rules, regulations, and guidelines (Chapter Four, Section related to the attendance, Item 25, first clause [in Turkish]), all students should attend at least 70% of the lectures throughout the semester of interest. Students who do not meet the attendance criterion will fail with the letter grade “IA”. It is students’ responsibility to follow up with their intermittent attendance status throughout the semester. The instructor will not announce and/or disseminate the attendance status of the students.
    • Students are responsible for all missed work, regardless of the reason for absence. It is also the absentee’s responsibility to get all missing notes and/or materials.

Academic Honesty Policy:

See Academic Honesty page.

Tentative Course Outline:

The weekly coverage might change as it depends on the progress of the class. However, you must keep up with the reading assignments.

Week 1

  • Computer Networks and the Internet

Week 2

  • Protocols

Week 3

  • Application layer protocols
  • Socket Programming 1

Week 4

  • Application layer protocols
  • Socket Programming 2

Week 5

  • Transport layer: reliability
  • Socket Programming 3 (Project assignment)

Week 6

  • Transport layer

Week 7

  • Network layer protocols
  • Midterm review

Week 8

  • Midterm Exam

Week 9

  • Network layer protocols

Week 10

  • Network layer protocols

Week 11

  • Link layer and variants

Week 12

  • Link layer and variants

Week 13

  • Wireless and mobile networks

Week 14

  • Multimedia networking
  • Security issues
  • Network management

Course Resources

Project Assignments

Project 1