Network Engineering teaches students how to develop, build, and maintain network solutions tailored to the diverse needs of their organization within the private or public sectors. During their first year, CU students enrolled in the Network Engineering two-year graduate program are introduced to both network engineering fundamentals as well as network programming and automation, which has become the glue that connects various networking technologies and solutions within a distributed networking environment. By the start of their second year, many Network Engineering students will have interned over the summer at one of the many tech companies in Silicon Valley. Upon returning to campus, Network Engineering students focus on advanced networking engineering courses, such as service provider networks, data center networks, and next-generation networks – courses that emphasize students’ understanding of network engineering, coding, systems, and software design.

Network Engineering Handbook

Network Engineering Plan of Study Form

Table of Contents


The Network Engineering Professional Master’s Program (MS in NE) in the Department of Computer Science will prepare students to become members of the next generation of leaders in Internet, Cloud, and Intranet networking.

The MS in Network Engineering is a coursework-only professional master’s program.
Students will take 30 credits in the following categories.

Category Credits
Fundamentals 6
Core 6
Advanced Electives 9
Electives 9
Total 30

Each of these categories are described in more detail below. Note: the program may decide to offer new courses in any of these categories over time.

Fundamentals

The courses in the Fundamentals category are designed to provide students with the background they need to succeed in this degree. Courses in this category cover the fundamental concepts of how the internet operates; how to develop network systems; and how to administer the machines (both physical and virtual) that deploy them. These fundamentals courses do not count towards any Computer Science degrees - PhD, MS or MSCPS.

Combining conceptual knowledge about data communications and core Internet technologies with hands-on labs that reinforce the conceptual knowledge, this course provides students with the ability to create innovative technology solutions in their discipline. Learning how the Internet works and being able to evaluate and operate an Internet network is a valuable skill; students in this course will have a competitive advantage in this foundational field. (This course is typically offered in the Fall semester)
This course provides an immersion into the foundational theories of network programming and software development for emerging technologies. Students will gain direct experience with real-world programming lab experiments and demonstrations that will enforce the theoretical information and relate to the prolific increase of cross-discipline programming. Software is changing the landscape of nearly all facets of life and the demand of programming in business, security, education, IOT, and engineering is growing rapidly. This course is designed for students without engineering backgrounds to be able to succeed in the programmable world. (This course is typically offered in the Fall semester)
Introduces UNIX (Linux) system administration and related topics, including trouble-shooting system and network problems, hardware and software configuration and installation, basic scripting, and security aspects of Internet hosts. Students build a Linux server from the ground up, using provided computing resources, and must maintain and secure the server themselves. (This course is typically offered in the Fall semester)

Students are required to take two courses (6 credits) from the Fundamentals category unless they can demonstrate that they have acquired the necessary skills and knowledge via their undergraduate degree. Such students can petition to take two extra elective or advanced elective courses instead.

Core

The courses in the Core category begin to lay the foundation for exploring network engineering topics in depth. All aspects of network engineering from the management of network systems to the policies that govern traffic on the internet to the wireless systems that deliver information to devices on the edge are all covered.

Introduces Linux system administration and related topics. Includes hardware and software installation, storage management, configuration of user accounts and system services, development of automation and monitoring tools, and the provisioning of common network services. This laboratory focused course will provide significant exposure to the network security concerns of Internet connected hosts. Students will build a network of Linux servers from the ground up, using provided computing resources, and must maintain and secure these servers themselves. (This course is typically offered in the Fall semester)

 

Prior understanding of Linux system administration is strongly recommended.  The required learning objectives can be obtained from courses such as:

  • CSCI 5030 / CSCI 4113: Fundamentals of System Administration or Unix System Administration

Provides direct experience with networking functions and equipment through experiments and demonstrations. Students learn the fundamental principles and techniques of voice and data switching and routing within an enterprise environment. Procedures require the use of actual commercial equipment (including Cisco, Juniper, and Arista) plus network services and observation using packet analyzers. Weekly experiments and exams are designed to reflect real-world networking scenarios and require additional hours of lab work. Most lab exercises involve activities which require physical access to the hardware and cannot be done remotely. Students are expected to spend 6 hours per week in the lab. In addition to the lab time, students should also anticipate up to 6 additional hours of time for homework, reading, lab preparation and studying for exams. Recommended restriction: students are expected to know the OSI Model, principles of Ethernet Switching, IP Addressing and operation of protocols such as ARP, DHCP, DNS. (This course is typically offered in the Fall and Spring semesters)

 

Prior understanding of network engineering technologies is strongly recommended.  The required learning objectives can be obtained from courses such as:

  • CSCI 5010: Data Communications or CSCI 4273: Network Systems

Explores practical usage and conceptual underpinnings of link state and distance vector routing protocols. The course further explores a holistic view of how the Internet works from a technical routing aspect as well as policy and economics. The course is supplemented with frequent labs to fully explore the specific workings of the routing protocols RIP, OSPF, and BGP and the relationships between them in practical lab based routing scenarios. (This course is typically offered in the Fall and Spring semesters)

Teaching both technical and soft skills, this course incorporates best practices and the key theories behind them such as understanding common services needed for network functionality, maintenance, and troubleshooting. The goal of this course is to equip students with the valuable skills and tools they need to hit the ground running in most network management, operation, automation, and DevOps roles within a company. By the end of the course, students will be competent in the technologies, services, and tools used to manage and automate complex networks. (This course is typically offered in the Fall and Spring semesters)

 

Prior understanding of network engineering technologies, Python programming, and Linux system administration is strongly recommended.  The required learning objectives can be obtained from courses such as:

  • CSCI 5010: Data Communications or CSCI 4273: Network Systems
  • CSCI 5020: Fundamentals of Network Programming
  • CSCI 5030 / CSCI 4113: Fundamentals of System Administration or Unix System Administration

Overviews the distinctive characteristics of the wireless communications medium. Topics covered include: Analog signals, Antennas and Propagation, Digital Signals, Sampling, Quadrature Signals, Digital Modulation, SNR and SINR Concepts, Channel Models, Channel Statistics, and Link Budgets. The course includes an introduction to MIMO and beam-forming as implemented in modern communication systems. Software Defined Radio (SDR) is introduced to facilitate student hands-on learning of radio operation. (This course is typically offered in the Fall semester)

Emphasis on the IEEE P802.11 family of WLAN standards. Students learn the legacy versions of the standard (802.11DS/b), the current generation of WLAN systems (802.11a/g/n/ac), and will to analyze and critique upcoming versions (802.11ax/ba), and gain insight into proposals for new research in WLAN. Exposure to the interoperability and certification process for WLAN by the Wi-Fi Alliance, study the newest Wi-Fi Certified programs, and will learn how to model and analyze WLAN traffic using industry standard tools.(This course is typically offered in the Spring semester)

This Wireless Solutions Architecture course is designed to examine the core concepts of wireless architecture, design and implementation. The course will focus on architecting solutions for unlicensed technology, specifically enterprise Wi-Fi networks. Students will learn how to design, implement, troubleshoot and operate enterprise wireless networks.(This course is typically offered in the Spring semester)

Students are required to take two courses (6 credits) from the Core category to help set the stage for taking courses in the Advanced Electives category. Students can be guided in their choice of Core courses by using the suggested focus areas at the end of this document to craft a set of coursework that best meets their academic goals. If a student feels that they need to take more courses from the Core category, they can certainly do so by choosing to take additional Core classes and applying those credits towards meeting the credits associated with the Electives category.

Advanced Electives

The courses in the Advanced Electives category go in depth on a variety of network engineering topics. Students are required to take three courses (9 credits) of advanced electives to graduate.

Provides an in-depth immersion into the foundational theories and technologies of Voice Over IP (VoIP). This course supplements these theories with direct experience through real-world, hands-on lab experiments and demonstrations. The fundamentals of voice technologies, services, and tools used in industry to design, deploy and troubleshoot VoIP networks will be explored in detail, providing the student with a competitive advantage in the job market. (This course is typically offered in the Fall semester)

Linux system administration and related topics are covered in depth with a focus on security. The course includes labs on best practices for securing hardware and software installation, storage management, configuration of user accounts and system services, development of automation and monitoring tools, and the provisioning of common network services. This laboratory focused course will provide significant exposure to the network security concerns of Internet connected hosts. Students will build a network of Linux servers from the ground up, using provided computing resources, and must maintain and secure these servers themselves. (This course is typically offered in the Spring semester)

Covers design and configuration principles required to build highly scalable and highly redundant network solutions used by datacenters. Class makes use of commercial grade equipment to build network topologies and services. Students will work in teams to build a virtualized cluster, load balance application traffic between multiple server blades, assure high availability in Ethernet and IP layers, and be able to prioritize important services using QoS. This lab-based course requires an average of 6 hours per week where the students are physically present in the CU Network Engineering Lab. Most lab exercises involve activities which require physical access to the hardware and cannot be done remotely. In addition to the lab time, students should also anticipate up to 6 additional hours of time for homework, reading, lab preparation and studying for exams. (This course is typically offered in the Fall semester)

Focusing on the systematic process of network design, this course explains the process of gathering network requirements, data flow analysis, and the selection of network architectures. Also addressed in detail are the topics of addressing and routing; network management; network performance criteria; and security and privacy architecture. These techniques are merged to create a complete network design framework encompassing all phases of the network from beginning to end.

Provides an in-depth immersion into the foundational theories and technologies of Software-Defined Networking (SDN), Network Functions Virtualization (NFV), and emerging technologies for computer networks. Supplements the theoretical knowledge learned through direct experience with real-world lab experiments and demonstrations. This knowledge will give students an advantage in the job market for this in-demand, constantly changing subject. (This course is typically offered in the Fall semester)

This course presents advanced networking design and implementation techniques through experiments with network measurement equipment, switches, router, and management interfaces. The course primarily focuses on Service Provider Transport technologies for capacity, scalability and fault tolerance. Students learn the essential network architectures of last mile and long haul network solutions used for public and private network traffic transport; implementation of SLAs, load balancing, first hop redundancy, and MPLS transport and L2/L3 VPN solutions. This course requires an average of 6 hours per week in the lab. Most lab exercises involve activities which require physical access to the hardware and cannot be done remotely. In addition to the lab time, students should also anticipate up to 6 additional hours of time for homework, reading, lab preparation and studying for exams. (This course is typically offered in the Spring semester)

Provides an advanced, in-depth immersion into the theories and technologies of Software-Defined Networking (SDN), Network Functions Virtualization (NFV), network virtualization/orchestration, and emerging technologies for computer networks. Expands on the real-world lab experiments and theoretical demonstrations learned from the course prerequisite. The knowledge and critical thinking skills learned from this course will arm students with an advantage in the job market for this in-demand, constantly changing subject. (This course is typically offered in the Spring semester)

In depth, hands-on lab course on advanced wireless communication technologies.

This course provides an opportunity for students to learn about the latest advancement in wireless communication systems in evolution toward new standards along with new deployment models, use cases, and services.

Electives

The three courses (9 credits) associated with the Electives category allow students to customize the MS in Network Engineering degree to meet their academic goals. These credits can include any of the following options:

● Any of the remaining Core courses
● Any of the remaining Advanced Electives Courses
● Any CS 5000-level courses
● At most three graduate-level courses (9 credits) from outside CS approved by petition

For the last two options, students are encouraged to submit petitions to the CS graduate committee BEFORE taking the courses they want to apply to the Electives category.

Suggested Focus Area Combinations

The following sets of courses represent common focus areas that students can take to target a particular area of network engineering in depth.

Network Design and Configuration
● CSCI 5160: Introduction to Enterprise Networks
● CSCI 5260: Datacenter Networks
● CSCI 5360: Internet Service Provider Networks

Network Programmability and Automation
● CSCI 5180: Network Management and Automation
● CSCI 5280: Software-Defined Networking
● CSCI 5380: Network Virtualization and Orchestration

Linux System Administration
● CSCI 5030: Fundamentals of System Administration and Virtualization
● CSCI 5113: Linux System Administration
● CSCI 5210: Secure Linux Platform Engineering

Wireless Networking
● CSCI 5200: Introduction to Wireless Networks
● CSCI 5220: Wireless Local Area Networks
● CSCI 5620: Advanced Wireless Lab
● CSCI 5630: Wireless and Cellular Systems (LTE 5G)

Comprehensive Networking Solutions
● CSCI 5160: Introduction to Enterprise Networks
● CSCI 5170: IP Routing Protocols and Policies
● CSCI 5190: Voice Over IP: Voice Network Design and Implementation
● CSCI 5200: Introduction to Wireless Networks
● CSCI 5270: IP Network Design

Example Plan of Study - Course Sequences

The outline below shows an example course sequence for students enrolled in the Professional Master's in Network Engineering degree. There are a wide variety of course sequences that are possible, and many students elect to take additional credits above the 30-credit degree minimum.  To accommodate this, the program is designed to be flexible and aims to meet the needs of students. Refer to the Graduate Handbook for more information regarding degree requirements and registration policies.

Example Plan of Study for students without a Computer Science background wanting to focus on the areas of Network Design and Configuration and Network Programmability and Automation:

Semester 1 (9 credits)

CSCI 5010 Fundamentals of Data Communication
CSCI 5020 Fundamentals of Network Programming
CSCI 5030 Fundamentals of System Administration and Virtualization

Semester 2 (9 credits)

CSCI 5180 Network Management and Automation
CSCI 5160 Introduction to Enterprise Networks
CSCI 5170 IP Routing Protocols and Policies

Semester 3 (6 credits)

CSCI 5260 Datacenter Networks
CSCI 5280 Software-Defined Networking

Semester 4 (9 credits)

CSCI 5380 Network Virtualization and Orchestration
CSCI 5360 Internet Service Provider Networks
CSCI 5270 IP Network Design