The technology of computing has developed with unprecedented speed and offers the prospect of continued rapid advance. Few technologies have so quickly become so pervasive. Few have so profoundly changed science, business and industry, and government. Some understanding of the potential and limitations of computing is essential to anyone who wishes to understand modern society.
Design, experiment, and analysis: these skills make the computer scientist part engineer, part scientist, and part mathematician. The student of computer science learns how to effectively communicate with teammates and clients to define problems and their solutions. Students learn how to divide a complex problem into pieces of manageable size, to organize and relate the pieces of information that describe the problem, and to order the steps of the solution. The study of computer science serves to increase a student’s awareness of the necessity of constructing a hierarchy of abstractions as a means of building and understanding complex machines, the designer’s need to give balanced consideration to competing goals, e.g., minimizing cost while maximizing computational speed, and the relationship between software and hardware.
Computer science is best learned by doing, and Cornell's One Course At A Time schedule allows you to enjoy hands-on activities throughout your coursework. In small, collaborative classes, professors provide individual support to students as they move seamlessly between lectures and projects in the same classroom.
At all course levels, you will develop skills in teamwork, communication, and other important areas that go beyond writing code. You will collaborate on group projects, read from recent journals, write papers, present your work to your peers, and review the work of others. To complete your degree, you will develop a capstone project that builds on previous coursework and involves you in all phases of iterative software development.
Professors are focused on teaching undergraduates and continually adopt new teaching methods and technologies, following best practices from the Association for Computing Machinery (ACM) and the Institute of Electrical and Electronics Engineers (IEEE.)
Benefits of One Course At A Time
A typical computer science course includes a lecture and discussion component, a closed lab component, and an open lab component. Closed labs are similar in structure to physics or chemistry labs. The instructor sets up the exercise, provides tutorial assistance, and circulates among students to troubleshoot problems as they arise. Open labs invite more creative exploration, and you can work on your own schedule.
All classes enjoy dedicated classroom space, and you are free to work on projects beyond normal class meeting times.
Research and internships
You will be encouraged to extend your learning beyond the classroom, and you might choose to join Professor Ross Sowell in studying robotics, complete summer research at a larger school, pursue internships or work with Cornell's information technology staff. Professors in the department will come to know you well, and the detailed letters of recommendation they write often make a difference when applying for internships, research placements, or jobs.
You will also enjoy many other organized opportunities to explore your interests outside the classroom. You can tour local companies and research labs with faculty members, make trips to Chicago, attend professional meetings, gain advice from successful alumni, and compete in intercollegiate programming competitions.
Recent graduates have been very successful in finding employment directly after college in diverse computing fields across the country. Others have gone on to prestigious graduate programs, where they have studied topics ranging from data visualization to bioinformatics to computer engineering.
A minimum of 10.25-course credits, including 9.25 in Computer Science
- MAT 120 - Calculus of a Single Variable Part II (1) OR MAT 121 - Calculus of a Single Variable (1) OR STA 201 - Statistical Methods I (1)
The Courses in Computer Science Must Include
- CSC 140 - Foundations of Computer Science (1)
- CSC 144 - Software Architecture (1)
- CSC 151 - Discrete Mathematics for Computer Science (1)
- CSC 218 - Computer Organization (1)
- CSC 301 - Algorithms and Data Structures (1)
- CSC 512 - Professional Practice in Computer Science (1/4)
- At least four other 300-level courses OR three 300-level courses and CSC 270
One of the Four Required 300-Level Courses may be an Internship, Independent Study, or Original Project