Credits: 3
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, and 1120 provide different approaches to teaching the same core material; students may only receive credit for one of these courses.
Credits: 3
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, 1111, 1112, 1113, and 1120 provide different approaches to teaching the same core material; students may only receive credit for one of these courses.
Credits: 1
Student led special topic courses which vary by semester.
Credits: 3
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 mechanisms for reasoning about discrete problems. Prerequisite: CS 1110, 1111, 1112 or 1120 with a grade of C- or higher.
Credits: 3
Introduces discrete mathematics and proof techniques involving first order predicate logic and induction. Application areas include sets, tuples, functions, relations, and combinatorial problems. Prereq: CS 1100 - CS 1199
Credits: 1
Provides cultural capstone to the undergraduate experience. Students make presentations based on topics not covered in the traditional curriculum. Emphasizes learning the mechanisms by which researchers and practicing computer scientists can access information relevant to their discipline, and on the professional computer scientist's responsibility in society. The course requires second-year standing in the CS BS major for enrollment. Prerequisite: CS 2102 and 2110, both with a grade of C- or higher.
Credits: 1
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 for a computer science course as part of their coursework.
Credits: 3
Introduces computation theory including grammars, finite state machines, pushdown automata, and Turing machines. Prerequisites: CS 2102 or CS 2120, and CS 2110 or CS 2501 topic "DSA 2" or the CS 2110 placement test; both with grades of C- or higher.
Credits: 3
Introduces the analysis of algorithms and the effects of data structures on them. Algorithms selected from areas such as sorting, searching, shortest paths, greedy algorithms, backtracking, divide-and-conquer, and dynamic programming. Data structures include heaps and search, splay, and spanning trees. Analysis techniques include asymtotic worst case, expected time, amortized analysis, and reductions between problems. Prerequisite: CS 2150 or CS 2501 topic DSA2 with a grade of C- or higher, and CS 2102 or CS 2120 with grades of C- or higher, and APMA 1090 or MATH 1210 or MATH 1310.
Credits: 1–3
This course is one option in the CS fourth-year thesis track. Students will seek out a faculty member as an advisor, and do an independent project with said advisor. Instructors can give the 3 credits across multiple semesters, if desired. This course is designed for students who are doing research, and want to use that research for their senior thesis. Note that this track could also be an implementation project, including a group-based project. Prerequisite: CS 2150 with a grade of C- or higher
Credits: 1–3
In-depth study of a computer science or computer engineering problem by an individual student in close consultation with departmental faculty. The study is often either a thorough analysis of an abstract computer science problem or the design, implementation, and analysis of a computer system (software or hardware). Prerequisite: Instructor permission.
Credits: 3
Required for Distinguished Majors completing the Bachelor of Arts degree in the College of Arts and Sciences. An introduction to computer science research and the writing of a Distinguished Majors thesis. Prerequisites: CS 2150 with a grade of C- or higher and CS BA major status.
Credits: 1
A graduate student returning from Curricular Practical Training can use this course to claim one credit hour of academic credit after successfully reporting, orally and in writing, a summary of the CPT experience to his/her academic advisor.
Credits: 1–12
Detailed study of graduate course material on an independent basis under the guidance of a faculty member.
Credits: 3
Formal record of student commitment to project research for the Master of Computer Science degree under the guidance of a faculty advisor.
Credits: 1–12
For master's students who are teaching assistants.
Credits: 1–12
Formal record of student commitment to thesis research for the Master of Science degree under the guidance of a faculty advisor. May be repeated as necessary.
Credits: 1–12
For doctoral students who are teaching assistants.
Credits: 1–12
Formal record of student commitment to doctoral research under the guidance of a faculty advisor. May be repeated as necessary.