CS 1030: Foundations of Computer Science (formerly CS 1400)
Fa10 | Sp11 | Fa11 | Sp12 | Su12 | Fa12 | Sp13 | Fa13 | Sp14 | Fa16 | Fa18 | Sp23
Gentle introduction to the fundamental concepts of computer science. In particular, students learn problem-solving skills and apply them by writing programs in a visual and fun programming environment that is friendly to beginners. Students also study, simulate, and visualize the inner workings of a simple computer.
CS 1050: Computers in Society (retired course)
Sp08
Social issues that surround the increasingly pervasive roles that computers play in society.
CS 1060: Explorations in Computer Science (retired course)
Fa08 | Sp09 | Fa09
Introduction to the scientific principles and engineering strategies that are the basis of computing and shows how they make possible such disparate technologies as web search engines, computer-animated movies, computer games, digital music, and artificial intelligence.
CS 1410: Introduction to Object-Oriented Programming
Fa13 | Sp14 | Fa15 | Sp16 | Fa16 | Fa17 | Fa22
This course builds on the programming skills learned in CS 1400, while introducing the paradigm of object-oriented programming.
CS 2000: Introduction to Programming in C (retired course)
Fa05 | Fa06 | Fa07
Introduction to essential programming concepts using C, including the decomposition of programs into functional units, control structures, recursion, and dynamic memory management.
CS 2100: Discrete Structures
Introduction to propositional logic, predicate logic, formal logical arguments, finite sets, functions, relations, inductive proofs, recurrence relations, graphs, and their applications to Computer Science.
CS 2420: Introduction to Data Structures and Algorithms
Su06 | Su07 | Su08 | Sp10 | Sp11 | Sp12 | Fa15 | Sp18 | Sp19 | Sp20 | Fa20 | Sp21 | Sp22
Introduction to the problem of engineering computational efficiency into programs. Classical algorithms and data structures. Analysis of program space and time requirements.
CS 3020: Research Forum
Fa09 | Fa10 | Fa11 | Fa12 | Fa13
Seminar about the kinds of problems that remain unsolved in computer science and the research conducted by professors in the School of Computing.
CS 3500: Software Practice
Sp06
Practical exposure to the process of creating large software systems, including requirements specifications, design, implementation, testing, and maintenance. Emphasis on software process, software tools, software engineering techniques, and team development practice.
CS 3810: Computer Organization
In-depth study of computer architecture and design. Topics include RISC and CISC instruction set architectures, CPU organizations, pipelining, and memory systems.
CS 4000: Senior Capstone Project - Design Phase
Fa12
First semester of the Senior Capstone Project. Seniors work on team formation, project identification, project planning, and completion of a system prototype.
CS 4011: Professional Development
Sp23
This course prepares students for the process of entering the software developer job market.
CS 4400: Computer Systems
Fa07 | Fa08 | Fa09 | Fa10 | Fa11 | Fa19
Computer systems from a programmer’s point of view, including machine level representations of programs, measuring and optimizing program performance, memory hierarchy and virtual memory, linking, and exceptional control flow.
CS 4470: Compiler Principles and Techniques (formerly CS 5470)
Sp05 | Sp06 | Sp07 | Sp08 | Sp09 | Sp10 | Sp18 | Sp19
Ideas behind the compilation of programs, including lexical an\ alysis, parsing, symbol tables, runtime environments, and code generation.
CS 4500: Senior Capstone Project
Sp13
Second semester of the Senior Capstone Project. Seniors develop significant software systems in small teams, with emphasis on applying sound, disciplined software engineering practice.
CS 5040: Teaching Introductory Computer Science
Fa15 | Fa16 | Fa17 | Fa18 | Fa19 | Fa20 | Fa21
Issues confronted by teaching assistants (TAs) of introductory computer science courses, including leading lab sections, conducting office hours, grading assignments, and communicating with students.
CS 6961: Teaching Computer Science in Higher Education
Fa21 | Fa22
Special topics course for preparing students to teach basic computer science concepts at a university level, with a focus on how to effectively teach undergraduates.
CS 7940-002: Computer Science Education Seminar
Fa18 | Fa19 | Fa20 | Fa21
A weekly meeting in which attendees read and discuss one or more papers / articles chosen from a CS education conference or publication.