ECE 40863 - Introduction to Computer Networks

Note:

This course ran as ECE 46300 prior to Fall 2022. Compter Engineering students are allowed to count this course OR ECE 50863 Computer Network Systems toward CmpE Selective credits. If both are taken, one will count as a CmpE Selective and the other will count as a Complementary Elective.

Course Details

Lecture Hours: 3 Lab Hours: 1 Credits: 4

Counts as:

  • EE Elective
  • EE Adv Level Lab
  • CMPE Selective

Normally Offered:

Each Fall

Campus/Online:

On-campus only

Requisites:

ECE 20875 and ECE 26400 and ECE 36800

Requisites by Topic:

Python for Data Science, Advanced C Programming, Data Structures

Catalog Description:

This course provides students with a proper grounding in the fundamentals of computer networking. The course will cover classic concepts such as Internet architecture, naming and addressing, routing, forwarding, reliability, flow control, congestion control, and socket programming. The later part of the course will introduce students to topics such as secure communication, router architecture, datacenter and software-defined network. The course will also provide students with a hands-on experience of building practical and efficient networked systems and applications through various programming labs.

Required Text(s):

None.

Recommended Text(s):

  1. Computer Networks: A systems Approach , 5th Edition , Peterson and Davie , Morgan Kaufmann Publishers , 2011 , ISBN No. 978-0123850591

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. an understanding of the architectural principles underlying the Internet design. [1]
  2. an understanding of the design of various layers in the network stack, including datalink layer, network later, transport layer, and application layer. [1]
  3. a familiarity with secure communication, router architecture, software???defined network, and datacenter network. [1]
  4. an ability to implement distributed routing, forwarding, and reliability protocols. [1,2,5,6]
  5. an ability to implement networked applications using socket interface. [1,2,5,6]

Lecture Outline:

Lectures Topic
3 Introduction and Background
2 Internet Architecture Principles
5 Data Link Layer - MAC Addressing, ARP, CSMA/CD, Switched Ethernet, MAC Learning, STP
11 Network Layer - IP Addressing, NAT, IP Forwarding, Distance Vector, Link State, BGP, DNS
9 Transport Layer - UDP, TCP Reliability, TCP Flow Control, TCP Congestion Control
4 Application Layer -Web, HTTP, TLS, HTTPS, HTTP/2, QUIC, Socket Programming
1 Secure Communication
4 Router Architecture
3 Datacenter and Software-defined Network
2 Examinations

Lab Outline:

Lab Topic
1 MAC Learning, Forwarding, and STP
2 Distributed Network Routing Protocols
3 Reliable Transport
4 HTTP Web Client and Server

Engineering Design Content:

  • Establishment of Objectives and Criteria
  • Synthesis
  • Analysis
  • Testing
  • Evaluation

Engineering Design Consideration(s):

  • Political
  • Social

Assessment Method:

Assessment will be based on programming projects and written examinations. There will be four programming labs. The first two labs (Lab 1 and Lab 2) will be in Python and the last two (Lab 3 and Lab 4) will be in C. Each lab will be 3 weeks long, and must be done in group of at most two students.