Requirements for the Major and Minor in Computer Science (CSE)
Enrolling in CSE Courses
To enroll in CSE courses, students must:
Have completed all prerequisites with a grade of C or higher. (Pass/No Credit grades are not acceptable to meet prerequisites.) For transfer students, official transfer credit evaluations must have been completed and approved and the relevant proficiency examination for lower division courses, given during the first week of each semester, must have been taken and passed.
Failure to satisfy the prerequisites or to attend the first class may result in deregistration. The Pass/No Credit option is not available for CSE courses.
Acceptance into the Computer Science Major
Qualified freshman and transfer applicants may be accepted directly into the Computer Science major upon admission to the University. Currently enrolled students may apply for acceptance to the major after completing the following two courses with grades of C or higher and a grade point average of 3.0 or higher.1. CSE 114 Computer Science I
2. CSE 215 Foundations of Computer Science
Requirements for the Major
The major in Computer Science leads to the Bachelor of Science degree. At least five upper-division courses from items 2 and 3 below must be completed at Stony Brook.
Completion of the major requires approximately 80 credits.
1. Required Introductory Courses
- CSE 114 Computer Science I
- CSE 214 Computer Science II
- CSE 215 Foundations of Computer Science or CSE 150 Foundations of Computer Science: Honors
- CSE 219 Computer Science III
- CSE 220 Computer Organization and Systems
2. Required Advanced Courses
- CSE 303 Introduction to the Theory of Computation or CSE 350 Theory of Computation: Honors
- CSE 373 Analysis of Algorithms
- CSE 308 Software Engineering
- CSE 320 Computer Organization and Architecture
- Three courses chosen from: CSE 304, CSE 305, CSE 306, CSE 307, CSE 310/346, CSE 328. The three courses must include CSE 305 or CSE 306.
3. Computer Science Electives
Three upper-division CSE electives. Technical electives do not include teaching practica (CSE 475), the senior honors project (CSE 495, 496), and courses designated as non-technical in the course description (such as CSE 301).
4. AMS 151, AMS 161 Applied Calculus I, II
Note: The following alternate calculus course sequences may be substituted for AMS 151, AMS 161 in major requirements or prerequisites: MAT 125, MAT 126, MAT 127, or MAT 131, MAT 132, or MAT 141, MAT 142 or MAT 171. Equivalency for MAT courses achieved through the Mathematics Placement Examination is accepted to meet MAT course requirements.
5. One of the following:
6. Both of the following:
- AMS 301 Finite Mathematical Structures
- AMS 310 Survey of Probability and Statistics or AMS 311 Probability Theory or AMS 312 Mathematical Statistics
7. One of the following natural science sequences [Effective fall 2005]:
BIO 201, BIO 202, BIO 204 or BIO 201, BIO 203, BIO 204 or BIO 202, BIO 203, BIO 204 Fundamentals of Biology or CHE 131, CHE 132, CHE 133 or PHY 131/PHY 133, PHY 132/PHY 134 or PHY 141, PHY 142, PHY 133, PHY 134, or PHY 125, PHY 126, PHY 127 Classical Physics and PHY 133/PHY 134
8. Four additional credits from the above natural science courses: These courses can be in biology, chemistry, or physics. Advanced natural science courses may be substituted with the prior approval of the Department of Computer Science.
9. Professional Ethics
- CSE 312 Legal, Social, and Ethical Issues in Information Systems
10. Upper-Division Writing Requirement: CSE 300 Technical Communications
All degree candidates must demonstrate technical writing skills at a level that would be acceptable in an industrial setting. To satisfy the requirement, students must pass CSE 300, a course that requires the completion of various writing assignments, including at least one significant technical paper.
Note: All students are encouraged to discuss their program with an undergraduate advisor. In Requirement 2 above, CSE/ESE double majors may substitute ESE 440, ESE 441 Electrical Engineering Design I, II for CSE 308 Software Engineering provided that the design project contains a significant software component. Approval of the Department of Computer Science is required.
All courses taken to satisfy Requirements 1 through 10 must be taken for a letter grade. The courses in Requirements 1-6, 9, and 10 must be passed with a letter grade of C or higher. The grade point average for the courses in Requirements 7 and 8 must be at least 2.00. A grade of C or higher is also required in prerequisite courses listed for all CSE courses.
Specialization in Human-Computer Interaction
The specialization in human-computer interaction emphasizes both the psychology aspects of effective human-computer interactions and the technical design and implementation of systems for those interactions. It requires four core course, two electives, and a project. Students may declare their participation in the specialization after completing the courses in 1a and 1b. All courses must be completed with a grade of C or higher.
1. Core Courses
a. CSE 323 Human-Computer Interaction
b. PSY 260 Survey of Cognition and Perception
c. CSE 328 Fundamentals of computer Graphics or CSE 332 Introduction to Scientific Visualization
d. CSE 333 User Interface Development or PSY 384 Research Lab: Human Factors
2. Two electives from the following, including at least one CSE course:
- CSE 327 Fundamentals of Computer Vision
- CSE 328 Fundamentals of Computer Graphics
- CSE 332 Introduction to Scientific Visualization
- CSE 333 User Interface Development
- CSE 334 Introduction to Multimedia Systems
- CSE 336 Internet Programming
- CSE 352 Artificial Intelligence
- CSE 364 Advanced Multimedia Techniques
- CSE 366 Introduction to Virtual Reality
- CSE 378 Introduction to Robotics
- CSE 390-394 Special Topics in Computer Science*
- PSY 366 Human Problem Solving
- PSY 368 Sensation and Perception
- PSY 369 Special Topics in Cognition and Perception
- PSY 384 Research Lab: Human Factor
*Special topic must be in human-computer interaction.
Completion of CSE 487 Research in Computer Science or CSE 488 Internship in Computer Science or CSE 495/CSE 496 Senior Honors Research Project I, II, on a topic in human-computer interaction. The project may not be applied towards the requirements of another specialization.
Specialization in Game Programming
The specialization in game programming prepares students for a career as either a professional game developer or researcher. Game graphics and multiplayer network programming techniques are stressed. The specialization also emphasizes original game development, game design methodology, and team projects and presentations. It requires four core courses, two electives, and a project. Students may declare their participation in the specialization after completing the courses in 1a and 1b. All courses must be completed with a grade of C or higher.
1. Core Coursesa. CSE 306 Operating Systems
b. CSE 310 Data Communication and Networks or CSE 346 Computer Communications
c. CSE 328 Fundamentals of Computer Graphics
d. CSE 380 Computer Game Programming
e. CSE 381 Advanced Game Programming
2. Two electives from the following:CSE 304 Compiler Design
CSE 320 Computer Architecture
CSE 334 Introduction to Multimedia Systems
CSE 352 Artificial Intelligence
CSE 355 Computational Geometry
CSE 364 Advanced Multimedia Techniques
CSE 375 Concurrency
CSE 408 Network Security
Completion of CSE 487 Research in Computer Science or CSE 488 Internship in Computer Science or CSE 495/CSE 496 Senior Honors Research Project I, II, on a topic in game programming. The project may not be applied towards the requirements of another specialization.
Note: Students specializing in Game Programming are encouraged to complete the natural science sequence in physics, see part seven (7) of the Requirements for the Major in Computer Science.
Specialization in Information Assurance
The specialization in information assurance (IA) has been developed as part of the University's establishment of a Center for Cybersecurity and designation by the National Security Agency as a Center of Academic Excellence in Information Assurance Education. This is included in a multifaceted effort to expand and increase information assurance education and research. The specialization deals with the principles, design, development, and management of networks and software systems that provide high levels of assurance in the confidentiality, availability, and integrity of electronic information. It requires four core courses, two electives, and a project. Students may declare their participation in the specialization after completing the courses in 1a and 1b. All courses must be completed with a grade of C or higher.
1. Core Coursesa. CSE 310 Data Communication and Networks or CSE 346 Computer Communications
b. CSE 306 Operating Systems or CSE 376 Advanced Systems Programming in UNIX/C
c. CSE 408 Network Security
d. CSE 409 Computer System Security
2. Two electives from the following:CSE 305 Principles of Database Systems
CSE 306 Operating Systems
CSE 315 Database Transaction Processing Systems
CSE 336 Internet Programming
CSE 375 Concurrency
CSE 376 Advanced Systems Programming in UNIX/C
AMS 310 Survey of Probability and Statistics
AMS 311 Probability Theory
AMS 312 Mathematical Statistics
AMS 315 Data Analysis
AMS 335 Game Theory
AMS 341 Operations Research I: Deterministic Models
AMS 342 Operations Research II: Stochastic Models
EST 412 Intelligence Organizations, Technology, and Democracy
Completion of either CSE 487 Research in Computer Science or CSE 495, CSE 496 Senior Honors Research Projects I, II, on a topic in information assurance. The project may not be applied towards the requirements of another specialization.
Specialization in Systems Software Development
The specialization in systems software development prepares students for a career in software applications development or systems software development. Students may declare their participation in the specialization after completing the courses in 1a and 1b. All courses must be completed with a grade of C or higher.
1. Core Courses
a. CSE 310 Computer Networks or CSE 346 Computer Communications
b. CSE 306 Operating Systems or CSE 376 Advanced Systems Programming in Unix/C
c. CSE 408 Network Security or CSE 409 Computer System Security
d. CSE 311 Systems Administration or CSE 337 Scripting Languages
2. Two electives from the following:
Completion of CSE 487 Research in Computer Science or CSE 488 Internship in Computer Science or CSE 495/CSE 496 Senior Honors Research Project I, II, on a topic in systems software development. The project may not be applied towards the requirements of another specialization.
The Honors Program
The Honors Program in Computer Science, a highly selective academic program within the major in Computer Science, offers a specially designed curriculum to a limited number of exceptional students. The program is open to freshmen and to continuing students. To be admitted as a freshman, students must demonstrate overall academic excellence by achieving a combined SAT score of 1350 on the critical reading and math components of the SAT (with a score of 700 or higher in math), an unweighted high school average of 93 or higher (on a 100 point scale), and high grade averages in mathematics and the natural sciences. Continuing Computer Science majors who have completed at least three CSE courses and have maintained a cumulative grade point average of 3.50 and an average of 3.50 in CSE courses may apply for admission to the honors program in the sophomore or junior year. Continued participation in the program requires that students maintain a grade point average of 3.50, both cumulative and for all CSE courses.
Honors course offerings include introductory course sequences in programming and in the foundations of computing, advanced courses on selected topics that reflect active research areas within the Department, and a two-semester senior honors project. Students will be able to take at least one honors course each semester throughout a four-year program of study. Honors program students must complete the regular requirements of the Computer Science major. Final conferral of honors is contingent upon successful completion of all required courses in the Computer Science major including a minimum of three honors courses, plus the two-semester honors project, with a cumulative grade point average of 3.50 and an average of 3.50 for all CSE courses. (For this purpose, suitable advanced undergraduate courses and graduate courses may be counted as honors courses with prior approval of the department.)
Honors students in good standing at the end of the junior year will, on application, be recommended for admission to the five-year joint B.S./M.S. program in Computer Science. B.S./M.S. applicants who successfully complete the honors program may be considered for a tuition waiver in the fifth year as well as for a graduate student assistantship. (It is recommended that these students complete an undergraduate teaching practicum in the junior or senior year.)
Requirements for the Minor
The minor in Computer Science is open to all students not majoring in either Computer Science or Information Systems or minoring in Information Systems. To declare the minor in Computer Science, students must complete CSE 114 and either CSE 214 or CSE 215 with grades of C or higher. The minor requires seven CSE courses totaling 22 to 24 credits as outlined below.1. CSE 114 Computer Science I
2. CSE 214 Computer Science II
3. CSE 219 Computer Science III or CSE 220 Computer Organization and Systems Programming
4. Four additional courses that are part of the CSE major, including three upper division CSE courses totaling at least nine credits (but excluding CSE 300, CSE 475, CSE 487, CSE 488)
Note: Each of these courses must be passed with a letter grade of C or higher.
Joint B.S./M.S. Program
Computer Science majors may apply for admission to a special program that leads to a Bachelor of Science degree at the end of the fourth year and a Master of Science degree at the end of the fifth year. Students usually apply to the program in their junior year.
Students must satisfy the respective requirements of both the B.S. degree and the M.S. degree, but the main advantage of the program is that six credits may be simultaneously applied to both the undergraduate and graduate requirements. The M.S. degree can therefore be earned in less time than that required by the traditional course of study.
For more details about the B.S./M.S. program, see the undergraduate or graduate program director in the Department of Computer Science.