CSCI4430 Data Communication and Computer Networks


Course code CSCI4430
Course title Data Communication and Computer Networks
Course description This course aims to introduce fundamental concepts and technologies in computer networking. The course adopts a top-down approach introducing the TCP/IP networking stack. The design of the contemporary communication applications will be studied. The fundamental concepts in implementing the reliable transport protocols, such as TCP, will be taught in this course. Design issues of TCP, such as the sliding window protocol and the congestion control, will also be included. This course will also focus on the IP network and the routing algorithms used in the Internet. Last, the design issues in the data link layer (e.g., Ethernet), including the medium access control, will be introduced.
本科旨在介紹有關電腦網絡的基礎概念與技術。本科採用由上而下的手法來介紹TCP/IP 協議。本科介紹現代的通訊應用的設計。然後,介紹以實踐可靠的通訊協議的基本概念,如 TCP 的實踐。同時,本科亦包括了 TCP 的設計課題,如滑窗協議及壅塞控制。本科同時亦集中討論IP網路與互聯網中使用的路由演算法。最後,本科介紹數據鏈路層(如乙太網)的課題,包括媒體存取控制。
Unit(s) 3
Course level Undergraduate
Pre-requisite  CSCI3150 or ESTR3102
Exclusion  ESTR3310 or ESTR4120 or IERG3310
Semester 1 or 2
Grading basis Graded
Grade Descriptors A/A-:  EXCELLENT – exceptionally good performance and far exceeding expectation in all or most of the course learning outcomes; demonstration of superior understanding of the subject matter, the ability to analyze problems and apply extensive knowledge, and skillful use of concepts and materials to derive proper solutions.
B+/B/B-:  GOOD – good performance in all course learning outcomes and exceeding expectation in some of them; demonstration of good understanding of the subject matter and the ability to use proper concepts and materials to solve most of the problems encountered.
C+/C/C-: FAIR – adequate performance and meeting expectation in all course learning outcomes; demonstration of adequate understanding of the subject matter and the ability to solve simple problems.
D+/D: MARGINAL – performance barely meets the expectation in the essential course learning outcomes; demonstration of partial understanding of the subject matter and the ability to solve simple problems.
F: FAILURE – performance does not meet the expectation in the essential course learning outcomes; demonstration of serious deficiencies and the need to retake the course.
Learning Objectives  1. Students will understand some fundamental design principles (e.g., end-to-end argument, multi-access,…etc) in computer communication systems.
2. Students will be fluent in using TCP/UDP to create network services.
3. Students will understand some of the pitfalls and short-coming of current Internet (e.g., security problems, privacy problems).
Learning outcomes 1. Able to use TPC/UDP to create network applications.
2. Know how to provide reliable data delivery over communciation channels (e.g., knowledge of stop-and-wait, sliding windows,..etc).
3. Understand the congestion issues and the end-host adaptation principles.
4. Understand the medium access and mutli-access resolution protocols in local area networks and wireless networks.
(for reference only)
Essay test or exam: 50%
Assignment & Project: 50%
Recommended Reading List 1. Computer Networking: A Top Down approach featuring the Internet
2. Computer Networks: A System Approach by L.L. Peterson and B.S. Davie
3. Unix Network Programming Vol I & II
4. Internetworking with TCP/IP: Vol I,II,III by D. E. Comer, D.L. Stevens 5. Data Networks by D. Bertsekas, R. Gallager


CSCIN programme learning outcomes Course mapping
Upon completion of their studies, students will be able to:  
1. identify, formulate, and solve computer science problems (K/S); TP
2. design, implement, test, and evaluate a computer system, component, or algorithm to meet desired needs (K/S);
3. receive the broad education necessary to understand the impact of computer science solutions in a global and societal context (K/V); T
4. communicate effectively (S/V);
5. succeed in research or industry related to computer science (K/S/V);
6. have solid knowledge in computer science and engineering, including programming and languages, algorithms, theory, databases, etc. (K/S); TP
7. integrate well into and contribute to the local society and the global community related to computer science (K/S/V); T
8. practise high standard of professional ethics (V);
9. draw on and integrate knowledge from many related areas (K/S/V);
Remarks: K = Knowledge outcomes; S = Skills outcomes; V = Values and attitude outcomes; T = Teach; P = Practice; M = Measured