The first part of the course will introduce the Java programming language and Object-oriented Programming (OOP). The second part of the course will cover the design and implementation of commonly used data structures (lists, stacks, queues, trees, graphs). The time and space complexity of a given data structure (or larger program) will be a common theme. Prerequisite: CPS 111
Introduces basic concepts in computer science and computational problem solving through the design of algorithms and computational processes, modularization, and abstraction. Also introduces the processes of programming and software development as a means to put solutions into practice. The course is taught in Linux (Ubuntu) and introduces the use of the command-line for creating files and running programs. The programming language for the course is Python 3 and the textbook is Python Programming in Context.
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.