2017-18
Undergraduate Degree & Course Catalog

Computer Science & Engineering (CSE)

Department of Computer Science and Engineering

338 Davis Hall
North Campus
Buffalo, NY 14260-2500
Ph: 716-645-3180
F: 716-645-3464
W: www.cse.buffalo.edu
Chunming Qiao
Chair
Atri Rudra
Co-Director of Undergraduate Studies
Carl Alphonce
Co-Director of Undergraduate Studies
Donna Grant
Undergraduate Advisor

The Learning Environment

The School of Engineering and Applied Sciences offers nine engineering programs leading to the degree of bachelor of science (BS) degree: aerospace, biomedical, chemical, civil, computer, electrical, environmental, industrial and mechanical engineering.

Five combined BS/MBA programs are offered in conjunction with the School of Management. BA, BS, and BS/MS degrees in computer science are offered through the Department of Computer Science and Engineering. A BS degree in engineering physics is offered jointly with the Department of Physics.

The curricula allow students flexibility in their programs of study and encourages interaction between students and faculty. The undergraduate educational experience prepares students for professional practice and advanced study. Special programs including our experiential learning program, undergraduate research and internship opportunities provide professional development skills and experiences and facilitate placement of our graduates in high-quality engineering positions.

About Our Facilities

The School of Engineering and Applied Sciences occupies six buildings on UB's north campus: Bell, Bonner, Davis, Furnas, Jarvis and Ketter Hall. Barbara and Jack Davis Hall is the newest building, which opened in 2011 and features an environmentally friendly design and construction.

Together, these buildings form an outstanding educational and research facility, comprising 275,000 square feet of laboratory and office space.

The department of Computer Science and Engineering (CSE) is housed in Davis Hall. Faculty offices, teaching assistant consultation space, and research laboratories are located on all floors of Davis Hall. Additional teaching laboratories are housed in Baldy and Bonner Halls. Course lectures are scheduled in various buildings across the north campus.

About Our Faculty

The faculty members of the department, all of whom have national and international reputations in their fields, are involved in research projects that have a variety of special contracts. Many have also received research funding from corporations such as Cisco, Google, IBM, Intel, Kodak, Microsoft, Nokia, and Xerox.

Faculty List Directory

Please visit the Department of Computer Science and Engineering website for additional information about our faculty.

CSE Courses


  • CSE 101LLB Computers: A General Introduction
    Lecture

    Course critically examines popular concepts of information age computing, including: smart devices, societal implications, history, hardware function, sensors, networks, problem solving, and software concepts. Internet technologies such as Web 2.0, rich internet applications, responsible use of social networking, and cloud computing are examined. Privacy and security is an underpinning across all topics. Students will gain practical, lab-based experience with spreadsheets, database systems, HTML design, and various operating systems including Windows, Mac OS X, Linux, and Android.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
  • CSE 111LLB Introduction to Quantitative Analysis and Reasoning with Computing
    Lecture

    The Internet has revolutionized our lives and has impacted how we carry out daily tasks. This course will use web technologies, and basic programming, as a tool to compute and convey solutions for data-rich problems. Basic algorithmic techniques will be used to perform quantitative analysis of data. Results will be presented using web technologies. The objectives of this course are to introduce the fundamentals of quantitative analysis of data and basic web application development. This course is designed to satisfy the Math and Quantitative Reasoning requirement of the UB Curriculum.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
  • CSE 113LR Introduction to Computer Programming I
    Lecture

    Introduction to computers and computer programming intended for nonmajors. Appropriate for those seeking a practical introduction to computer programming. Topics include the use of data types and variables, programming control constructs supported by modern languages, input/output, basic concepts of object-oriented programming (such as classes, objects, encapsulation, information hiding, and code reuse), as well as graphical user interfaces. No previous computer experience assumed. Not suitable for intended computer science or computer engineering majors. Admitted computer science and computer engineering students should not take this course.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
  • CSE 114LR Introduction to Computer Programming II
    Lecture

    Continuation of CSE 113 for nonmajors. Currently required for some School of Management majors and appropriate for others seeking additional programming skills. Emphasizes the use of modern object-oriented programming methodologies, such as class inheritance, polymorphism, and exceptions. Neither CSE 113 nor CSE 114 can count towards a CSE degree. Admitted computer science and computer engineering majors should not take this course.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
  • CSE 115LR Introduction to Computer Science for Majors I
    Lecture

    Provides the fundamentals of the field to computer science and computer engineering majors, introducing students to algorithm design and implementation in a modern, high-level programming language. Emphasizes problem solving by abstraction. Topics include object-oriented design using a formal modeling language; fundamental object-oriented principles such as classes, objects, interfaces, inheritance and polymorphism; simple event-driven programming; data types; variables; expressions; basic imperative programming techniques, including assignment, input/output, subprograms, parameters, sequencing, selection and iteration; the use of aggregate data structures, such as arrays or more general collections; simple design patterns. No previous programming experience required.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
    Other Requisites: Pre-reqs: Pre-calculus (MTH 115 or ULC 148) or appropriate math placement test scores or co-requisite of Calculus 1 (MTH 121 or MTH 131 or MTH 141).
  • CSE 116LLB Introduction to Computer Science for Majors II
    Lecture

    Continuation of CSE 115. Heavily emphasizes abstract data types (ADTs) and object-oriented methodology, and expects students not only to understand ADTs but also to design and implement robust ADTs using a modern object-oriented programming language. Further emphasizes object-oriented techniques, which support sound software engineering, such as encapsulation, polymorphism and inheritance as well as the use of more complex design patterns. Essential topics integrated in this framework include the use of recursion; linked data structures, including lists, stacks, queues, binary trees, and other advanced data structures; and algorithms for searching and sorting; exceptions and exception handling, event-driven programming. Introduces the analysis of algorithm complexity (0-notation).

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
    Prerequisites: CSE 115 or EAS 230 or EAS 240 or EAS 999TRCP
  • CSE 182LEC Computers & Society
    Lecture

    Credits: 3
    Grading: Graded (GRD)
    Typically Offered: Varies
  • CSE 191LR Discrete Structures
    Lecture

    Foundational material for further studies in computer science. Topics include logic, proofs, sets, functions, relations, recursion, recurrence relations, mathematical induction, graphs, trees, and some basic counting theory. CSE 191 is required for computer science and computer engineering majors.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
  • CSE 198SEM UB Seminar
    Seminar

    The one credit UB Seminar is focused on a big idea or challenging issue to engage students with questions of significance in a field of study and, ultimately, to connect their studies with issues of consequence in the wider world. Essential to the UB Curriculum, the Seminar helps transition to UB through an early connection to UB faculty and the undergraduate experience at a comprehensive, research university. This course is equivalent to any 198 offered in any subject. This course is a controlled enrollment (impacted) course. Students who have previously attempted the course and received a grade of F or R may not be able to repeat the course during the fall or spring semester.

    Credits: 1
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Other Requisites: Students who have already successfully completed the UB seminar course may not repeat this course. If you have any questions regarding enrollment for this course, please contact your academic advisor.
  • CSE 199SR UB Seminar
    Seminar

    The three credit UB Seminar is focused on a big idea or challenging issue to engage students with questions of significance in a field of study and, ultimately, to connect their studies with issues of consequence in the wider world. Essential to the UB Curriculum, the Seminar helps students with common learning outcomes focused on fundamental expectations for critical thinking, ethical reasoning, and oral communication, and learning at a university, all within topic focused subject matter. The Seminars provide students with an early connection to UB faculty and the undergraduate experience at a comprehensive, research university. This course is equivalent to any 199 offered in any subject. This course is a controlled enrollment (impacted) course. Students who have previously attempted the course and received a grade of F or R may not be able to repeat the course during the fall or spring semester.

    Credits: 3
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Other Requisites: Students who have already successfully completed the first year seminar course may not repeat this course. If you have any questions regarding enrollment for this course, please contact your academic advisor.
  • CSE 234LEC Intro to Blockchain
    Lecture

    This course introduces the Blockchain as a means for recording, securing, and transferring assets without an intermediary. Topics include: distributed ledger, transactions, block, and chain of blocks, public-private key pair, hashing, digital signatures, mining, proof of work, and smart-contracts. A Blockchain testbed will be used to provide learners with hands-on experience in designing and programming an end-to-end Blockchain application.

    Credits: 1
    Grading: Graded (GRD)
    Typically Offered: Winter
    Other Requisites: Pre-Reqs: CSE 116 or equivalent, OR permission of instructor.
  • CSE 241LR Digital Systems
    Lecture

    A course in digital principles which includes the following topics: fundamentals of digital logic, number systems, codes, computer arithmetic, Boolean algebra, minimization techniques, basic components of digital circuits such as logic gates and flip-flops, design of combinational and sequential circuits, memory devices, and programming logic. Recommended for sophomore-level students.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
    Prerequisites: SEAS Majors, Computing and Applied Math Majors and any student in the Computer Science Minor.
  • CSE 250LR Data Structures
    Lecture

    Provides a rigorous analysis of the design, implementation, and properties of advanced data structures. Topics include order notation and time-space analysis and tradeoffs in a list, tree and graph algorithms, and hashing. Surveys library implementations of basic data structures in a high-level language. Advanced data structure implementations are studied in detail. Illustrates the importance of choosing appropriate data structures when solving a problem by programming projects in a high-level language different from the language of CSE 115 and CSE 116; also covers instruction in this language.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
    Prerequisites: CSE 116 and (CSE 191 or MTH 311).SEAS approved or intended majors, CS minors, Bioinformatics, Computational Physics, Math majors, Data Intensive Computing Certificate.
  • CSE 305LR Introduction to Programming Languages
    Lecture

    Examines concepts and constructs found in programming languages. Topics include binding time, strong typing, control and data abstraction, higher-order functions, and polymorphism. The major programming paradigms (procedural, object-oriented, functional, and logic) will be studied and compared. The course will also provide an introduction to syntax and semantics, compilation vs. interpretation, and storage management.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring, Summer
    Prerequisites: CSE 250 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 306LLB Software Quality in Practice
    Lecture

    Software is seldom bug-free. Finding and fixing the source of unintended behavior in software can be challenging. This course covers tools and techniques for identifying and locating various types of quality defects in code (such as memory bugs, performance bugs, dependency bugs) and how to write code that lends itself to debugging.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Other Requisites: Pre-Reqs: CSE 250. Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 312LR Introduction to Web Applications
    Lecture

    Covers the fundamentals of full-stack web development and deployment with a strong emphasis on server-side code and functionality. Students will develop a full-stack web application without the use of a pre-existing web server or web framework. Topics include HTTP, APIs, AJAX, databases, encryption, authentication, sockets, privacy, and security.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Other Requisites: Pre-Reqs: CSE 250. Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 320LR Introduction to Operating Systems
    Lecture

    This course is an introduction to operating system design and implementation. We study operating systems because they are examples of mature and elegant solutions to a difficult design problem: how to safely and efficiently share system resources and provide abstractions useful to applications. For the processor, memory, and disks, we discuss how the operating system allocates each resource and explore the design and implementation of related abstractions. We also establish techniques for testing and improving system performance and introduce the idea of hardware virtualization. Programming assignments provide hands-on experience with implementing core operating system components in a realistic development environment.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 250LR: Data Structures; Computer Science, Computer Engineering, or Bioinformatics-CS majors only.
  • CSE 321LR Real -Time and Embedded Operating Systems
    Lecture

    Addresses some of the fundamental challenges in the design, implementation, and validation of these real-time and embedded systems. Topics include resource management, concurrency, secure coding practices, memory management, timeline design and analysis using metrics and schedulability tests, hardware interfacing, device driver programming, memory maps and boot kernels, firmware and ROM-resident system code, communications and networking, and debugging live systems. These concepts will be reinforced through C programming assignments using the RTLinux operating system.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: CSE 250 and CSE 241 or EE 178. Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 331LR Introduction to Algorithm Analysis and Design
    Lecture

    Introduces methods for algorithm design, paradigms such as divide and conquer, greedy, and dynamic programming, and techniques for algorithm analysis, such as asymptotic notations, estimates and recursions. Topics include sorting, searching, scheduling, string matching, graph algorithms, computational geometry, and more.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall
    Other Requisites: Pre-reqs: MTH 142 and CSE 250 and (CSE 191 or MTH 331). Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 337LLB Introduction to Scientific Computing
    Lecture

    Computing now plays an essential and ever-expanding role in science and mathematics. This course provides a broad introduction to computing in the sciences and in both abstract and applied mathematics. It is accessible to students early in their undergraduate program, thereby opening the door to the profitable use of computation throughout the junior and senior years. Cross-listed with MTH 337.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Varies
    Prerequisites: MTH 141 with a grade of C or higher
  • CSE 341LR Computer Organization
    Lecture

    Basic hardware and software issues of computer organization. Topics include computer abstractions and technology, performance evaluation, instruction set architecture, arithmetic logic unit design, advanced computer arithmetic, datapath and control unit design, pipelining, memory hierarchy, input-output.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
    Prerequisites: CSE 241 or EE 178 Approved Computer Science, Computer Engineering, Bioinformatics/CS, Electrical Engineering Majors Only
  • CSE 365LR Introduction to Computer Security
    Lecture

    This is an undergraduate-level course intended for junior and senior-level students and will teach them introductory concepts of computer security. The main foci of this course will be network, web security, and application security. Part of the work will be dedicated to ethical aspects of security, and online privacy. The course will be heavily hands-on, as opposed to theoretical teaching.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall
    Other Requisites: Pre-reqs: CSE 250 and approved Computer Science, Computer Engineering, and Bioinformatics/CS Majors only
  • CSE 368LR Introduction to Artificial Intelligence
    Lecture

    Artificial Intelligence appears in many practical situations: from problems such as returning relevant text to a vague question to robotic cars that need to safely navigate chaotic traffic. As a result, AI is frequently in the news for both important ethical questions and practical breakthroughs. This course is an introduction to AI for junior and senior level students. The goal is to put these topics into a common perspective and to give you practical hands-on skill in solving AI problems through programming assignments.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: CSE 116 and (EAS 305 or MTH 411 or STA 301). Approved Computer Science, Computer Engineering, and Bioinformatics/CS Majors only
  • CSE 379LLB Introduction to Microprocessors
    Lecture

    This is an introductory course in microprocessors and microprocessor based systems, specifically addressing microprocessor architecture, assembly language programming, and microprocessor system design and interfacing. In the laboratory you will get practical experience using the ARM microprocessor. Topics covered include: microprocessor concepts, instruction set architecture, assembly language and programming, stack and subroutines, memory design and interfacing, parallel and serial I/O, interrupt and exception handling, timing considerations, the ARM AMBA standard, and system design techniques. The ARM microprocessor is used to convey these topics

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 241 or EE 178 and Approved CS, CEN, Bioinformatics/CS, EE Majors only
  • CSE 380LR Introduction to Microprocessors and Microcomputers Lab
    Lecture

    A microprocessor system and its application in embedded devices. This course is the laboratory component to CSE 379. Topics include: microprocessor architecture; memory organization; assembly language programming; microprocessor assemblers; software development; use of microprocessor boards; memory and I/O interfaces; programming peripherals; interrupt system programming; microprocessor system design and applications.

    Credits: 3
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 241 or EE 378 or EE 278Approved Computer Science, Computer Engineering, Electrical Engineering, or Bioinformatics/CS Majors Only
    Corequisites: CSE 379
  • CSE 380SA INTRO TO MICROPROC LAB
    Laboratory

    Credits: 0 - 19
    Grading: Graded (GRD)
    Typically Offered: Varies
  • CSE 396LR Introduction to the Theory of Computation
    Lecture

    Covers machine models and formal specifications of the classes of computational problems they can solve. The central concepts are the Turing machine and the classes of decidable and computably enumerable languages. The Halting Problem and other natural problems are shown to be undecidable by Turing machines, implying that they are undecidable by high-level programming languages or any other known computational model. Finite automata, which are Turing machines without external memory, are shown to correspond to the class of regular languages. The course also covers regular expressions, time and space complexity of Turing machines, reducibility between problems, and NP-completeness.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 191 or MTH 311 and CSE 250, and MTH 142Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 408LEC Programming with Python
    Lecture

    This course is an introduction to programming using Python. We will provide a comprehensive overview of the Python programming language, including data types & built-in data structures, selection statements, loops, functions, objects and classes, GUI development, lists, file and exception handling, iPython, Python Toolkits (such as NumPy and Matplotlib), and Python Shell Scripts. Hands-on experience will be provided through programming assignments.

    Credits: 1
    Grading: Graded (GRD)
    Typically Offered: Varies
    Prerequisites: CSE 113 or CSE 115 or EAS 230 or EAS 240 or EAS 999TRCP;Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 410LR Special Topics
    Lecture

    Contents, format and required background vary from offering to offering. Intended for rapid introduction of timely material in computer science and engineering, which will not be repeated under this course number. Offered occasionally.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Varies
    Prerequisites: Permission of instructor;Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 411LR Introduction to Computer Systems Administration
    Lecture

    Teaches how to administer a network of computer workstations using an Operating System such as UNIX. Topics include managing user accounts, system backups, installing and configuring the operating system, setting up a computer network, shell programming, and computer security.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only. Departmental senior standing recommended.
  • CSE 416LEC E-Commerce Technology
    Lecture

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Varies
  • CSE 421LR Introduction to Operating Systems
    Lecture

    Covers the principles and techniques in the design of operating systems. Describes concepts of operating systems in terms of functions, structure, and implementation, particularly emphasizing multiprogramming. Topics include process coordination, deadlocks, memory management, device management, file systems, scheduling policies for CPU, and network and distributed operating systems. Illustrates concepts with examples from existing operating systems.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: CSE 250 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only.
  • CSE 422LR Operating Systems Internals
    Lecture

    Uses an operating system (such as UNIX) as an example to teach the internal workings of operating systems. The material presented is more practical than the other operating systems related classes. The laboratory component of this course provides programming projects involving modifications to an operating system kernel (such as UNIX) on computers dedicated to use for this course. Topics covered include building the operating system kernel, the system call interface, process management, kernel services provided for processes, the I/O system, the internal workings of the file system, device drivers, and the kernel support of Interprocess Communications. Department Senior Standing Recommended

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Summer
    Prerequisites: CSE 421 or Permission of instructor
  • CSE 429LR Algorithms for Modern Computing Systems
    Lecture

    The objective of this course is to teach computational STEM students the fundamental concepts of design and analysis of algorithms for modern computing systems, including network-based fine-grained parallel computers, shared-memory computers, general multi-core and multiple processor systems, GPU-based systems, clusters, grids and clouds. The first part of the course will focus on the introduction of these computational models, as well as the traditional von Neumann architecture, and methods of analysis. The second part of the course will focus on fundamental computational paradigms and their implementation on a variety of modern computational systems. Much of the analysis will be considered in terms of running time, size of data, number of processors/cores, and interconnection networks, to name a few. Asymptotic analysis will be used as a measure of these performance metrics and design options.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: CSE 191, CSE 250 and MTH 142;Computer Science, Computer Engineering, or Bioinformatics/CS Majors only
  • CSE 430LR Topics in Theoretical Computer Science
    Lecture

    Introduces students to advanced topics in algorithms and theory of computation. Example topics include approximation algorithms, randomized algorithms and quantum computation. This course can be repeated as long as the topic being covered is different.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Other Requisites: Pre-Reqs: CSE 331. Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 431LR Algorithms Analysis and Design
    Lecture

    Introduces basic elements of the design and analysis of algorithms. Topics include asymptotic notations and analysis, divide and conquer, greedy algorithms, dynamic programming, fundamental graph algorithms, NP-completeness, approximation algorithms, and network flows. For each topic, beside in-depth coverage, we discuss one or more representative problems and their algorithms. In addition to the design and analysis of algorithms, students are expected to gain substantial discrete mathematics problem solving skills essential for computer scientists and engineers.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: CSE 331Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 433LR Introduction to Digital Multimedia
    Lecture

    Introduction to digital multimedia shall address fundamentals of contemporary digital multimedia in all forms ? text, graphics, audio, image, video, and animation. This course will cover elements of digital media and process of digitization with sampling and quantization, computer hardware and software systems for digital multimedia, and design of digital multimedia development and media authoring tools.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
  • CSE 435LR Information Retrieval
    Lecture

    This course will focus on text-based information retrieval (IR) techniques, more popularly known as search engines. Various IR models such as the Boolean model, vector space model, probabilistic model will be studied. Efficient indexing techniques for large document collections as well as specialized collections will be examined. Various query expansion techniques such as local context analysis will be introduced. Finally, the course will also discuss search engines for the web, and the use of link analysis to determine document/page relevance. Students will work on written assignments, as well as hands-on programming projects to gain expertise in this area.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: CSE 250, MTH 309; Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 437LLB Introduction to Numerical Analysis I
    Lecture

    First part of a 2-semester sequence which explores the design and implementation of numerical methods to solve the most common types of problem arising in science and engineering. Most such problems cannot be solved in terms of a closed analytical formula, but many can be handled with numerical methods learned in this course. Topics for the two semesters include: how a computer does arithmetic, solving systems of simultaneous linear or nonlinear equations, finding eigenvalues and eigenvectors of (large) matrices, minimizing a function of many variables, fitting smooth functions to data points (interpolation and regression), computing integrals, solving ordinary differential equations (initial and boundary value problems), and solving partial differential equations of elliptic, parabolic, and hyperbolic types. We study how and why numerical methods work, and also their errors and limitations. Students gain practical experience through course projects that entail writing computer programs. Cross-listed with MTH 437.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: CSE 113 or CSE 115; and MTH 241, MTH 306, MTH 309 with grades of C or higher, or Permission of instructor
  • CSE 438LLB Introduction to Numerical Analysis II
    Lecture

    Second part of the 2-semester sequence described under CSE 437. Cross-listed with MTH 438.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 437 or MTH 437
  • CSE 442LR Software Engineering
    Lecture

    Examines in detail the software development process. Topics include software life-cycle models; architectural and design approaches; various techniques for systematic software testing; coding and documentation strategies; project management; customer relations; the social, ethical, and legal aspects of computing; and the impact of economic, environmental, safety, manufacturability, and sustainability factors on design. Students in this course participate in a real-world project from conception to implementation.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: CSE 250; Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 443LR Compilers
    Lecture

    Considers problems encountered in the design and implementation of a translator for high-level programming languages: lexical analysis, context-free grammars, parsing, storage allocation, code generation and optimization, and error recovery. Uses compiler construction tools for the programming projects. Offered occasionally.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Varies
    Prerequisites: CSE 250; CS/CEN/Bioinformatics-CS students only.
  • CSE 451LR Program Development
    Lecture

    A course in theoretical software engineering, covering the practical development of correct programs based on a mathematical notion of program correctness. Topics include: propositional and first-order logic; the specification of programs using Hoare triple and Dijkstra's weakest preconditions; the definition of a small imperative language; assignment, sequencing, a conditional statement, and a loop; and programming as a goal-oriented developmental activity, based on the formal definition of a small language. Offered irregularly.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Varies
    Prerequisites: CSE 305
  • CSE 452LEC VLSI Testing
    Lecture

    Includes topics: VLSI Testing - Why and How? Test Generation; ATPG; Fault Model; CMOS Circuits; Design for Testability; Built-in Self-Testing; Partial Scan Techniques; Simulation at various levels - Switch level, Gate level and Behavioral level; Software Tools and Equipments for Testing; Advanced Concepts - Semi-custom VLSI Chips, Wafer-Scale-Integration, Multi-Chip Modules, System-on-Chip; Case Studies - Microprocessor Testing, Testing of RAMs; Boundary Scan Technique; Analog and Mixed-signal Testing. At the end of the course, the students are expected to be able to gain the skills to modify a given circuit and make it testable using the concepts and tools learned in the class.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 493 or Permission of instructor
  • CSE 453LR Hardware/Software Integrated Systems Design
    Lecture

    Software designs produced in the prerequisite CSE 442 Software Engineering course are carried here to a complete hardware realization. Bringing skills learned from previous hardware and software-oriented courses, students form multidisciplinary workgroups and are given tools, parts, goals, and constraints, all of which define the integrated design setting. These workgroups identify, formulate, and solve the hardware and software problems posed by their project, and defend their realization concepts at key intervals during the project build-out. Projects are tested, and a report analyzing the level of satisfaction of design and performance specifications submitted. Each group prepares a 'rollout' presentation, which includes a demonstration of their project in operation. This is a required course for CEN majors.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 442 or Permission of instructor Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 455LR Introduction to Pattern Recognition
    Lecture

    Foundations of pattern recognition algorithms and machines, including statistical and structural methods. Data structures for pattern representation, feature discovery and selection, classification vs. description, parametric and non-parametric classification, supervised and unsupervised learning, use of contextual evidence, clustering, recognition with strings, and small, sample-size problems.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: (CSE 250 or EAS 230 or EAS 240 or CSE 115 or EAS 999TRCP) and EAS 305 or STA 301 or MTH 411;Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 456LR Introduction To Visualization
    Lecture

    Introduction to relevant topics and concepts in visualization, including computer graphics, visual data representation, physical and human vision models, numerical representation of knowledge and concept animation techniques, pattern analysis, and computational methods. Tools and techniques for practical visualization. Elements of related fields including computer graphics, human perception, computer vision, imaging science, multimedia, human-computer interaction, computational science, and information theory. Covers examples from a variety of scientific, medical, interactive multimedia, and artistic applications. Hands-on exercises and projects.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Varies
    Prerequisites: CSE 250; Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 460LR Data Models and Query Languages
    Lecture

    The course focuses on the issues of data models and query languages that are relevant for building present-day database applications, covering both well-established and cutting-edge frameworks. It adopts the user's point of view, discussing primarily conceptual and foundational topics. Specific topics include: Entity-Relationship and relational database design, integrity constraints, graph and semi-structured data models, relational, graph and semi-structured query languages, DATALOG, recursion, path expressions, selected current topics. Several projects are given. The projects involve using current database technologies for building applications.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall
    Other Requisites: Pre-reqs: CSE 191 and CSE 250; CSE or Bioinformatics Majors Only.
  • CSE 462LEC Database Systems
    Lecture

    Data Management Systems (including Relational Databases, Non-Relational Databases, and NoSQL storage systems) form the basis of the Big Data Economy we now live in. A data management system is responsible for storing data, enabling efficient access to that data, as well as mediating concurrent modifications. This class approaches the challenges of designing a data management system from a standpoint that is both principled and practical. The course revolves around a term-long programming assignment, in which you will build a system that answers SQL queries efficiently. Course lectures will focus on the conceptual basis for this system, and will discuss how the techniques you learn generalize (e.g., to the use of NoSQL systems).

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 250 and CSE 460;Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 462LR Database Concepts
    Lecture

    Discusses basic concepts of modern database management systems. Topics include: data models, query languages, database design, integrity constraints, indexing, query evaluation, and transaction management. Students implement small projects using modern DBMS.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
    Prerequisites: CSE 250 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 463LR Knowledge Representation
    Lecture

    Introduces the field of knowledge representation and reasoning, the branch of artificial intelligence concerned with the techniques for representing and reasoning about the information to be used by an AI program. Topics typically include: the knowledge-representation hypothesis; propositional and first-order logic; model finding; resolution; syntactic proof theory; direct and refutation methods; relevance logic; truth maintenance and belief revision; commonsense reasoning; ontologies. Other topics that may be included as time permits are: modal logics; non-monotonic, defeasible, and default logics; logics of knowledge and belief; frames; description logics; vague and uncertain beliefs; logics of actions and time.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: CSE 305 or Permission of instructor
  • CSE 467LEC Computational Linguistics
    Lecture

    Introduces computational models for understanding natural languages. Covers topics including, but not limited to, syntactic and semantic parsing, generation, and knowledge representation techniques. Cross-listed with LIN 467.

    Credits: 3
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: CSE 250; Approved CSE Majors Only
  • CSE 468LR Robotics Algorithms
    Lecture

    This course will study key algorithms relevant to programming intelligent robots with a focus on the following questions: How might one program a robot to estimate the state of the world based on multiple sources of information? How might a robot create plans or control policies for performing tasks? How might a robot learn a control policy directly from experience? The course will cover topics in estimation, control, and planning with applications to robotics including: reinforcement learning, linear optimal control, randomized motion planning, trajectory optimization, Kalman filtering, particle filtering, and selected topics in optimization.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: (CSE 250 or EAS 230 or EAS 240 or CSE 115 or EAS 999TRCP) and EAS 305 or MTH 411 or STA 301;Computer Science, Computer Engineering, or Bioinformatics-CS majors only.
  • CSE 469LEC Introduction to Data Mining
    Lecture

    This course introduces fundamental techniques in data mining, i.e., the techniques that extract useful knowledge from a large amount of data. Topics include data preprocessing, exploratory data analysis, association rule mining, clustering, classification and anomaly detection. Students are expected to gain the skills to formulate data mining problems, solve the problems using data mining techniques and interpret the output.

    Credits: 3
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
    Prerequisites: CSE 250 and MTH 411 or EAS 305 or STA 301 or MTH 309 and CS, CSE, and Bioinformatics majors only
  • CSE 470LR Introduction to Parallel and Distributed Processing
    Lecture

    This course is intended for students interested in the efficient use of modern parallel systems ranging from multi-core and many-core processors to large-scale distributed memory clusters. The course puts equal emphasis on the theoretical foundations of parallel computing and practical aspects of different parallel programming models. It begins with a survey of common parallel architectures and types of parallelism, and then follows with an overview of formal approaches to assess scalability and efficiency of parallel algorithms and their implementations. In the second part, the course covers the most common and current parallel programming techniques and APIs, including for shared address space, many-core accelerators, distributed memory clusters and big data analytics platforms. Each component of the course involves solving practical computational and data driven problems, ranging from basic algorithms like sorting or searching, to graphs and numerical data analysis.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: CSE 331 and Approved Computer Science, Computer Engineering, and Bioinformatics/CS Majors only
  • CSE 473LR Introduction to Computer Vision and Image Processing
    Lecture

    Introduces those areas of artificial intelligence that relate to fundamental issues and techniques of computer vision and image processing. Emphasizes physical, mathematical, and image-processing aspects of vision. Topics include image formation, edge detection, segmentation, convolution, image-enhancement techniques, extraction of features (such as color, texture, and shape), object detection, 3-D vision, and computer system architectures and applications.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Other Requisites: CSE 250 AND MTH 411 OR STA 301 OR EAS 305 OR MTH 309 AND approved CS, CEN, Bioinformatics/CS majors only
  • CSE 474LR Introduction to Machine Learning
    Lecture

    Involves teaching computer programs to improve their performance through guided training and unguided experience. Takes both symbolic and numerical approaches. Topics include concept learning, decision trees, neural nets, latent variable models, probabilistic inference, time series models, Bayesian learning, sampling methods, computational learning theory, support vector machines, and reinforcement learning.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: CSE 250 and EAS 305 or MTH 411 or STA 301 or MTH 309. Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 475LLR Modern Computer Systems
    Lecture

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Varies
  • CSE 484LR Philosophy of Computer Science
    Lecture

    Introduces philosophical issues in computer science. Examines the nature of computer science (e.g., whether it is a science or a branch of engineering, whether it is the study of physical computers or abstract computing); the nature of computation, algorithms, and software, and their implementation in computer programs; the nature of computer programs (e.g., whether they are theories, models, or simulations; whether they can or should be patented or copyrighted; whether they can be verified). Also briefly explores the philosophy of artificial intelligence and issues in computer ethics. Offered irregularly. Cross listed with PHI 484.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Varies
    Other Requisites: Junior or Senior standing, or permission of instructor
  • CSE 486LR Distributed Systems
    Lecture

    Addresses some of the fundamental challenges in the design, implementation and deployment of large-scale distributed systems. Concepts covered include concurrency, synchronization, connection establishment, event handling, inter process communication, storage management, and service registration, discovery, and lookup. Also covers issues related to distributed objects such as life cycle management, mobility, security, naming, location, evolution, and autonomy. Analyses and implements possible solutions using objects, processes, services, components and frameworks. Offered irregularly.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: CSE 250 or permission of instructor and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 487LR Data Intensive Computing
    Lecture

    Data-intensive computing deals with storage models, application architectures, middleware, and programming models and tools for large-scale data analytics. In particular we study approaches that address challenges in managing and utilizing ultra-scale data and the methods for transforming voluminous data sets (big data) into discoveries and intelligence for human understanding and decision making. Topics include: storage requirements of big data, organization of big data repositories such as Google File System (GFS) semantic organization of data, data-intensive programming models such as MapReduce, fault-tolerance, privacy, security and performance, services-based cloud computing middleware, intelligence discovery methods, and scalable analytics and visualization. This course has three majors goals: (i) understand data-intensive computing, (ii) study, design and develop solutions using data-intensive computing models such as MapReduce and (iii) focus on methods for scalability using the cloud computing infrastructures such as Google App Engine (GAE), Amazon Elastic Compute Cloud (EC2), and Windows Azure. On completion of this course students will be able to analyze, design, and implement effective solutions for data-intensive applications with very large scale data sets.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: CSE 250 and approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only. Departmental senior standing recommended.
  • CSE 489LR Modern Networking Concepts
    Lecture

    Introduces basic elements of modern computer and telecommunications networks. Discusses a hybrid five-layer reference model resembling the popular TCP/IP model. In each layer, the course introduces the state-of-the-art hardware and software technologies. These include, for example, fiber-optic and wireless/mobile/cellular communications at the physical layer, to network security in the application layer. Offered once a year.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: CSE 250 and EAS 305 or MTH 411 or STA 301 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 490LR Computer Architecture
    Lecture

    Examines system architecture with 32- and 64-bit microprocessors. Topics include the design of high-performance computer systems, such as workstations and multiprocessor systems using recent advanced microprocessor. Considers the internal architecture of recent microprocessors, followed by vector processing, memory hierarchy design, and communication subsystems for I/O and interprocessor communication.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 341 or CSE 379 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 492TUT Undergraduate Peer Mentoring
    Tutorial

    This course provides the opportunity for undergraduate students to serve as undergraduate mentors for students entering the Computer Science & Engineering department. Students that are interested in becoming mentors are asked to contact the mentor program coordinators. Registration in the course is by permission of the coordinators only. (May not be used to satisfy the requirements for the BA or BS.)

    Credits: 1 - 3
    Grading: Pass/Not Pass (PNP)
    Typically Offered: Varies
  • CSE 493LLB Introduction to VLSI Electronics
    Lecture

    Introduces VLSI electronics. VLSI is the integration of a large number of logic gates on a single semiconductor chip. Applications of VLSI include memory, microprocessors, and signal processing. Topics include digital system design; VLSI systems; CMOS circuits; use of CAD tools in the layout of full-custom and semi-custom integrated circuits. Project required. Emphasizes designing a working chip and understanding various steps in design. Typical projects: ALU, games, controllers.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: CSE 241 or EE 178 or EE 278 or Permission of instructor and Approved Computer Science, Computer Engineering, Bioinformatics/CS, Electrical Engineering Majors only.
  • CSE 494SEM Senior Capstone/Seminar
    Seminar

    Course for senior-level majors intended to provide a learning experience that integrates knowledge from lower-level courses. Topics may vary. (May not be used to satisfy the requirements for the BA or BS unless specifically used as capstone or senior seminar.)

    Credits: 3
    Grading: Graded (GRD)
    Typically Offered: Varies
    Prerequisites: Completion of year 1-3 major requirements
  • CSE 495TUT Supervised Teaching
    Tutorial

    Students participating in this course serve as undergraduate teaching assistants. Responsibilities include leading lab and recitation sections, and holding study sessions. (May not be used to satisfy the requirements for the BA or BS.)

    Credits: 1 - 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
    Prerequisites: Junior status, 3.0 QPA, A- or better in course teaching, permission of instructor
  • CSE 496TUT Internship
    Tutorial

    Field experience working on a computer science project in a real-world setting under the joint direction of a supervisor from industry and a faculty advisor from the Department of Computer Science and Engineering. Projects selected should integrate the material learned in academic courses. Upon completing the internship the student is expected to have fulfilled an internship contract. Only S/U grades are given (therefore, internships may not be used to satisfy requirements for the BA or BS.) No more than 5 credit hours of CSE 498 may be taken. Offered every semester.

    Credits: 1 - 5
    Grading: Pass/Not Pass (PNP)
    Typically Offered: Fall, Spring, Summer
    Other Requisites: Accepted CSE Major and CSE 250 or Permission of CSE Internship Coordinator
  • CSE 497TUT Departmental Honors Thesis or Project
    Tutorial

    Accepted seniors pursue a specialized independent study leading to an honors thesis or project.(May not be used to satisfy the requirements for the BA or BS.)

    Credits: 3
    Grading: Graded (GRD)
    Typically Offered: Varies
    Prerequisites: Acceptance into departmental honors program and permission of instructor
  • CSE 498TUT Undergraduate Research and Creative Activity
    Tutorial

    Students collaborate with faculty research mentors on an ongoing project in a faculty member's laboratory or conduct independent research under the guidance of a faculty member. This experience provides students with an inquiry based learning opportunity and engages them as active learners in a research setting. (May not be used to satisfy the requirements for the BA or BS.) Permission of instructor required.

    Credits: 1 - 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
  • CSE 499TUT Independent Study
    Tutorial

    Independent study is tailored towards special projects working independently with the faculty. (May not be used to satisfy the requirements for the BA or BS.) Permission of instructor required.

    Credits: 1 - 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
Published: November 16, 2017 08:32:45 AM