ACADEMIC PROGRAMS

< Back to Program List

Undergraduate: Computer Science

  • Program Overview

    Department Information - Computer Science (CSE)

    Computer science is the study of computer systems, including the architecture of computers, development of computer software, information processing, computer applications, algorithmic problem-solving, and the math­e­matical foundations of the discipline.

    The Computer Science major provides professional education in computer science to prepare the student for graduate study or for a career in the computing field. Students learn concepts and skills needed for designing, programming, and applying computer systems while also learning the theoretical and mathematical foundations of computer science. They have sufficient freedom in the program to pursue other academic interests in the liberal arts, sciences, and engineering to complement their study of computer science. The Computer Science program is accredited by the Computing Accreditation Commission of ABET, http://www.abet.org.

    Many students prepare for their professional careers through internships at local companies. Computer science graduates are recruited heavily, and career opportunities include developing software systems for a diverse range of applications such as: user interfaces; networks; databases; forecasting; web technologies; and medical, communications, satellite, and embedded systems. Many are employed in the telecommunication and financial industries, and some are self-employed as heads of software consulting companies.

    The Department of Computer Science offers two undergraduate majors: Com­pu­ter Science and Information Systems. Requirements and courses for the latter ap­pear under the program title in the al­phabetical listings of Approved Majors, Minors, and Programs. The two programs of study share a number of courses, particularly in the first two years, so that it is possible to follow a program that permits a student to select either major by the start of the junior year. The Department also offers a minor in computer science, a joint B.S./M.S. program, and an honors program.

    Program Educational Objectives

    The graduates of the computer science program will, within 3-5 years after graduation:

    • Establish themselves as practicing professionals or engage in advanced study and
    • Advance professionally through organized training or self-learning.

    Student Outcomes

    The students will demonstrate the following:

    1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
    2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program's discipline.
    3. Communicate effectively in a variety of professional contexts.
    4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
    5. Function effectively as a member or leader of a team engaged in activities appropriate to the program's discipline.
    6. Apply computer science theory and software development fundamentals to produce computing-based solutions.

    Computing Facilities

    Computing facilities for undergraduates are maintained by both the University Computing Center and the Department of Computer Science. For a description of the computing services provided by the University Computing Center, see the Student Services section of this Bulletin.

    The Department of Computer Science provides additional laboratories to support undergraduate instruction and research. The laboratory facilities are regularly upgraded to keep pace with ad­van­ces in technology. Current computing fa­cilities include the Computer Science Under­graduate Computing Laboratory; the Programming Techniques Teaching Lab­oratory with facilities for classroom instruction; the Computer Associates Trans­actions Laboratory, used primarily for upper-level courses on databases, transaction processes, and Web applications; the Computer Science Advanced Programming Laboratory, also donated by Computer Associates, Inc., which provides computing support for upper-level courses on such topics as operating systems and user interfaces; and the Com­puter Science Multimedia Labora­tory, used for courses on multimedia design. Most of the laboratories are connected to the Internet via the campus network and are easily accessible by students from campus residences or from off-campus via modem.

    The Departmental research laboratories are available to undergraduate students working on supervised projects with computer science faculty.

     

  • Degrees and Requirements

    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 and transfer students who have indicated their interest in the major on their applications may be admitted directly as a degree major or as a pre-major. Pre-majors are placed into the Area of Interest (AOI) program and to be eligible for the degree, they must be admitted to and declare the major. The requirements and application process for matriculation are detailed below. Students admitted to other programs within the College of Engineering and Applied Science (CEAS) follow the same admissions process as students in the AOI program. Students in programs outside of CEAS (non-CEAS students) and double major applicants may apply for admission to the degree program following a separate process, outlined below.

    Intellectual honesty and academic integrity are cornerstones of academic and scholarly work. The department may table any applications for major/minor admission until academic judiciary matters are resolved. An academic judiciary matter will be identified by a grade of “Q” in the instance of a first offense.

    Area of Interest and Other CEAS Students (excluding double major applicants)
    Applications for major admission from AOI and other CEAS students are reviewed twice per year and must be received by January 5 for Spring admission and June 5 for Fall admission. Students who submit their application on time will be admitted if they meet the following requirements:

    • Completed CSE 114, CSE 214, and CSE 215. (Honors students may substitute CSE 160, CSE 260, and CSE 150.) Transfer students matriculating at Stony Brook with credit for some (but not all) of these courses must complete the remaining course(s) before applying for major admission. Transfer students matriculating at Stony Brook with credit for all three courses must work with a CSE advisor to identify an appropriate course to complete before applying for major admission. Once a student matriculates at Stony Brook, these courses must be taken at Stony Brook University. 
    • Earn grades of B- or higher and a grade point average of 3.20 or higher in the above courses (Transfer students who have completed equivalent courses at another school with grades of B- or higher need not retake these courses, but should keep in mind that grades do not transfer and grade point averages are calculated on the basis of courses completed at Stony Brook).
    • Repeated at most one of these courses. 
    • Earned a cumulative grade point average of 3.00 or higher. 

    Students must complete these requirements no later than one year after they enroll in the first course that applies towards major entry. Students must apply for admission by the application deadline immediately following completion of the above requirements, but no later than the one year limit. Admission of AOI students and other CEAS students who apply late will follow the process of Non-CEAS Students and Double Major Applicants below.

    Non-CEAS Students and Double Major Applicants
    Applications for major admission from non-CEAS students and double major applicants are reviewed twice per year and must be received by January 5 for Spring admission and June 5 for Fall admission. Students who do not meet the requirements for AOI admission above will not be considered. Fulfilling the requirements does not guarantee acceptance. Admission is competitive and contingent upon program capacity.

    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

    • CSE 114 Introduction to Object-Oriented Programming
    • CSE 214 Data Structures
    • CSE 215 Foundations of Computer Science or CSE 150 Foundations of Computer Science: Honors
    • CSE 216 Programming Abstractions
    • CSE 220 Systems Fundamentals I

    Note: Students may substitute the four courses CSE 160, CSE 161, CSE 260 and CSE 261 for the three courses CSE 114, CSE 214 and CSE 216.

    2. Required Advanced Courses

    • CSE 303 Introduction to the Theory of Computation or CSE 350 Theory of Computation: Honors
    • CSE 310 Computer Networks
    • CSE 316 Fundamentals of Software Development
    • CSE 320 Systems Fundamentals II
    • CSE 373 Analysis of Algorithms or CSE 385 Analysis of Algorithms: Honors
    • CSE 416 Software Engineering

    3. Computer Science Electives

    Four upper-division technical CSE electives, each of which must carry at least three credits. 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:

    • MAT 211 Introduction to Linear Algebra
    • AMS 210 Applied Linear Algebra

    6. Both of the following:

    • AMS 301 Finite Mathematical Structures
    • AMS 310 Survey of Probability and Statistics or AMS 311 Probability Theory 

    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 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, GEO 122, PHY 125, PHY 127, PHY 132, PHY 134, PHY 142, PHY 251, PHY 252

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

    9. Professional Ethics

    • CSE 312 Social, Legal, and Ethical Issues in Computing

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

    Specializations

    In consultation with a program director, students have the option to select an area of specialization. This allows the student to take a subset of courses, promoting in-depth exploration in the various fields of computer science. All courses taken to fulfill the requirements of a specialization must be completed with a grade of C or higher. 

    Specialization in Artificial Intelligence and Data Science

    The specialization in artificial intelligence and data science emphasizes modern approaches for building intelligent systems using machine learning. It requires four courses selected from the list below. The four courses must include at least two core courses. Students may declare their participation in the specialization after completing two core courses. 

    1. Core Courses

    1. CSE 351 Introduction to Data Science
    2. CSE 352 Artificial Intelligence
    3. CSE 353 Machine Learning
    4. CSE 357 Statistical Methods for Data Science

    2. Electives

    • CSE 323 Human-Computer Interaction
    • CSE 327 Fundamentals of Computer Vision
    • CSE 332 Introduction to Visualization
    • CSE 337 Scripting Languages
    • CSE 354 Natural Language Processing
    • CSE 371 Logic
    • CSE 378 Introduction to Robotics
    • CSE 390-394 Special Topics in Computer Science*
    • CSE 487 Research in Computer Science*, CSE 495 Senior Honors Research Project I or CSE 496 Senior Honors Research Project II* 

    *Special topic or research project must be in artificial intelligence or data science.

    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 courses, two electives, and a project. Students may declare their participation in the specialization after completing the courses in 1a and 1b. 

    1. Core Courses

    a. CSE 323 Human-Computer Interaction
    b. PSY 260 Survey in Cognition and Perception
    c. CSE 328 Fundamentals of computer Graphics or CSE 332 Introduction to Visualization
    d. CSE 333 User Interface Development

    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

    *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 four core courses, two electives, and a project. Students may declare their participation in the specialization after completing two core courses. 

    1. Core Courses

    a. CSE 306 Operating Systems
    b. CSE 328 Fundamentals of Computer Graphics
    c. CSE 380 2D Game Programming
    d. CSE 381 3D Game Programming

    2. Two electives from the following:

    CSE 327 Fundamentals of Computer Vision
    CSE 331 Computer Security Fundamentals
    CSE 332 Introduction to Visualization
    CSE 334 Introduction to Multimedia Systems
    CSE 352 Artificial Intelligence
    CSE 353 Machine Learning
    CSE 355 Computational Geometry
    CSE 364 Advanced Multimedia Techniques
    CSE 376 Advanced Programming in UNIX/C
    CSE 378 Introduction to Robotics

    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 Security and Privacy

    The specialization in Security and Privacy prepares students for a career as a security engineer, threat analyst, or security / privacy 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 and privacy, while also exposing the student to some of the latest developments. Students may declare their participation in the specialization after completing one of the core courses and at least two other courses that fall under (1) or (2). 

    1. Core Courses

    a. CSE 331 Computer Security Fundamentals
    b. CSE 360 Software Security, CSE 361 Web Security, CSE 362 Mobile Security, or CSE 363 Offensive Security 

    2. Three electives from the following, not to include any course taken as a core course. Note that at most one course from each item may be used to satisfy the specialization requirements.

    CSE 360 Software Security
    CSE 361 Web Security
    CSE 362 Mobile Security
    CSE 363 Offensive Security
    CSE 304 Compiler Design or CSE 307 Principles of Programming Languages
    CSE 306 Operating Systems or CSE 356 Cloud Computing or CSE 376 Advanced Systems Programming in UNIX/C
    CSE 390-394 Special Topics in Computer Science*
    CSE 487 Research in Computer Science*, CSE 495 Senior Honors Research Project I or CSE 496 Senior Honors Research Project II*

    * The special topic or project course must be in computer security.

    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 two of the courses listed below. 

    Five of the following courses are required, at most two of which may be drawn from CSE 331, CSE 360-363:

    CSE 304 Compiler Design
    CSE 306 Operating Systems
    CSE 311 Systems Administration
    CSE 331 Computer Security Fundamentals
    CSE 356 Cloud Computing
    CSE 360 Software Security
    CSE 361 Web Security
    CSE 362 Mobile Security
    CSE 363 Offensive Security
    CSE 376 Advanced Systems Programming in Unix/C
    CSE 390-394: Special Topics in Computer Science*            
                
    *Special topics courses must be in systems software development. 

    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 at least 1430 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 meet all the following criteria may apply to the Computer Science honors program: have U2 standing or higher, completed at least two technical CSE courses and earned a weighted average of 3.50 in all CSE courses, and earned a cumulative grade point average of 3.50. Students whose GPA drops below the Honors requirements may be asked to leave the program. 

    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 during most of the semesters in 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, the two-semester honors project, a minimum of three honors courses in addition to the project, and a grade point average of at least 3.50, both cumulative and in CSE courses. Graduate courses may be counted as honors courses with prior approval of the department. The teaching practicum CSE 475 may be substituted for one of the honors courses. Other suitable advanced undergraduate courses may be counted as honors courses with prior approval of the department. The requirement of three honors courses can be relaxed to one course for students with at least a 3.75 grade point average, both overall and for CSE courses. 

    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 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 (or 160) and either CSE 214 (or 260) or CSE 215 (or 150) with grades of B-  or higher in each course. Priority is given to students with a GPA of 3.20 or higher in these CSE courses and a cumulative GPA of 3.00 or higher. For students who have completed more than two CSE courses applicable towards minor entry, the GPA in CSE courses is computed using the highest grades earned in two of CSE 114, CSE 214 and CSE 215. At most one of the courses used to meet minor entry requirements may be repeated. Transfer students who have completed equivalent courses at another school with grades of B- or higher need not retake these courses, but should keep in mind that grades do not transfer and grade point averages are calculated on the basis of courses completed at Stony Brook. Only courses transferred before matriculation can be used for CSE minor admission purposes. Admission is competitive and contingent upon program capacity.

    The minor requires seven CSE courses totaling 22 to 24 credits as outlined below. Students who have declared the minor should see a Computer Science Undergraduate Advisor to discuss a suitable selection of Computer Science electives.

    1. CSE 114  Introduction to Object Oriented Programming
    2. CSE 214  Data Structures
    3. CSE 216  Programming Abstractions 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: Students may substitute CSE 160, CSE 161, CSE 260, and CSE 261 for CSE 114, CSE 214 and CSE 216; and CSE 150 for CSE 215.

    Each course taken to satisfy the requirements for the minor 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 nine 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.

  • Sequence

    Sample Course Sequence for the Major in Computer Science

    For more information about SBC courses that fulfill major requirements, click here.

    FRESHMAN

    FALL Credits
     First Year Seminar 101 1
     WRT 101 3
     CSE 101 (TECH)
     AMS 151 (QPS) 3
     Natural Science (SNW) 3
    SBC 3
    Total 16
     
    SPRING Credits
     First Year Seminar 102 1
     WRT 102 (WRT) 3
     AMS 161 3
     Natural Science  3
     CSE 114 (TECH)  4
     Total  14
     
    SOPHOMORE

    FALL Credits
    CSE 214  4
    CSE 215 4
    SBC 3
    Natural Science 3
    SBC 3
     Total  17
     
    SPRING Credits
    CSE 216  4
    CSE 220  4
    AMS 210  
     3
    SBC  3
     Total 14
     
    JUNIOR

    FALL Credits
    CSE 300 (SPK & WRTD)  3
    CSE 316 3
    CSE 303  3
    AMS 301  3
    SBC  3
     Total  15
     
    SPRING Credits
    CSE 312 (STAS, CER, ESI) 3
    CSE 320 3
    CSE 373 3
    Elective 3
    AMS 310
     3
     Total  15
     
    SENIOR

    FALL Credits
    CSE 416
    CSE technical elective  3
    CSE 310  3
    Elective 3
    Elective  3
     Total 15
     
    SPRING Credits
    CSE technical elective  3 
    CSE technical elective 3
    CSE technical elective  3 
    Elective  3
    Elective
     3
      Total  15

    Notes:

    • SBC refers to the following categories: DIV, HUM, SBS, ARTS, USA, GLO
    • Students may satisfy the Pursue Deeper Understanding category of the SBC by completing CSE 316 and CSE 416.
  • Contact

    Computer Science (CSE)

    Major and Minor in Computer Science

    Department of Computer Science, College of Engineering and Applied Sciences

    Chair: Samir Das

    Undergraduate Program Director: Kevin McDonnell

    Undergraduate Advisor: Paul Fodor

    Undergraduate Program Coordinator: Sara Gergen

    Office: 101 New Computer Science Building

    Phone: (631) 632-8470

    Email: csugcomm@cs.stonybrook.edu

    Website: http://www.cs.stonybrook.edu 

     

     

     

  • Courses
top
©