A second course in computer science and computational thinking, focusing on data structures and advanced programming. Topics include implementation and applications of data structures such as stacks, queues, linked lists, trees and graphs. Also introduces performance analysis of algorithms. Has a required lab, but does not satisfy the “Natural Science with Laboratory” requirement.
Introduces the fundamental principles of computer networking used to connect billions of devices to the internet. It will also cover the history of computer networks to inform the design of modern networks. Topics for the course include transmission over physical mediums (both wired and wireless), medium access control, packetization, transport protocols (TCP and UDP), and applications (World Wide Web, e-mail, video game networking). Students will implement significant portions of the network infrastructure using modern C++ (i.e., C++11). Prerequisite: CPS 222. The textbook for the course is Computer Networking: A Top-Down Approach.