U of C Computer Science Degree Programs
Computer science enrolment at U of C has nearly quadrupled in the past decade. This is consistent with a wider trend across universities in the US and Canada.
Introduces the UNIX environment and programming with DrScheme and shell scripting (ksh). Covers the C programming language, recursion, higher-order functions, formal semantics, and standard Unix data structures.
Students pursuing either the BA or BS degree in Computer Science must complete a minimum of 58 hours of course work, including Foundation, Core, Capstone and Computing Elective courses. CS majors are expected to complete these courses with quality grades; the Department enforces grade requirements for all upper-division course work used to fulfill major and degree requirements.
This sequence introduces the discipline of computer science through a study of programming languages, both functional (Scheme) and imperative (C). Programming concepts such as abstraction, control and data structures, recursion and induction, and standard data structures are studied. The C programming language is taught in the context of the Unix system, and there are a variety of team programming assignments using shell scripting (specifically ksh) as well as nonshell scripting languages like perl and python.
The design and implementation of computer systems. Architectures, logic gates, interconnects, memory hierarchies and algorithms that optimize functionality, performance, energy and cost. Extensive computer use required.
CS electives allow students to tailor their major to their interests, exploring topics from advanced programming to human-computer interaction. Students can also gain experience in their chosen area of computer science through field experiences/internships, independent study or undergraduate research.
A minimum grade of B- is required in all lower-division courses used to satisfy major requirements, and a minimum grade of C- is required for upper-division course work (including CS 490). Students with at least one C in lower-division coursework may petition to register for a higher-level class, subject to approval by the department.
CS Major Advisors are available to help students plan their curriculum and select appropriate electives. Adviser consultation is particularly important when considering credits for specializations or substitutions of a minor, second major, or university requirements.
Students are able to engage in research at the undergraduate level with guidance from faculty mentors. Projects can be focused on theoretical questions in computer science or at the intersection with other disciplines such as biology, physics, psychology or political science.
The program also offers an honors option for students. Successful completion of the honors thesis requires the student to write a substantial research paper and defend it before a committee consisting of the thesis advisor and two additional faculty members.
The department hires a mix of tenure-track and instructional faculty. Tenure-track candidates should demonstrate potential for excellence in cutting-edge research and teaching within the discipline. Responsibilities include conducting research, advising graduate students and making service/outreach contributions to the department, the college and the university. All positions require a CV, research statement and teaching statement. Applicants are required to self-disclose any history of misconduct and to provide a release to permit a background and credit check.
Students who choose the thesis option must produce a dissertation that includes significant original research in computer science. They will defend their work in a public forum. The format for the defense will be determined by their examination committee. It will usually include a presentation of the research followed by a public question period and a private question period. Students should consult the Graduate School for forms and resources related to the thesis defense process.
The thesis must be written at an advanced level and show competence in scholarly exposition. It must report original investigations at an advanced level on a chosen area of computer science and should constitute a publishable contribution to the field.
The department has well-equipped lab areas for research in the following areas: computer graphics, computational geometry, computational biology, commutative algebra, cryptanalysis, databases and digital libraries, distributed systems, human-computer interaction, natural language processing, natural-recognition, programming systems, scientific computing, and robotics. The labs are open to faculty, graduate students, and visiting researchers.