Photos of university / #urochester
Program Description:
The Computer Science Bachelor’s Degree Program at the University of Rochester offers a comprehensive and rigorous curriculum designed to equip students with the foundational knowledge and practical skills needed to excel in the rapidly evolving field of computing. Students will engage with a broad spectrum of topics, including algorithms, programming languages, software development, computer hardware, and systems, as well as emerging areas such as artificial intelligence, machine learning, data science, and cybersecurity. The program emphasizes both theoretical understanding and hands-on experience, preparing graduates for diverse career paths in industry, research, and academia.
Students initially build a strong base in programming, data structures, and discrete mathematics, which are essential for understanding core computer science concepts. As they progress, they have the opportunity to specialize in advanced areas through electives and research projects, allowing them to tailor their education to their interests and career goals. The curriculum fosters critical thinking, problem-solving, and analytical skills, encouraging students to develop innovative solutions to complex technological challenges.
The program benefits from the university’s state-of-the-art research facilities, experienced faculty members actively involved in cutting-edge research, and strong industry connections. Students are encouraged to participate in internships, cooperative education (co-op) programs, and collaborative research projects, gaining valuable real-world experience that enhances their employability upon graduation.
Additionally, the program promotes interdisciplinary collaboration, enabling students to apply computer science principles to fields such as biology, engineering, social sciences, and the arts. Graduates of the program are well-prepared for graduate studies or to enter the workforce as software developers, systems analysts, data scientists, cybersecurity specialists, or entrepreneurs.
The University of Rochester’s Computer Science program is committed to fostering an inclusive and innovative learning environment that inspires students to become leaders in technology and society. Through a combination of rigorous coursework, research opportunities, and industry engagement, students graduate with the skills, knowledge, and confidence necessary to make meaningful contributions to the digital world.
Qualifying Courses
- CSC 171: The Science of Programming
- MTH 150: Discrete Mathematics or MTH 150A: Discrete Math Module
- MTH 161: Calculus I*
- MTH 162: Calculus II*
- CSC 172: The Science of Data Structures
*Calculus sequences MTH 141-MTH 143, or MTH 171Q and MTH 172Q are also acceptable.
Core Course
- CSC 173: Computation and Formal Systems
- CSC 242: Artificial Intelligence
- CSC 252: Computer Organization
- CSC 254: Programming Language Design and Implementation
- CSC 280: Computer Models and Limitations
- CSC 282: Design and Analysis of Efficient Algorithms
- MTH 165: Linear Algebra with Differential Equations **
- CSC 262: Introduction to Computational Statistics*
* This requirement can also be fulfilled with STT/MTH201, STT213 or ECO 230.
**Students who take MTH 173Q, or both MTH 163 and MTH 235, may count these options as covering the MTH 165 requirement.
Students in 2016-2018 will have the option of doing either CSC 200 or the statistics requirement. Students completing the honors research degree will need to complete CSC 200H and CSC 262 (or substitute).
Advanced Courses
Students must take three advanced courses in computer science. These courses must be above 200, not included in the core courses, and excluding CSC 390: Supervised Teaching. Students should consult with their faculty adviser or the CS undergraduate coordinator about their advanced course selection.
Advanced course specialization is encouraged, but not mandatory. In particular, students are encouraged to select a related set of courses that will prepare them for participation in one of the department’s research projects and/or to complete a senior project.
Areas of interest include the following:
- Computer Systems
- CSC 253: Dynamic Language and Software Development
- CSC 255: Software Analysis and Improvement
- CSC 256: Operating Systems
- CSC 257: Computer Networks
- CSC 258: Parallel and Distributed Systems
- CSC 259: Big Data Computer Systems
- Natural Language and Knowledge Representation
- CSC 244: Logical Foundations of A.I.
- CSC 247: Natural Language Processing
- CSC 248: Statistical Speech and Language Processing
- Machine Learning, Vision and Robotics
- CSC 240: Data Mining
- CSC 246: Machine Learning
- CSC 249: Machine Vision
- Theory
- CSC 281: Intro to Cryptography
- CSC 283: Topics in Cryptography
- CSC 284: Advanced Algorithms
- CSC 285: Algorithms and Elections
- CSC 286: Computational Complexity
- CSC 287: Advanced Modes of Computation
- Human Computer Interaction and Web
- CSC 210: Principles of Web Application Development
- CSC 212: Human Computer Interaction
- Data Science
- CSC 240: Data Mining
- CSC 246: Machine Learning
- CSC 259: Big Data Computer Systems
- CSC 261: Database Systems
- CSC 265: Intermediate Statistical and Computational Methods
In addition to the three advanced CSC courses, a BS candidate must complete one of the following:
- CSC 393: Senior Project
- One additional advanced course in computer science, mathematics or in other computing related disciplines (See section 4.3 in the Computer Science Undergraduate Handbook for more information)
Honors Research Program
The computer science honors research program requires honors-level coursework and a senior research thesis.
There are three degrees of honors awarded:
- Honors in research
- High honors in research
- Highest honors in research
The degree of honor awarded is determined by the computer science faculty in consultation with the student's honors committee. The quality of the thesis, its presentation, and other CS research and publications throughout the student's undergraduate career are all considered.
Honor Requirements
- CSC 200H: Undergrad Problem Seminar Honors
- CSC 395H: Honors Senior Thesis
- CSC 391H: Independent Study-Honors or 393H: Senior Project-Honors
- Senior Research Thesis
Upper-Level Writing Requirement for Computer Science Majors
Every computer science major must develop, in consultation with his or her faculty adviser, a plan that includes two upper-level writing experiences.
Each experience must generate at least 25 pages of expository prose, with substantial feedback on content and form, and revision of the work. The 25 pages may be in the form of a single paper or a series of smaller papers.
Acceptable writing experiences include the following:
- WRT 273: Communicating Your Professional Identity (2 credits) – taken junior year
- "W" Courses in other departments with advisor approval
- Designated courses in computer science
- Creation of a research paper or published technical report
Requirements
You must submit the following materials. You will either submit through MyROC or your respective application portal (or mail when applicable). Rochester accepts the Common Application (CA), the Universal College Application (UCA), and the Coalition Application (CoA). The materials listed under Official Documents must be submitted to us directly by your school, testing site, or family member, depending on the document.
MyROC
- Part I Application
- International Financial Support Form (IFSF)
- Interview sign-up (highly recommended)
- Links to electronic media (music, websites, photos, videos, etc.) (optional)
- Writing sample (optional)
Official Documents
- High school transcript
- Financial documentation
- Official test scores
- Teacher recommendation
- School report
- Mid-year report
- College transcript
- English language exam results
- Family/Community Recommendation Form (optional)
Application Portal
- Application (CA, UCA, or CoA)
- Application fee
- Freshman Supplement (UCA)
- Writing Supplement (CA)
- Early Decision Agreement (optional)
- Professional Degree Programs essay (optional)
- Arts Supplement (UCA) (optional)
- Athletic Supplement (UCA) (optional)
If your native language is not English and you completed your secondary or higher education in a non-native English speaking country, you must take a test of English language proficiency. In some instances, admission to the University will be contingent upon participation in the University’s English for Academic Purposes (EAP) Program.
- IELTS 7.0
- TOEFL (paper-based) 600
- TOEFL (internet-based) 100
- PTE Academic 66
Scholarships
Need-based financial aid
If you are unable to meet the full cost of attendance for Rochester without need-based aid or sponsorship from the University, you must submit the CSS PROFILE. The CSS PROFILE is used to determine your potential eligibility for need-based University of Rochester grant funding and must be completed each year of attendance. Due to limited resources, only a small number of international applicants will qualify for need-based financial aid from the University. Applicants unable to secure the needed funding to cover the cost of attendance either through private funds or sponsorship cannot be admitted to the University.
Merit Scholarships
All applicants, regardless of citizenship, are considered for merit scholarships. No additional documentation is required to compete for a merit scholarship. Since merit scholarships are awarded independent of a student’s need, you must still submit the appropriate documents with your application as described above to complete your application for admission.
The University of Rochester offers a comprehensive Computer Science program designed to equip students with the fundamental principles and practical skills necessary for success in the rapidly evolving field of computing. The program's curriculum includes a core set of foundational courses such as Introduction to Computer Science, Data Structures and Algorithms, Systems Programming, and Discrete Mathematics. These courses provide students with a solid understanding of programming concepts, software development, computational theory, and problem-solving techniques.
In addition to core courses, students have the opportunity to explore advanced topics including artificial intelligence, machine learning, computer graphics, cybersecurity, data science, and software engineering. The program emphasizes the importance of hands-on learning through programming projects, research opportunities, and collaborations with faculty members engaged in cutting-edge research. Students are encouraged to undertake internships and co-op positions to gain practical industry experience, which enhances employability upon graduation.
The university fosters a collaborative environment with state-of-the-art laboratories and resources to support student learning and research initiatives. Undergraduate students may also have access to specialized tracks or concentrations such as Human-Computer Interaction, Theory, or Data Science, allowing them to tailor their education to their interests and career goals.
The department promotes a strong research culture, with opportunities for students to participate in projects that advance the field. Faculty members are nationally recognized researchers, bringing expertise across a broad spectrum of computer science disciplines. The program prepares graduates for a variety of career paths, including software development, data analysis, hardware design, or pursuing graduate studies.
The interdisciplinary approach at the University of Rochester encourages students to integrate knowledge from other fields such as mathematics, engineering, and cognitive sciences, reflecting the diverse applications of computer science in solving real-world problems. Overall, the Computer Science program at the University of Rochester aims to produce well-rounded, innovative, and adaptable graduates ready to contribute to the technological advancements shaping our society.