Bachelor of Computer Science
Why Study Computer Science?
Computer science is not the study of computers, but rather the study of algorithms and information representation to make productive use of computing technologies. In our courses and scholarly work we seek to answer these four broad questions:
- What problems can be solved with the help of a computer?
- Given a solvable problem, how does one program a computer to produce a solution?
- Given a program, how does one measure (and improve) the program's efficiency?
- Given an efficient program, how does one verify that the program does in fact reliably and accurately solve the originally posed problem?
Computer Science is a mathematical, a scientific, and an engineering discipline. Studying computer science can be valuable in a variety of interdisciplinary pursuits in the sciences, social sciences, humanities and fine arts. The skills we teach our students, especially problem solving, analysis, creative design, and communication skills, serve them well in whatever area they choose to pursue.
Our small department and classes allow us to provide individual support to students and to tailor topics, projects, and internships to our students' interests. We were early adopters of the Internet for classroom learning, and continue to be quick to adapt to new teaching methods and technologies. Department members enjoy the flexibility of Cornell's One Course At A Time schedule in designing course strategies. A typical computer science course includes a lecture/discussion component, a closed lab component and an open lab component. Our
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 trouble-shoot problems as they arise. In open labs we invite more creative exploration and students work on their own schedules. At all levels we ask our students to read from recent periodicals and journals. Many classes require student presentations, both formal and informal; many also require student written work in the form of papers, not just programs. Cooperative work, including group projects, plays a significant role in our curriculum. We also encourage our majors to pursue individual projects, internships, or extended research. We offer many opportunities for our students to engage in the discipline outside the classroom including Student Symposium research presentations, International Collegiate Programming competitions, travel to professional meetings, visits to local industries, and summer research.
Like all faculty at Cornell our primary focus is teaching, and we are committed to the liberal arts. We continue to adapt and evolve our curriculum based on standards established by theAssociation for Computing Machinery (ACM) and the Institute of Electrical and Electronics Engineers (IEEE). For majors, the department has broad offerings, with a general focus on software design. Professors introduce students to programming using the Java language. Students in upper-level courses also solve problems using C, C++, Scheme, and other programming languages. In addition to our regular curriculum, each year we offer topics and advanced topics courses on subjects such as robotics, artificial intelligence, and bioinformatics. We strongly encourage our majors to pursue internships, individual projects, or group projects as part of their curriculum. Our projects and activities page illustrates recent opportunities pursued by our students.
Category: Computer Science