BS in Computer Science

Curriculum Overview

Professor of Computer Science Monika Polak leads the class Data Mining in Morey Hall.

Students in the BS program gain deep technical expertise and hands-on experience in advanced computing topics, preparing them for careers in software engineering, research, and graduate study in computer science and related fields. A sequence of six core courses builds a strong base in both engineering and computer science concepts.

Students can also choose to focus their studies in one of the following concentrations:

  • Artificial intelligence
  • Human-computer interaction
  • Systems
  • Theory

Our program is well suited for students looking for careers in research and industry. Students looking for a more rigorous, research-based program can also pursue an honors in research as a part of their BS program.

Degree Requirements

The BS degree in computer science (CS) requires a total of 128 credit hours in the following areas:

  • Pre-major requirements: 16 credits
  • Core courses: 24 credits
  • Additional math courses: 8 credits
  • Advanced computer science courses: 16 credits
  • Cluster courses: 24 credits
  • Primary writing requirement: 4 credits
  • Upper-level writing requirement: 8 credits
  • Free electives: 24 credits

See the computer science BS sample schedule page for a guide on how to plan your courses.

Pre-major Requirements

Students pursuing a BS degree in computer science must first complete the following pre-major requirements with a GPA no lower than a 2.0:

  • CSC 171: Introduction to Computer Science
  • MATH 150: Discrete Mathematics
  • CSC 172: Data Structures and Algorithms
  • Calculus: Either MATH 14x, MATH 16x, or MATH 17x (placement determined by the Department of Mathematics)

Declaring your Major

After completion of the pre-major requirements, students are eligible to officially declare their BS or BA in computer science by completing and submitting a degree planning sheet.

Core Courses

All of the following courses are required:

  • CSC 173: Computation and Formal Systems
  • CSC 242: Introduction to Artificial Intelligence
  • CSC 252: Computer Organization
  • CSC 254: Programming Language Design and Implementation
  • CSC 280: Computer Models and Limitations
  • CSC 282: Design and Analytics of Efficient Algorithms

Additional Math Courses

Students must take two additional courses mathematics.

Students can choose from one of the following for their first math course :

  • STAT 190: Introduction to Statistical Methodology (formerly STAT 213 or CSC 262)
  • ECON 230: Economic Statistics
  • MATH/STAT 201: Introduction to Probability

Plus one of the following for their second math course:

  • MATH 165: Linear Algebra with Differential Equations
  • MATH 173: Honors Calculus III

Advanced Computer Science Courses Requirement

Students pursuing a BS in computer science must complete four 4-credit advanced courses numbered 200 or higher in computer science. This does not include core or math courses listed above.

No more than two core or advanced courses may be completed at other institutions unless they are taken as part of the University's education abroad program.

Writing Requirements

Primary Writing Requirement

The primary writing requirement must be satisfied after declaring your major. Review the primary writing requirement page for more information.

Upper-Level Writing Requirement

Significant writing experience within the discipline is an important complement to the technical material. The following courses will satisfy this requirement:

  • WRTG 273: Communicating Your Professional Identity (sophomores and juniors only)
  • WRTG 290B: Writing About and With Artificial Intelligence
  • CSC 273W: Writing in Computer Science
  • CSC 299W: Social Implications of Computing
  • CSC 391W: Independent Study Writing
  • CSC 395H: Honors Thesis
  • PHIL 235W: Data, Algorithms, Justice
  • PHIL 243W: Theory of Knowledge
  • PHIL 244W: Philosophy of Mind
  • PHIL 246W: Social Character Knowledge
  • PHIL 247W: Philosophy of Language
  • PHIL 252W: Philosophy of Science
  • PHIL 257W: Philosophy of Artificial Intelligence

Free Electives

At least 12 credit hours of free electives are required. Any courses taken at Rochester, AP courses, or transfer courses can be counted toward this requirement.

Students will need to use some of these electives to complete the divisional requirements of the Rochester Curriculum, completing a cluster/minor that falls into the social science division, and a cluster/minor that falls into the humanities division.

Concentrations

In addition to the broad foundation student gain through our program, BS students can also complete a concentration, allowing them to develop mastery in a particular field.

To fulfill the requirements for a concentration, students must complete five advanced four-credit courses numbered 200 or higher (one more than required for the base degree), with at least three of these courses in the chosen concentration area.

Artificial Intelligence

In AI, students concentrate on designing, building, and understanding computational systems that can perform tasks typically associated with human intelligence such as:

  • Language understanding
  • Visual understanding
  • Reasoning
  • Problem-solving
  • Decision-making
  • Learning

At URochester it includes topics such as knowledge representation and reasoning, machine learning, dialog systems, statistical natural language processing, automated planning, AI-based assistive technology, and computer vision.

Approved courses for AI concentration:

  • CSC 240: Data Mining
  • CSC 245: Deep Learning
  • CSC 246: Machine Learning
  • CSC 247: Natural Language Processing
  • CSC 249: Machine Vision
  • CSC 266: Frontiers in Deep Learning
  • CSC 277: End-to-End Deep Learning
Human-Computer Interaction (HCI)

In HCI, students focus on designing and evaluating technologies that enhance human experiences through human-centered AI, grounded in ethical design and societal impact.

Our HCI concentration includes such topics as:

  • Socially aware AI for behavior and emotion understanding
  • Embodied and intelligent learning environments
  • Immersive and accessible mixed reality interaction
  • Broader applications in healthcare innovation
  • Assistive and educational technologies
  • Human-AI collaboration
  • Technology for social good

Approved courses for HCI concentration:

  • CSC 211: Introduction to HCI
  • CSC 212: Human Computer Interaction
  • CSC 216: AR/VR Design
  • CSC 229: Computer Models of Perception and Cognition
  • CSC 259: Computer Imaging and Graphics
Systems

In systems, students concentrate on designing, building, analyzing, and optimizing the infrastructure that underlies all modern computing, in everything from thermostats to smart phones to massive data centers. Systems students will focus on topics like:

  • Operating systems
  • Programming languages
  • Networks
  • Security, databases
  • Computer architecture (hardware)

Approved courses for systems concentration:

  • CSC 253: Collaborative Programming and Software Design
  • CSC 255: Software Analysis and Improvement
  • CSC 256: Operating Systems
  • CSC 257: Computer Networks
  • CSC 258: Parallel and Distributed Systems
  • CSC 263: Data Management Systems
  • CSC 276: Computer Architecture and Security
  • ECE 204: Multiprocessor Architecture
  • CSC 290: Machine Learning Systems
Theory

In theory, students concentrate on understanding the theoretical foundations of computation, enabling them to design efficient algorithms and solve complex computational problems. This concentration includes topics algorithms, computational complexity, and randomness, with applications in diverse fields such as learning theory, cryptography, economics, and computational social choice theory.

Approved courses for theory concentration:

  • CSC 279: Computational Geometry
  • CSC 281: Introduction to Cryptography
  • CSC 283: Topics in Cryptography
  • CSC 284: Advanced Algorithms
  • CSC 285: Gems of Algorithms and Elections
  • CSC 286: Computational Complexity
  • CSC 287: Sampling Algorithms
  • CSC 288: Analytic Methods in CS
  • CSC 289: Algorithmic Game Theory