COMPUTER SCIENCE (CSE) Fall 2024
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 Coordinators: Sara Gergen and Noelle Pluschau
Office: 231 Engineering Building
Phone: (631) 632-8470
Website: http://www.cs.stonybrook.edu
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 mathematical 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: Computer Science and Information Systems. Requirements and courses
for the latter appear under the program title in the alphabetical 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.
Stony Brook University: www.stonybrook.edu/ugbulletin 1
COMPUTER SCIENCE (CSE) Fall 2024
The Department of Computer Science provides additional laboratories to support undergraduate instruction and research. The laboratory facilities
are regularly upgraded to keep pace with advances in technology. Current computing facilities include the Computer Science Undergraduate
Computing Laboratory; the Programming Techniques Teaching Laboratory with facilities for classroom instruction; the Computer Associates
Transactions 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 Computer Science Multimedia Laboratory, 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.
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
Stony Brook University: www.stonybrook.edu/ugbulletin 2
COMPUTER SCIENCE (CSE) Fall 2024
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. 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 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 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
Stony Brook University: www.stonybrook.edu/ugbulletin 3
COMPUTER SCIENCE (CSE) Fall 2024
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.
Stony Brook University: www.stonybrook.edu/ugbulletin 4
COMPUTER SCIENCE (CSE) Fall 2024
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
Stony Brook University: www.stonybrook.edu/ugbulletin 5
COMPUTER SCIENCE (CSE) Fall 2024
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 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 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 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.
Sample Course Sequence for the Major in Computer Science
For more information about SBC courses that fulfill major requirements, click here.
FRESHMAN
FALL Credits
Stony Brook University: www.stonybrook.edu/ugbulletin 6
COMPUTER SCIENCE (CSE) Fall 2024
First Year Seminar 101 1
WRT 101 3
CSE 101 (TECH) 4
AMS 151 (QPS) 3
Natural Science (SNW) 3
SBC 3
Total 17
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
Stony Brook University: www.stonybrook.edu/ugbulletin 7
COMPUTER SCIENCE (CSE) Fall 2024
CSE 320 3
CSE 373 3
Elective 3
AMS 310 3
Total 15
SENIOR
FALL Credits
CSE 416 3
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.
Stony Brook University: www.stonybrook.edu/ugbulletin 8
COMPUTER SCIENCE (CSE) - COURSES Fall 2024
CSE
Computer Science
CSE 101: Computer Science Principles
Introduces central ideas of computing
and computer science, instills practices of
algorithmic and computational thinking,
and engages students in the creative aspects
of the field. Also introduces appropriate
computing technology as a means for solving
computational problems and exploring
creative endeavors. Includes weekly computer
programming assignments, but assumes no
previous programming experience. May not be
taken by students with credit for CSE 114 or
CSE 160.
Prerequisite: Level 3 or higher on the
mathematics placement examination
Anti-requisite: May not be taken by students
with credit for CSE 114 or CSE 160
SBC: TECH
4 credits
CSE 102: Introduction to Web Design
and Programming
An introduction to the design of Web pages,
specifically the development of browser and
device independent HTML, with an emphasis
on the XHTML standards. Includes the use of
style sheets (CSS) and tools for page layout
and verification. HTML is presented as a
mark-up language, exploring the rules of
HTML elements and attributes. Students learn
the separation of page viewing information
from the HTML through CSS style sheets
as well as the use of block layout without
using HTML tables. Addresses HTML display
properties including text, color, image, and
graphic elements as well as approaches to
HTML validation and techniques.
Advisory Prerequisite: CSE 101 or basic
computer skills
SBC: TECH
3 credits
CSE 110: Introduction to Computer
Science
An introduction to fundamentals of computer
science. Topics covered include algorithmic
design, problem-solving techniques for
computer programming, fundamentals of
digital logic and computer organization, the
role of the operating system, introductory
programming methodology including
variables, assignment statements, control
statements and subroutines (methods),
programming paradigms, the compilation
process, theoretical limits of computation,
social and ethical issues. Intended for students
who have not taken any college-level computer
science course containing programming
assignments in a high-level programming
language.
Prerequisite: Level 3 or higher on the
mathematics placement examination
SBC: TECH
3 credits
CSE 113: Foundations of Computer
Science I
Introduction to the mathematical foundations
of computer science. Topics include logic
(propositional and predicate); proof techniques
(induction/recursion, contradiction, and
others); and key concepts of mathematical
structures (sequences, sets, functions, relations,
and graphs). Not for credit in addition to CSE
215.
Prerequisite: AMS 151 or MAT 125 or MAT
131 or level 6 on the mathematics placement
examination
4 credits
CSE 114: Introduction to Object-
Oriented Programming
An introduction to procedural and object-
oriented programming methodology. Topics
include program structure, conditional
and iterative programming, procedures,
arrays and records, object classes,
encapsulation, information hiding, inheritance,
polymorphism, file I/O, and exceptions.
Includes required laboratory. This course has
been designated as a High Demand/Controlled
Access (HD/CA) course. Students registering
for HD/CA courses for the first time will have
priority to do so.
Prerequisite: Level 5 or higher on the math
placement exam
Advisory Prerequisite: CSE 101 or ISE 108
SBC: TECH
4 credits
CSE 130: Introduction to Programming
in C
Introduces programming concepts using
the C language. Variables, data types, and
expressions. Conditional and iterative
statements, functions, and structures. Pointers,
arrays, and strings. Scope of variables and
program organization. Includes programming
projects of an interdisciplinary nature. Suitable
as an introductory programming course for
non-CSE majors.
Prerequisite: Level 3 or higher on the
mathematics placement examination
3 credits
CSE 150: Foundations of Computer
Science: Honors
Introduction to the logical and mathematical
foundations of computer science for computer
science honors students. Topics include
functions, relations, and sets; recursion and
functional programming; basic logic; and
mathematical induction and other proof
techniques.
Prerequisite: one MAT course that satisfies
D.E.C. C or QPS or score of level 4 on the
math placement exam; admission to Honors
in Computer Science or the Honors College
or the WISE Honors Program or University
Scholars or Simons STEM Scholars Program.
4 credits
CSE 160: Computer Science A: Honors
First part of a two-semester sequence,
CSE 160 and CSE 260. An introduction to
procedural and object-oriented programming
methodology and basic data structures. Topics
include program structure, conditional and
iterative programming, procedures, arrays,
object classes, encapsulation, information
hiding, inheritance, polymorphism, file I/O,
exceptions and simple data structures, such as
lists, queues and stacks.
Prerequisite: Honors in Computer Science
or the Honors College or the WISE Honors
Program or University Scholars or the Simons
STEM Scholars Program.
Advisory Prerequisite: CSE 101
SBC: TECH
3 credits
CSE 161: Laboratory for Computer
Science A: Honors
Must be taken concurrently with lecture
component, CSE 160; a common grade for
both courses will be assigned. Laboratory
sessions will focus on development of
pragmatic programming skills and use of
programming environments and tools in a
supervised setting.
Corequisite: CSE 160
1 credit
CSE 190: Special Topics in Practice
and Applications of Computer Science
A lecture course on a current topic in the
practice and application of computer science.
May be repeated as the topic changes.
SBC: TECH
3 credits
CSE 191: Special Topics in Practice
and Applications for Computer Science
Stony Brook University: www.stonybrook.edu/ugbulletin 9
COMPUTER SCIENCE (CSE) - COURSES Fall 2024
A lecture course on a current topic in the
practice and application of computer science.
May be repeated as the topic changes.
SBC: TECH
3 credits
CSE 192: Special Topics in Practice
and Applications for Computer Science
A lecture course on a current topic in the
practice and application of computer science.
May be repeated as the topic changes.
SBC: TECH
3 credits
CSE 214: Data Structures
An extension of programming methodology
to data storage and manipulation on complex
data sets. Topics include: programming
and applications of data structures; stacks,
queues, lists, binary trees, heaps, priority
queues, balanced trees and graphs. Recursive
programming is heavily utilized. Fundamental
sorting and searching algorithms are examined
along with informal efficiency comparisons.
Prerequisite: C or higher in CSE 114
4 credits
CSE 215: Foundations of Computer
Science
Introduction to the logical and mathematical
foundations of computer science. Topics
include functions, relations, and sets;
recursion; elementary logic; and mathematical
induction and other proof techniques. Not for
credit in addition to CSE 113.
Prerequisite: AMS 151 or MAT 125 or MAT
131
4 credits
CSE 216: Programming Abstractions
Intermediate-level programming concepts and
paradigms, including functional programming,
object-orientation, basics of type systems,
memory management, program and data
abstractions, parameter passing, modularity,
and parallel programming. Includes weekly
recitations, which provide students with
experience in the practice of programming in a
variety of high-level languages.
Prerequisites: C or higher in CSE 214; CSE
major
4 credits
CSE 220: Systems Fundamentals I
Introduces systems-level programming
concepts using the C language and assembly
language, and explores the correspondence of
programming constructs in these languages.
Topics include internal data representation,
basic instructions and control structures,
bitwise operations, arithmetic operations,
memory management, pointers, function calls
and parameter passing, linking and loading.
Included is an overview of foundational topics
in computer architecture, organization and
networks.
Prerequisites: C or higher in CSE 214 or co-
requisite CSE 260 and CSE major
4 credits
CSE 230: Intermediate Programming in
C and C++
Intermediate programming concepts using the
C language in a UNIX environment. Files,
systems calls, stream I/O, the C preprocessor,
bitwise operations, the use of makefiles,
advanced formatting of input and output,
conversions. Introduction to object-oriented
programming using C++; classes, objects,
inheritance, aggregation, and overloading.
Suitable for all majors.
Prerequisite: CSE 130 or CSE 220 or ESE 124
or ESG 111 or BME 120 or MEC 102
3 credits
CSE 260: Computer Science B: Honors
Second part of a two-semester sequence, CSE
160 and CSE 260. Applies object-oriented
programming methodology to data storage and
manipulation on complex data sets, such as,
binary trees, heaps, priority queues, balanced
trees and graphs. Recursive programming
is heavily utilized. Fundamental sorting and
searching algorithms are examined along with
informal efficiency comparisons. Intermediate-
level programming language concepts and
paradigms, including functional programming,
basics of type systems, program and data
abstractions, and modularity.
Prerequisite: CSE 160
Corequisite: CSE 261
3 credits
CSE 261: Laboratory for Computer
Science B: Honors
Must be taken concurrently with lecture
component, CSE 260; a common grade
for both courses will be assigned. Weekly
laboratories provide students with experience
in the practice of programming in a variety
of high-level languages such as Java, Scala,
Haskell, Python or Javascript.
Corequisite: CSE 260
1 credit
CSE 300: Technical Communications
Principles of professional technical
communications for Computer Science and
Information Systems majors. Topics include
writing business communications, user
manuals, press releases, literature reviews,
and research abstracts. Persuasive oral
communications and effective presentation
techniques, to address a range of audiences,
will also be covered. This course satisfies the
upper-division writing requirement for CSE
and ISE majors.
Prerequisites: WRT 102; CSE or ISE or DAS
major; U3 or U4 standing
SBC: SPK, WRTD
3 credits
CSE 301: History of Computing
A study of the history of computational
devices from the early ages through the end
of the 20th century. Topics include needs for
computation in ancient times, development
of computational models and devices through
the 1800's and early 1900's, World War II
and the development of the first modern
computer, and early uses in business. Creation
of programming languages and the microchip.
Societal changes in computer usage due
to the microcomputer, emergence of the
Internet, the World Wide Web, and mobile
computing. Legal and social impacts of
modern computing. Cannot be used as a
technical elective for the CSE major or minor.
This course is offered as both CSE 301 and
ISE 301.
Prerequisite: U2 standing or higher
Advisory Prerequisite: one course in
computing
DEC: H
SBC: STAS
3 credits
CSE 303: Introduction to the Theory of
Computation
An introduction to the abstract notions
encountered in machine computation. Topics
include finite automata, regular expressions,
and formal languages, with emphasis on
regular and context-free grammars. Questions
relating to what can and cannot be done by
machines are covered by considering various
models of computation, including Turing
machines, recursive functions, and universal
machines. Not for credit in addition to CSE
350.
Prerequisites: C or higher: CSE 160 or CSE
214; CSE 150 or CSE 215; CSE major
3 credits
CSE 304: Compiler Design
Topics studied include formal description
of programming languages, lexical analysis,
syntax analysis, symbol tables and memory
allocation, code generation, and interpreters.
Stony Brook University: www.stonybrook.edu/ugbulletin 10
COMPUTER SCIENCE (CSE) - COURSES Fall 2024
Students undertake a semester project that
includes the design and implementation of
a compiler for a language chosen by the
instructor.
Prerequisites: C or higher: CSE 216 or CSE
260; CSE 220
Advisory Prerequisites: CSE 303 or CSE 350
3 credits
CSE 305: Principles of Database
Systems
The design of database management
systems to obtain consistency, integrity, and
availability of data. Conceptual models and
schemas of data: relational, hierarchical, and
network. Students undertake a semester project
that includes the design and implementation of
a database system.
Prerequisites: C or higher: CSE 214, CSE 216
or CSE 260; CSE or DAS major
3 credits
CSE 306: Operating Systems
Students are introduced to the structure of
modern operating systems. Topics include
virtual memory, resource allocation strategies,
concurrency, and protection. The design and
implementation of a simple operating system
are performed. This course focuses on teaching
the skills required to design and build modules
of an operating system kernel. It covers key
algorithms and architectures. A companion
course, CSE 320, teaches complementary skills
from the application programmer's point of
view.
Prerequisites: C or higher: CSE 320 or ESE
280; CSE Major or ECE major.
3 credits
CSE 307: Principles of Programming
Languages
An introduction to programming languages
paradigms, including functional and logic
programming, and the suitability of various
languages for particular programming tasks.
Students write sample programs in the studied
languages. The languages are used to illustrate
programming language constructs such as
scoping and binding, type systems, storage
management and operating environments. This
illustration is accompanied by an introduction
to the implementation of programming
languages, such as parsing, semantic analysis,
symbol tables, memory allocation and code
generation. Students complete a series of
assignments to implement a language chosen
by the instructor.
Prerequisites: C or higher: CSE 214, CSE 216
or CSE 260; CSE or DAS major.
3 credits
CSE 310: Computer Networks
Overview of computer networks and the
Internet. Concept of end systems, access
networks, clients and servers. Connection-
oriented and connectionless services. Circuit
switching and packet switching. Description of
Internet protocol layers, including application
layer, transport layer, network layer and link
layer. Architecture of the current Internet and
the World-Wide Web. TCP/IP protocol stack.
Internet routing and addressing. Local area
network protocols, Ethernet hubs and switches.
Wireless LANs. Multimedia networking. May
not be taken by students with credit for ESE
346.
Prerequisites: C or higher: CSE 214 or 260;
CSE 220 or ISE 218; CSE major or ISE major.
Advisory Pre- or Corequisite: AMS 310
3 credits
CSE 311: Systems Administration
This course covers practical techniques to
manage information systems, also known as
IT Systems Administration. Students will learn
how to install computers for assorted hardware
and software platforms (Windows, Unix/
Linux, OS-X). Install networking equipment
and configure it. Install server software on
several systems (e.g. web, database, mail)
and configure it. Secure the network, hosts,
and services, and apply system patches. Set
up redundant computing services, virtual
machines/services, and hardware so that
services can survive some hardware/software
failures. Evaluate the performance, reliability,
and security of the overall system. This course
is offered as both CSE 311 and ISE 311.
Prerequisites: CSE 214 or CSE 230 or CSE
260 or ISE 208; ISE or CSE major
3 credits
CSE 312: Social, Legal, and Ethical
Issues in Computing
This course deals with the impact of computers
on us as individuals and on our society. Rapid
changes in computing technology and in our
use of that technology have changed the ways
we work, play, and interact with other people.
These changes have created a flood of new
social, legal and ethical issues that demand
critical examination. This course is offered as
both CSE 312 and ISE 312.
Prerequisites: CSE, ISE or DAS major; U3 or
U4 standing; one D.E.C. E or SNW course
SBC: CER, ESI, STAS
3 credits
CSE 316: Fundamentals of Software
Development
Introduction to systematic design, development
and testing of software systems, including
event-driven programming, information
management, databases, principles and
practices for secure computing, and version
control. Students apply these skills in the
construction of large, robust programs.
Prerequisites: C or higher in CSE 214 or CSE
260; CSE 216 or CSE 307; CSE major
3 credits
CSE 320: Systems Fundamentals II
This course introduces essential concepts of
operating systems, compilers, concurrency,
and performance analysis, focused around
several cross-cutting examples, such as
memory management, error handling, and
threaded programming. In this course,
operating systems concepts are considered
from the point of view of the application
programmer, and the focus is on APIs for
interacting with an operating system. A
companion course, CSE 306, considers
operating systems from the point of view of
the OS kernel implementer.
Prerequisite: C or higher: CSE 220 and CSE
major.
3 credits
CSE 323: Human-Computer Interaction
A survey course designed to introduce students
to Human-Computer Interaction and prepare
them for further study in the specialized
topics of their choice. Students will have the
opportunity to delve deeper in the course
through a course project, and through a
two-three week special topic selected at the
instructor's discretion. Course is cross-listed as
CSE 323, EST 323 and ISE 323.
Prerequisites: CSE 214 or CSE 230 or CSE
260 or ISE 208
3 credits
CSE 325: Computers and Sculpture
This multidisciplinary class surveys how
computer science and computer technology
are used in sculpture. Case studies with
slides, videos, and software demonstrations
illustrate a range of approaches of sculptors
incorporating computers in their creative
process. Various state-of-the art fabrication
technologies are studied (with site visits
if available on campus). Mathematical
foundations are emphasized so students can
recognize them when analyzing sculpture
and choose the right tool when designing.
In the weekly laboratory, these ideas are
reinforced with projects using a range
of available software and inexpensive
construction materials, e.g., paper, cardboard,
and foamcore.
Stony Brook University: www.stonybrook.edu/ugbulletin 11
COMPUTER SCIENCE (CSE) - COURSES Fall 2024
Prerequisite: CSE 110 or CSE 101 or CSE 114
3 credits
CSE 327: Fundamentals of Computer
Vision
Introduces fundamental concepts, algorithms,
and techniques in visual information
processing. Covers image formation, binary
image processing, image features, model
fitting, optics, illumination, texture, motion,
segmentation, and object recognition.
Prerequisites: CSE 214 or CSE 230 or CSE
260; AMS 210 or MAT 211; CSE or ISE or
DAS major
3 credits
CSE 328: Fundamentals of Computer
Graphics
An introduction to computer graphics
including graphics application programming;
data structures for graphics; representing
and specifying color; fundamental hardware
and software concepts for calligraphic and
raster displays; two-dimensional, geometric
transformations; introduction to three-
dimensional graphics; graphics standards; and
input devices, interaction handling, and user-
computer interface.
Prerequisites: C or higher: CSE 220; CSE or
DAS major
3 credits
CSE 331: Computer Security
Fundamentals
Introduces the basic concepts and terminology
of computer security. Covers basic security
topics such as cryptography, operating systems
security, network security, and language-based
security.
Prerequisite: CSE 220; CSE major
Advisory pre-or corequisite: CSE 320
3 credits
CSE 332: Introduction to Visualization
This course is an introduction to both the
foundations and applications of visualization
and visual analytics, for the purpose of
understanding complex data in science,
medicine, business, finance, and many
others. It will begin with the basics - visual
perception, cognition, human-computer
interaction, the sense-making process, data
mining, computer graphics, and information
visualization. It will then move to discuss
how these elementary techniques are coupled
into an effective visual analytics pipeline that
allows humans to interactively think with data
and gain insight. Students will get hands-on
experience via several programming projects,
using popular public-domain statistics and
visualization libraries and APIs. This course is
offered as both CSE 332 and ISE 332.
Prerequisites: CSE 214 or CSE 260; MAT 211
or AMS 210; AMS 110 or AMS 310; CSE or
ISE or DAS major
3 credits
CSE 333: User Interface Development
Survey of user interface systems, with
emphasis on responsive and adaptive strategies
to accommodate cross-platform deployment
across multiple devices such as desktops
and mobile devices. Demonstration of the
use of tool kits for designing user interfaces.
Additional topics include human factors,
design standards, and visual languages.
Students participate in a project involving the
design and implementation of user interface
systems. This course is offered as both CSE
333 and ISE 333.
Prerequisite: CSE 214 or CSE 260; CSE or
ISE major
3 credits
CSE 334: Introduction to Multimedia
Systems
Survey of technologies available for user
interfaces. Discussion of hypertext; voice,
music, and video together with tools and
models for capturing, editing, presenting,
and combining them. Capabilities and
characteristics of a range of peripheral devices
including devices based on posture, gesture,
head movement, and touch. Case studies of
academic and commercial multimedia systems
including virtual reality systems. Students
participate in laboratory exercises and build a
multimedia project. This course is offered as
both CSE 334 and ISE 334.
Prerequisite: U2, U3 or U4 standing; CSE or
ISE major
3 credits
CSE 336: Internet Programming
Introduces the design and development of
software for Internet commerce. Topics
include extended markup language, servlets,
cookies, sessions, Internet media types, Web
protocols, digital signatures, certificates,
encryption, and the wireless Internet.
Prerequisites: C or higher in CSE 214 or CSE
260; CSE major
3 credits
CSE 337: Scripting Languages
Scripting languages are widely used in the
IT industry. Programming with scripting
languages, also known as scripting, has
several advantages compared to programming
with other types of languages in that scripts
facilitate rapid program development; can
automate high-level jobs or tasks very
effectively; and can be used to compose
various software components, even binaries,
into more complex and powerful applications.
This course introduces the principles of
scripting, covers one or two selected scripting
languages in depth, and illustrates the
advanced use of scripting by extensive case
studies in application areas such as system
administration, web application development,
graphical user interface development, and text
processing.
Prerequisites: CSE 214 or CSE 260; CSE or
ISE or DAS major; U3 or U4 standing
3 credits
CSE 350: Theory of Computation:
Honors
Introduces the abstract notions of machine
computation for honors students. Includes
finite automata, regular expressions, and
formal languages, with emphasis on regular
and context-free grammars. Explores what
can and cannot be computed by considering
various models of computation including
Turing machines, recursive functions, and
universal machines. Not for credit in addition
to CSE 303.
Prerequisites: CSE 113 or CSE 150 or CSE
215; AMS 210 or MAT 211; Honors in
Computer Science or the Honors College
or the WISE Honors Program or University
Scholars or the Simons STEM Scholars
Program.
4 credits
CSE 351: Introduction to Data Science
This multidisciplinary course introduces both
theoretical concepts and practical approaches
to extract knowledge from data. Topics include
linear algebra, probability, statistics, machine
learning, and programming. Using large data
sets collected from real-world problems in
areas of science, technology, and medicine,
we introduce how to preprocess data, identify
the best model that describes the data, make
predictions, evaluate the results, and finally
report the results using proper visualization
methods. This course also teaches state-of-the
art tools for data analysis, such as Python and
its scientific libraries.
Prerequisites: CSE 214 or CSE 260; AMS 310;
CSE or DAS major
3 credits
CSE 352: Artificial Intelligence
Topics covered include critique of artificial
intelligence research; state-space problem
representations and search algorithms; game-
playing programs; theorem-proving programs;
Stony Brook University: www.stonybrook.edu/ugbulletin 12
COMPUTER SCIENCE (CSE) - COURSES Fall 2024
programs for the study and simulation of
cognitive processes and pattern recognition.
Further topics in current research as time
permits.
Prerequisites: CSE 316 or CSE 351; CSE or
DAS major
3 credits
CSE 353: Machine Learning
Covers fundamental concepts for intelligent
systems that autonomously learn to perform a
task and improve with experience, including
problem formulations (e.g., selecting input
features and outputs) and learning frameworks
(e.g., supervised vs. unsupervised), standard
models, methods, computational tools,
algorithms and modern techniques, as well
as methodologies to evaluate learning ability
and to automatically select optimal models.
Applications to areas such as computer vision
(e.g., character and digit recognition), natural-
language processing (e.g., spam filtering)
and robotics (e.g., navigating complex
environments) will motivate the coursework
and material.
Prerequisites: CSE 316 or CSE 351; CSE or
DAS major
Pre- or Co-requisite: AMS 310 or AMS 311 or
AMS 412
3 credits
CSE 354: Natural Language Processing
Natural language processing techniques power
many intelligent language based applications.
This course will introduce basic language
analysis tasks such as language modeling and
syntactic analysis, as well as core applications
such as text classification, information
extraction, question answering, and machine
translation. The course will cover relevant
algorithms, machine learning solutions, and
evaluation methodologies.
Prerequisites: CSE 316 or CSE 351; CSE or
DAS major
3 credits
CSE 355: Computational Geometry
The design and analysis of efficient algorithms
to solve geometric problems that arise in
computer graphics, robotics, geographical
information systems, manufacturing, and
optimization. Topics include convex hulls,
triangulation, Voronoi diagrams, visibility,
intersection, robot motion planning, and
arrangements. This course is offered as both
AMS 345 and CSE 355.
Prerequisites: AMS 301; programming
knowledge of C or C++ or Java
3 credits
CSE 356: Cloud Computing
Creating online services capable of handling
millions of users requires a different mindset
compared to traditional software development
and deployment. Rather than building
monolithic software packages from the ground
up, bringing up modern online services calls
for architecting systems by gluing together
mature existing technologies deployed across
many unreliable servers, working in concert
to provide high-availability robust services.
In this course, students will be exposed to the
concepts and technologies behind deploying
and scaling online services on the computing
resources available in modern datacenters.
Prerequisites: C or higher: CSE 316; CSE
320; CSE major
3 credits
CSE 357: Statistical Methods for Data
Science
This interdisciplinary course introduces the
mathematical concepts required to interpret
results and subsequently draw conclusions
from data in an applied manner. The course
presents different techniques for applied
statistical inference and data analysis,
including their implementation in Python,
such as parameter and distribution estimators,
hypothesis testing, Bayesian inference, and
likelihood.
Prerequisite: C or higher in CSE 316 or CSE
351; AMS 310; CSE or DAS major
3 credits
CSE 360: Software Security
This course will describe the principles
and practice of securing software systems.
Topics will include: software vulnerabilities;
static and dynamic analysis techniques for
vulnerability detection; exploit detection and
prevention; secure software development
techniques and defensive programming;
malware detection and analysis; security
policies and sandboxing; information flow.
Prerequisites: CSE 220; CSE major
Advisory Pre-or corequisite: CSE 320
3 credits
CSE 361: Web Security
This course will cover all aspects of web
security, including browser security, web
server security, and web application security.
Topics include: SOP and JavaScript;
application and protocol vulnerabilities;
probing, surveillance, and tracking; penetration
testing; modern social engineering techniques;
monetary incentives and monetization.
Prerequisites: CSE 220; CSE major
Advisory Pre-or corequisite: CSE 320
3 credits
CSE 362: Mobile Security
The course covers the latest security
technologies for mobile platforms (e.g.,
Android and iOS). It first introduces the
security issues plaguing mobile apps and
discusses defensive mechanisms, such as code
signing, app permissions, and sandbox. It
then peeks into mobile OS, explaining how
jailbreaking/rooting works and the internals
of iOS/Android security designs. Finally,
it surveys modern hardware-level security
features, such as secure booting, TrustZone,
and biometrics.
Prerequisites: CSE 220; CSE major
Advisory Pre-or corequisite: CSE 320
3 credits
CSE 363: Offensive Security
Hands-on course with the goal of
understanding various security problems
in depth, through a more adversarial way
of thinking. By focusing on finding and
exploiting vulnerabilities, the course will
cover a broad range of topics, including
the ethics of offensive security, reverse
engineering, software vulnerability discovery
and exploitation, malicious code analysis,
network traffic interception and manipulation,
reconnaissance and information gathering,
physical security, and social engineering.
All topics will be covered from a highly
practical perspective, following a hands-on
approach and tutorial-like sessions, along with
programming assignments.
Prerequisites: CSE 220; CSE major
Advisory Pre-or corequisite: CSE 320
3 credits
CSE 364: Advanced Multimedia
Techniques
Digital media production techniques for high-
bandwidth applications such as electronic
magazine illustration, broadcast television,
and motion picture special effects. Students
explore techniques such as 3D modeling and
character animation, video compositing, and
high-resolution image processing in a state-
of-the art multimedia computing laboratory.
High-capacity mutlimedia storage, high-speed
networks, and new technologies such as DVD,
HDTV, and broadband will be reviewed. This
course is offered as both CSE 364 and ISE
364.
Prerequisites: CSE/ISE 334
3 credits
CSE 366: Introduction to Virtual Reality
An introduction to the practical issues in
the design and implementation of virtual
environments. Topics covered include the
fundamentals of systems requirements,
Stony Brook University: www.stonybrook.edu/ugbulletin 13
COMPUTER SCIENCE (CSE) - COURSES Fall 2024
transformations, user-interaction models,
human vision models, tracking systems, input/
output devices and techniques, and augmented
reality. The topics covered are explained
through the use of real-life applications of
virtual-reality systems in engineering, science,
and medicine.
Prerequisites: CSE 214 or CSE 260; MAT 211
or AMS 210; CSE or ISE major
3 credits
CSE 370: Wireless and Mobile
Networking
The fundamentals of wireless communication.
Link, network and transcript layer protocols
for wireless and mobile networking. Cellular
networks. Wireless LANs. Wireless multihop
networks. Mobile applications.
Prerequisite: CSE 310; CSE major
3 credits
CSE 371: Logic
A survey of the logical foundations of
mathematics: development of propositional
calculus and quantification theory, the notions
of a proof and of a model, the completeness
theorem, Goedel's incompleteness theorem.
This course is offered as both CSE 371 and
MAT 371.
Prerequisite: CSE 113 or CSE 150 or CSE 215
or MAT 200 or MAT 250
3 credits
CSE 373: Analysis of Algorithms
Mathematical analysis of a variety of computer
algorithms including searching, sorting, matrix
multiplication, fast Fourier transform, and
graph algorithms. Time and space complexity.
Upper-bound, lower- bound, and average-case
analysis. Introduction to NP completeness.
Some machine computation is required for the
implementation and comparison of algorithms.
This course is offered as CSE 373 and MAT
373. Not for credit in addition to CSE 385.
Prerequisites: C or higher in: CSE 113 or CSE
150 or CSE 215 or MAT 200 or MAT 250;
MAT 211 or AMS 210; CSE 214 or CSE 260;
CSE or MAT or DAS major
3 credits
CSE 376: Advanced Systems
Programming in UNIX/C
Focuses on several aspects of producing
commercial-grade system software: reliability,
portability, security, and survivability. Uses
Unix and C, heavily used in industry when
developing systems and embedded systems
code. Emphasizes techniques and tools to
produce reliable, secure, and highly portable
code. Requires substantial programming as
well as a course project.
Prerequisites: C or higher: CSE 320; CSE
major
3 credits
CSE 377: Introduction to Medical
Imaging
An introduction to the mathematical, physical,
and computational principles underlying
modern medical imaging systems. Covers
fundamentals of X-ray computer tomography,
ultrasonic imaging, nuclear imaging, and
magnetic resonance imaging (MRI), as
well as more general concepts required for
these, such as linear systems theory and the
Fourier transform. Popular techniques for
the visualization, segmentation, and analysis
of medical image data are discussed, as well
as applications of medical imaging, such as
image-guided intervention. The course is
appropriate for computer science, biomedical
engineering, and electrical engineering majors.
Prerequisites: AMS 161 or MAT 127 or 132;
AMS 210 or MAT 211
3 credits
CSE 378: Introduction to Robotics
Introduces basic concepts in robotics including
coordinate transformation, kinematics,
dynamics, Laplace transforms, equations of
motion, feedback and feedforward control,
and trajectory planning. Covers simple and
complex sensors (such as cameras), hybrid
and behavior based control and path planning.
Concepts are illustrated through laboratories
using the LEGO Robot Kit.
Prerequisites: AMS 161 or MAT 127 or 132;
AMS 210 or MAT 211 or MEC 262
3 credits
CSE 380: 2D Game Programming
An introduction to the fundamental concepts of
computer game programming. Students design
and develop original games for PCs applying
proven game design and software engineering
principles.
Prerequisite: CSE 220; CSE major
3 credits
CSE 381: 3D Game Programming
This course explores the concepts and
technologies behind making 3D, networked
games. This will include the examination of
game engine creation as well as the use of
middleware to build graphically sophisticated
game systems.
Prerequisite: CSE 220; CSE major
3 credits
CSE 385: Analysis of Algorithms:
Honors
Algorithmic design and analysis for Computer
Science Honors students. Mathematical
analysis of a variety of computer algorithms
including searching, sorting, matrix
multiplication, fast Fourier transform, and
graph algorithms. Time and space complexity.
Upper-bound, lower-bound, and average-case
analysis. Randomization. Introduction to NP
completeness. Some machine computation
is required for the implementation and
comparison of algorithms. Not for credit in
addition to CSE/MAT 373.
Prerequisites: CSE 113 or CSE 150 or CSE
215 or MAT 200 or MAT 250; AMS 210 or
MAT 211; CSE 214 or CSE 260; Honors in
Computer Science or the Honors College
or the WISE Honors Program or University
Scholars or Simons STEM Scholars.
4 credits
CSE 390: Special Topics in Computer
Science
A lecture or seminar course on a current topic
in computer science. May be repeated as the
topic changes, but cannot be used more than
twice to satisfy CSE major requirements.
Prerequisite: CSE 214 or CSE 260; CSE or
ISE Major
3 credits
CSE 391: Special Topics in Computer
Science
A lecture or seminar course on a current topic
in computer science. May be repeated as the
topic changes, but cannot be used more than
twice to satisfy CSE major requirements.
Prerequisite: CSE 214 or CSE 260; CSE or
ISE Major
3 credits
CSE 392: Special Topics in Computer
Science
A lecture or seminar course on a current topic
in computer science. May be repeated as the
topic changes, but cannot be used more than
twice to satisfy CSE major requirements.
Prerequisite: CSE 214 or CSE 260; CSE or
ISE Major
3 credits
CSE 393: Special Topics in Computer
Science
A lecture or seminar course on a current topic
in computer science. May be repeated as the
topic changes, but cannot be used more than
twice to satisfy CSE major requirements.
Prerequisite: CSE 214 or CSE 260; CSE or
ISE Major
Stony Brook University: www.stonybrook.edu/ugbulletin 14
COMPUTER SCIENCE (CSE) - COURSES Fall 2024
3 credits
CSE 394: Special Topics in Computer
Science
A lecture or seminar course on a current topic
in computer science. May be repeated as the
topic changes, but cannot be used more than
twice to satisfy CSE major requirements.
Prerequisite: CSE 214 or CSE 260; CSE or
ISE Major
3 credits
CSE 416: Software Engineering
Introduces the basic concepts and modern
tools and techniques of software engineering.
Emphasizes the development of reliable
and maintainable software via system
requirements and specifications, software
design methodologies including object-
oriented design, implementation, integration,
and testing; software project management; life-
cycle documentation; software maintenance;
and consideration of human factor issues.
Prerequisites: C or higher in CSE 316; U4
standing; CSE major.
3 credits
CSE 475: Undergraduate Teaching
Practicum
Students assist faculty in teaching by
conducting a recitation or laboratory section
that supplements a lecture course. The student
receives regularly scheduled supervision from
the faculty instructor. May be used as an open
elective only and repeated once.
Prerequisites: U3 or U4 standing as an
undergraduate CEAS major; a minimum g.p.a.
of 3.00 in all Stony Brook courses; grade of B
or better in the course in which the student is
to assist and permission of department.
SBC: EXP+
3 credits
CSE 487: Research in Computer
Science
An independent research project with faculty
supervision. Only three credits of research
electives (AMS 487, CSE 487, BME 499,
ESE 499, ESM 499, ISE 487, and MEC 499)
may be counted toward technical elective
requirements. May not be taken for more than
six credits.
Prerequisites: Permission of instructor and
department
0-3 credits
CSE 488: Internship in Computer
Science
Participation in local, state, national, or
international private enterprise, public
agencies, or nonprofit institutions. To obtain
permission to register for the courses, students
are required to submit proof that the work
is related to their studies and the work will
include a minimum of 180 hours during the
semester. During the semester, the student
will submit progress reports and a final report
on their experience to the client and to the
department. May be repeated up to a limit
of 12 credits but can only be used once as
a technical elective to satisfy CSE major
requirements.
Prerequisites: CSE major, U3 or U4 standing;
permission of department
SBC: EXP+
3 credits, S/U grading
CSE 495: Senior Honors Research
Project I
A two-semester research project carried out
under the supervision of a computer science
faculty member. Students who enroll in CSE
495 must complete CSE 496 in the subsequent
semester and receive only one grade upon
completion of the sequence.
Prerequisite: Admission to Honors in
Computer Science; permission of instructor
and department.
3 credits
CSE 496: Senior Honors Research
Project II
A two-semester research project carried out
under the supervision of a computer science
faculty member. Students must submit a
written project report and make a presentation
to the department at the year-end Honors
Project Colloquium.
Prerequisite: CSE 495; permission of
instructor and department
3 credits
Stony Brook University: www.stonybrook.edu/ugbulletin 15