ECE 478
Fundamentals of Computer Networks
Required course: No
Course Level
Units
Instructor(s)
Prerequisite(s)
Course Texts
Text:
- Computer Networks, A Systems Approach, 5th edition, Larry L. Peterson and Bruce S. Davie, Morgan Kaufmann, 2011. Available for free: open.umn.edu/opentextbooks/textbooks/computer-networks-a-systems-approach
References:
- Computer Networks, 6th edition, A S. Tanenbaum, and D. Wetherall, Prentice Hall, 2020.
Available online via the library - Computer Networking, A Top-down Approach, 7th edition, J. Kurose and K. Ross, Addison Welsey, 2017
Schedule
Course Description
Specific Course Information:
2021-2022 Catalog Data: Introduction to computer networks and protocols. Study of the ISO open systems interconnection model, with emphasis on the physical, data link, network, and transport layers. Discussion of IEEE 802, OSI, and Internet protocols.
Learning Outcomes
Specific Goals for the Course:
Outcomes of Instruction: By the end of this course the student will be able to:
- Outline wired and wireless technologies for interconnecting computer networks.
- Define metrics for evaluating the network performance.
- Specify the operational details of reliable link-layer transmission protocols and multiple access protocols.
- Explain the global addressing system.
- Analyze various network topology models and compute optimal routing policies.
- Describe the autonomous system hierarchy and the Interdomain routing policies.
- Evaluate the performance of end-to-end network protocols.
- Contrast resource congestion control and resource allocation protocols.
- Describe the fundamental principles of network security.
- Explain the operation of fundamental computer applications deployed over the Internet infrastructure.
Course Topics
Brief list of topics to be covered:
Introduction to computer systems
- Engineering problems as computational problems
- Overview of computer systems
- Software design
Introduction to C
- Code build process (editing, compiling, linking, executing)
- Elements of a C program; preprocessor directives; statements and expressions; functions; coding formatting style
- Simple data types; constants and variables; conversion between different data types; binary arithmetic representations
- The IDE environment
Program flow control
- Conditions; relational operators; logical operators; precedence rules; selection structures
- Repetition and loop statements; while statements; for statements; increment and decrement operators; loop termination; nested loops; do-while statements
- Debugging
Modular programming
- User functions; library functions; function declaration and definition; function calls; pass by value; scope rules; programs with multiple functions
- Pointers and addresses; pass by reference; pointer arithmetic
- File input/output
Simple data structures
- Arrays; declaration and initialization; multi-dimensional arrays; searching and sorting arrays; pointers and arrays
- String arrays; string library functions; substrings; concatenation; strings vs. characters
- Engineering applications; matrix algebra; numerical integration and differentiation; quadratic equations
- Recursion
- Structures; structures and functions; arrays of structures; dynamic data structures
Relationship to Student Outcomes
ECE 478 contributes directly to the following specific electrical and computer engineering student outcomes of the ECE department:
1. An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
3. An ability to communicate effectively with a range of audiences.
6. An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
7. An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.