How computers create, preserve, manipulate and communicate information and the concepts and tools used to that end. Units include how computers work, web technologies, creating web pages, algorithms and logic, …
A first course in programming, software development, and computer science. Introduces computing fundamentals and an appreciation for computational thinking. No previous programming experience required. Note: CS 1110, 1111, 1112, 1113, …
A first course in programming, software development, and computer science. Introduces computing fundamentals and an appreciation for computational thinking. Prerequisite: Students should have some experience with programming. Note: CS 1110, …
A first course in programming, software development, and computer science. Introduces computing fundamentals and an appreciation for computational thinking. Prerequisite: Students must have no previous programming experience. Note: CS 1110, …
A first course in programming, software development, and computer science. Introduces computing fundamentals and an appreciation for computational thinking. Special domain topics and materials will differ by section and semester. …
Student led special topic courses which vary by semester.
A second course in computing with an emphasis on foundational data structures and program analysis. The course provides a introduction to object oriented programming and the Java programming language, concurrency, …
Introduces discrete mathematics and proof techniques involving first order predicate logic and induction. Application areas include finite and infinite sets, elementary combinatorial problems, and graph theory. Development of tools and …
A second course in computing with an emphasis on modern software development and principles central to computer science. Topics include software requirements, testing, object-oriented design, abstraction, encapsulation, recursion, and time-complexity.Prerequisite: …
Introduces discrete mathematics and proof techniques involving first order predicate logic and induction. Application areas include sets, tuples, functions, relations, and combinatorial problems. Prereq: Must have completed CS 1110 or …
This course covers topics on the computer architecture abstraction hierarchy ranging from a step above silicon to a step below modern programming languages. Students in this course will learn to …
Introduces programs and data representation at the machine level. Data structuring techniques and the representation of data structures during program execution. Operations and control structures and their representation during program …
Introduction to analysis and design of digital systems from switches to gates to components to CPU. Analysis and design of combinational and sequential components including multiplexers and demultiplexers, decoders and …
Content varies, depending on instructor interests and the needs of the Department. Taught strictly at the undergraduate level. Prerequisite: Instructor permission; additional specific requirements vary with topics.
An overview of computer science education for undergraduate students. Topics include ethics, diversity, tutoring and teaching techniques, and classroom management. Students enrolled in this course serve as a teaching assistant …
In-depth study of a computer science or computer engineering problem by an individual student in close consultation with departmental faculty.
Builds upon previous analysis of algorithms and the effects of data structures on them. Algorithms selected from areas such as searching, shortest paths, greedy algorithms, backtracking, divide-and-conquer, dynamic programming, and …
Introduces computation theory including grammars, finite state machines, pushdown automata, and Turing machines.Prerequisites: (CS 2102 or CS 2120) and (CS 2100 or CS 2110 or CS 2501 topic "DSA 2" …
The goal of this course is to understand the fundamental limits on what can be efficiently computed. These limits reveal properties about information, communication, and computing, as well as practical …
A second course in computer systems, this course will explore a more realistic model of processors and how they and the operating system work together to provide various functionality we …