³Õºº¾ãÀÖ²¿

Requirements

Computer Science Major

Students majoring in computer science must complete the four courses in the core sequence (CSCI 2100 or CSCI 2101; CSCI 2102; CSCI 2200; and CSCI 2330), five additional electives 2000-level or above and one mathematics course 1300-level or above. The electives must satisfy the following distribution requirements: at least one in theory, at least one in systems, at least one in artificial intelligence, at least one projects course, and at least two 3000-level courses. ÌýÌýAn elective course may be used to satisfy multiple requirements (for e.g. CSCI 3325 Distributed Systems checks 3000-level, projects and systems). Each of the courses required for the major must be taken for a regular letter grade (not Credit/D/Fail) with a minimum earned grade of C-. Independent Studies and Honors Projects do not count towards the required courses for the major. Students who place in CSCI 1101 must take CSCI 1101 before starting the core sequence.

Core Courses4
°ä³§°ä±õÌý2100
Accelerated Data Structures and Advanced Programming I
´Ç°ùÌý°ä³§°ä±õÌý2101
Data Structures and Advanced Programming I
°ä³§°ä±õÌý2102
Data Structures and Advanced Programming II
°ä³§°ä±õÌý2200
Algorithms
°ä³§°ä±õÌý2330
Foundations of Computer Systems
Elective Courses in Algorithms/Theory b1
°ä³§°ä±õÌý2210
Theory of Computation
°ä³§°ä±õÌý3210
Computational Game Theory
°ä³§°ä±õÌý3225 Algorithms for GIS
°ä³§°ä±õÌý3225
Algorithms for GIS
°ä³§°ä±õÌý3240
Computational Complexity Theory
°ä³§°ä±õÌý3250
Computational Geometry
°ä³§°ä±õÌý3260
Quantum Computation
Elective Courses in Artificial Intelligence b1
°ä³§°ä±õÌý2400
Artificial Intelligence
°ä³§°ä±õÌý3465
Financial Machine Learning
°ä³§°ä±õÌý3725
Computational Creativity
°ä³§°ä±õÌý3485
Deep Learning for Computer Vision
Elective Courses in Systems b1
°ä³§°ä±õÌý2320
Principles of Programming Languages
°ä³§°ä±õÌý3310
Operating Systems
°ä³§°ä±õÌý3325
Distributed Systems
°ä³§°ä±õÌý3330
Cybersecurity
Elective Courses that fulfill the "projects" requirement b1
°ä³§°ä±õÌý2715
Human-Computer Interaction
°ä³§°ä±õÌý3225
Algorithms for GIS
°ä³§°ä±õÌý3325
Distributed Systems
°ä³§°ä±õÌý3465
Financial Machine Learning
°ä³§°ä±õÌý3485
Deep Learning for Computer Vision
°ä³§°ä±õÌý3725
Computational Creativity
Other Elective Courses b1
°ä³§°ä±õÌý2350
Social and Economic Networks
CSCI 2510 Computing, Ethics and Society
°ä³§°ä±õÌý2715 Human-Computer Interaction
Mathematics Requirement1
Select one mathematics course number 1300 or higher
Ìý
a

Students with a placement inÌý°ä³§°ä±õÌý2101 Data Structures and Advanced Programming I are exempt from taking CSCIÌý1101 Introduction to Computer Science or CSCIÌý1103 Accelerated Introduction to Computer Science

b

At least two of these courses must be at the 3000-level

Computer Science Minor

Ìý
The minor in computer science consists of °ä³§°ä±õÌý2100 Accelerated Data Structures and Advanced Programming I ´Ç°ùÌý°ä³§°ä±õÌý2101 Data Structures and Advanced Programming I, and (at least) three additional courses, numbered 2000 or higher. Independent studies in computer science cannot count toward the minor.

Interdisciplinary Major

The department participates in an interdisciplinary major program in computer science and mathematics. See the .

Additional Information and Department Policies

  • Students interested in majoring in computer science must complete °ä³§°ä±õÌý2102 Data Structures and Advanced Programming IIÌýwith a letter grade of C- or better by the end of their sophomore year. Prospective majors are also encouraged to satisfy their mathematics requirement as early as possible (ideally in their first two years).
  • Each of the courses required for the major or minor must be taken for a regular letter grade (not Credit/D/Fail) with a minimum earned grade of C-.

  • For all CSCI courses, a grade of C- or better must be earned in the course for it to serve as a prerequisite for another computer science course.

  • Independent Studies and Honors Projects do not count towards the required courses for the major.

  • At most two of the ten computer science courses required for the major, or one of the four computer science courses required for the minor, can be transfer credit from other institutions. Transfer credit cannot be used to fulfill the 3000-level requirement.

  • Majors may double-count one course with another department or program. Minors may not double-count any courses with another department or program.Ìý

  • Advanced Placement and International Baccalaureate scores, in addition to the computer science placement survey, are only used for placement.

  • Students—particularly those who intend to do graduate work in computer science—are encouraged to collaborate with faculty on research projects through independent studies, honors projects, and fellowship-funded summer research.

Information for Incoming Students

Students interested in computer science start with one of two courses, based on the computer science and mathematics placement surveys:

  • CSCIÌý1101 Introduction to Computer ScienceÌý or
  • CSCI 2100ÌýAccelerated Data Structures and Advanced Programming I

CSCIÌý1101 Introduction to Computer Science Ìýis the entry point for students with no prior background in computer science. It is an introduction to programming, computational thinking and problem solving using the Python programming language.Ìý

CSCI 2100 Accelerated Data Structures and Advanced Programming IÌýis the entry point for students with a background in computer science (e.g. from AP classes), which usually includes some knowledge of data structures and Java.Ìý CSCI 2100Ìýcovers the same materials as CSCI 1101 Introduction to Computer Science + CSCI 2101 Data Structures and Advanced Programming I at an accelerated pace. It starts with a crash course into Python (which is used in the upper level AI electives), Ìýfollowed by the standard data structures and Java curriculum from CSCI 2101.Ìý

These two classes are the entry points for the two pathways into the computer science curriculum:

  • CSCI 1101 --> CSCI 2101 --> CSCI 2102:Ìý ÌýStart with CSCIÌý1101 Introduction to Computer Science, continue with °ä³§°ä±õÌý2101 Data Structures and Advanced Programming I and °ä³§°ä±õÌý2102 Data Structures and Advanced Programming II
  • CSCI 2100 --> CSCI 2102:Ìý Start with CSCI 2100 Accelerated Data Structures and Advanced Programming I and continue with °ä³§°ä±õÌý2102 Data Structures and Advanced Programming IIÌý

Placements are binding and may not be overridden without permission of the department.Ìý

Students with a placement of CSCI 2100 should note that this course is normally offered only in the fall; CSCIÌý1101 Introduction to Computer Science and °ä³§°ä±õÌý2101 Data Structures and Advanced Programming I are offered every semester.Ìý

Math placements:Ìý

  • Students with a placement of ofÌý Quantitative Reasoning should completeÌýMATHÌý1050 Quantitative ReasoningÌýbefore taking a computer science course.
  • Students with a placement of Differential Calculus should complete MATHÌý1600 Differential CalculusÌýbefore taking °ä³§°ä±õÌý2100 Accelerated Data Structures and Advanced Programming IÌý or °ä³§°ä±õÌý2101 Data Structures and Advanced Programming I.

CS + X:

Can you live in today's world without understanding computational problem solvingÌýand basic programming?ÌýStudents are strongly encouraged to take their first computer science course during their first year, when they have priority registration.Ìý Students who intend to pursue a computer science major are required to complete °ä³§°ä±õÌý2102 Data Structures and Advanced Programming II with a letter grade of C- or above by the end of their sophomore year.ÌýÌý

Prior knowledge of computer science is used for placement only and does not count as credit towards the major. Students with any questions about appropriate placement should talk to a member of the department prior to registration.


This is an excerpt from the official ³Õºº¾ãÀÖ²¿ College Catalogue and Academic Handbook.