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:

    a. An ability to apply knowledge of computing and mathematics appropriate to the program’s student outcomes and to the discipline;
    b. An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution;
    c. An ability to design, implement, and evaluate, a computer-based system, process, component or program to meet desired needs;
    d. An ability to function effectively on teams to accomplish a common goal;
    e. An understanding of professional, ethical, legal, security and social issues and responsibilities.
    f. An ability to communicate effectively with a range of audiences;
    g. An ability to analyze the local and global impact of computing on individuals, organizations, and society;
    h. Recognition of the need for and an ability to engage in continuing professional development;
    i. An ability to use current techniques, skills, and tools necessary for computing practice;
    j. An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices;
    k. An ability to apply design and development principles in the construction of software systems of varying complexity.

    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.

    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 at least ten credits of required technical CSE courses, including CSE 114 and CSE 215,
        • Receive grades of B- or higher in required technical CSE courses and a grade point average of 3.20 or higher in these 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, and
        • Completed course evaluations for all transferred courses that are to be used to meet requirements of the major (only courses         transferred before matriculation can be used for CSE major admission purposes).

    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 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 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
    • AMS 326 Numerical Analysis

    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 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, GEO 122, PHY 125, 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 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 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. A grade of C or higher is also required in prerequisite courses listed for all CSE courses.

    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.

    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. All courses must be completed with a grade of C or higher. 

    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* 

    *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. 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 four core courses, two electives, and a project. Students may declare their participation in the specialization after completing two core courses. All courses must be completed with a grade of C or higher.

    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 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 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 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 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 have completed at least two 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. 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

    A course planning guide for this major may be found hereThe major course planning guides are not part of the official Undergraduate Bulletin, and are only updated periodically for use as an advising tool. The Undergraduate Bulletin supersedes any errors or omissions in the major course planning guides.  

    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 (five) categories: 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 Advisors: Paul Fodor, Richard McKenna

    Undergraduate Program Coordinators: Sara Gergen, Molly Kelly

    Office: 101 New Computer Science Building

    Phone: (631) 632-8470

    Email: csugcomm@cs.stonybrook.edu

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

     

     

     

  • Courses
top
©