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.

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 may be accepted directly into the Computer Science major upon admission to the University. Currently enrolled students and transfer students may apply for acceptance to the major after completing CSE 114 and CSE 215 with grades of B- or higher and a grade point average of 3.00 or higher in these two courses. Only one of the two courses may be repeated. Transfer students who have completed equivalent courses at another school with grades of B or higher, need not retake CSE 114 and/or CSE 215, but may substitute the grade received in CSE 214 for CSE 114. (Students who also completed a course equivalent to CSE 214 may substitute the grade received in CSE 219.) Students must have completed course evaluations for all transferred courses that are to be used to meet requirements of the major.  Priority is given to students with a cumulative grade point average of 3.00 or higher.

Requirements for the Major

The major in Computer Science leads to the Bachelor of Science degree.  Completion of the major requires approximately 80 credits.  At least 24 credits from items 1 to 3 below, and at least 18 credits from items 2 and 3, must be completed at Stony Brook. 

1. Required Introductory Courses

Note: Students in the CSE Honors Program may substitute CSE 160, CSE 161 and CSE 260, CSE 261 Computer Science A, B: Honors with labs for CSE 114, 214 and 219.

2. Required Advanced Courses

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. At least one of the following natural science lecture/laboratory combinations:
BIO 201/204 or BIO 202/204 or BIO 203/204 or CHE 131/133 or CHE 152/154 or PHY 126/133 or PHY 127/133 or PHY 131/133 or PHY 141/133

8. Additional natural science courses selected from above and the following list:
AST 203, AST 205,CHE 132, CHE 321, CHE 322, CHE 331, CHE 332,GEO 102, GEO 103, GEO 112, GEO 113, PHY 125, PHY 132, PHY 134, PHY 142, PHY 251, PHY 252

Note: The courses selected in 7 and 8 must carry at least 12 credits.

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 assign­ments, 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.

Grading

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 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 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.

3. Project

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 five 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 Courses

a. 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 331 Computer Security Fundamentals
CSE 334 Introduction to Multimedia Systems
CSE 337 Scripting Languages
CSE 352 Artificial Intelligence
CSE 355 Computational Geometry
CSE 364 Advanced Multimedia Techniques
CSE 375 Concurrency
CSE 376 Advanced Programming in UNIX/C

3. Project

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 Computer Security

The specialization in Computer Security prepares students for a career as a security engineer, threat analyst, or security researcher. The courses under this specialization are taught by the computer science faculty affiliated with the National Security Institute. The specialization covers the fundamentals of security, while also exposing the student to some of the latest developments. 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 Courses

a. 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 331 Computer Security Fundamentals
d. CSE 360 Software Security, CSE 361 Web Security, CSE 362 Mobile Security, or CSE 363 Offensive 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 360 Software Security, CSE 361 Web Security, CSE 362 Mobile Security, or CSE 363 Offensive Security
CSE 375 Concurrency
CSE 376 Advanced Systems Programming in UNIX/C

3. Project

Completion of either CSE 487 Research in Computer Science or CSE 495, CSE 496 Senior Honors Research Projects I, II, on a topic in computer security. 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. 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 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 331 Computer Security Fundamentals
d. CSE 311 Systems Administration or CSE 337 Scripting Languages 

2. Two electives from the following:

CSE 304 Compiler Design
CSE 305 Principles of Database Systems
CSE 306 Operating Systems
CSE 311 Systems Administration
CSE 336 Internet Programming
CSE 337 Scripting Languages
CSE 360 Software Security, CSE 361 Web Security, CSE 362 Mobile Security, or CSE 363 Offensive Security
CSE 370 Wireless and Mobile Networking
CSE 376 Advanced Systems Programming in UNIX/C
Special topics courses in systems software development 

3. Project

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 intro­duc­tory 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 Systems Fundamentals I
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 312, CSE 475, CSE 487, CSE 488).  Note: CSE 301 can not be used as a technical elective for the minor.

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 under­graduate and graduate requirements. The M.S. degree can therefore be earned in less time than that re­quired 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.