Stony Brook University
Stony Brook University
Sample Schedule:
Courses:
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.
3 credits
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.
3 credits
3 credits
4 credits
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
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 the Computer Science Honors Program or the Honors
College or the WISE Honors Program or University Scholars.
4 credits
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.
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
A lecture course on a current topic in the practice and application of computer science. May
be repeated as the topic changes.
3 credits
A lecture course on a current topic in the practice and application of computer science. May
be repeated as the topic changes.
3 credits
A lecture course on a current topic in the practice and application of computer science. May
be repeated as the topic changes.
3 credits
CSE 214: Data Structures
4 credits
4 credits
4 credits
CSE 219: Computer Science III
Development of the basic concepts and techniques learned in CSE 114 Computer Science I
and CSE 214 Computer Science II into practical programming skills that include a
systematic approach to program design, coding, testing, and debugging. Application of
these skills to the construction of robust programs of 1000 to 2000 lines of source code.
Use of programming environments and tools to aid in the software development process.
4 credits
This course will introduce assembly language programming and essential concepts of
computer organization and architecture. The focus of this course is on the computer
organization of a computer system, including the processor architecture and the memory
system. In particular, we will discuss the internal representation of information, performance
evaluation methodology, instruction set architectures and implementation techniques for
computer arithmetic, control path design, and pipelining.
4 credits
3 credits
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, event-driven programming, program and data abstractions, and modularity.
Prerequisite: CSE 160
3 credits
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
3 credits
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.
3 credits
Prerequisites: C or higher: CSE 160 or CSE 214; CSE 150 or CSE 215; CSE major
3 credits
Prerequisites: C or higher: CSE 216 or CSE 219 or CSE 260; CSE 220
3 credits
Prerequisites: C or higher: CSE 216 or CSE 219 or CSE 260; CSE major
3 credits
Prerequisites: C or higher: CSE 216 or CSE 219 or CSE 260; CSE 320 or ESE 380; CSE
Major or ECE major.
3 credits
Prerequisites: C or higher: CSE 216 or CSE 219 or CSE 260; CSE 220; CSE major.
3 credits
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.
3 credits
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
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 way we work, play, and interact with other people. These changes have created a flood
of new social and legal issues that demand critical examination. For example, technologies
such as Gmail, Facebook, MySpace, along with music sharing sites and wikis create new
social, ethical, and legal issues. This course is offered as both CSE 312 and ISE 312.
Prerequisites: CSE or ISE major; U3 or U4 standing; one D.E.C. E or SNW course
3 credits
3 credits
3 credits
3 credits
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.
3 credits
Prerequisites: CSE 214 or CSE 230 or CSE 260; AMS 210 or MAT 211; CSE or ISE major
3 credits
CSE 328: Fundamentals of Computer Graphics
Prerequisites: C or higher: CSE 216 or CSE 219 or CSE 260; CSE 220; CSE major
3 credits
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.
3 credits
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 310; CSE or ISE major
3 credits
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.
3 credits
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.
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 216 or CSE 219 or CSE 260; CSE major
3 credits
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 114 or CSE 160 or ISE 208; CSE or ISE major; U3 or U4 standing
3 credits
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.
Prerequisites: CSE 150 or CSE 215; AMS 210 or MAT 211; Computer Science Honors
Program or the Honors College or the WISE Honors Program or University Scholars.
4 credits
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.
3 credits
Prerequisites: C or higher in CSE 216 or CSE 219 or CSE 260; CSE 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.
3 credits
3 credits
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.
3 credits
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 216 or 219 or 260; CSE 220; CSE major
3 credits
Prerequisite: C or higher in CSE 216 or CSE 219 or CSE 260; AMS 310; CSE major
3 credits
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.
3 credits
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.
3 credits
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.
3 credits
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.
3 credits
Prerequisites: CSE/ISE 334
3 credits
3 credits
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.
3 credits
CSE 371: Logic
Prerequisites: C or higher in MAT 211 or AMS 210; CSE 214 or CSE 260
3 credits
Prerequisites: C or higher: CSE 216 or CSE 219 or 260; CSE 320; CSE major
3 credits
Prerequisites: AMS 161 or MAT 127 or 132 or 142; AMS 210 or MAT 211
3 credits
Prerequisites: AMS 161 or MAT 127 or 132 or 142; AMS 210 or MAT 211 or MEC 262
3 credits
Prerequisite: CSE 216 or CSE 219 or CSE 220 or CSE 260; CSE major
3 credits
Prerequisite: CSE 216 or CSE 219 or CSE 220 or CSE 260; CSE major
3 credits
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.
Prerequisites: CSE 260 or CSE 214; AMS 210 or MAT 211; Computer Science Honors
Program or the Honors College or the WISE Honors Program or University Scholars.
4 credits
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 Major
3 credits
Prerequisite: CSE Major
3 credits
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 Major
3 credits
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 Major
3 credits
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 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.
3 credits
3 credits
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.