Skip to main content.

Computer Science & Engineering (CSE)

Department of Computer Science and Engineering

338 Davis Hall
North Campus
Buffalo, NY 14260-2500

Chunming Qiao
Chair

Carl Alphonce
Co-Director of Undergraduate Studies

Steve Ko
Co-Director of Undergraduate Studies

Christy Krawczyk
Undergraduate Academic Coordinator

Associated Programs

Associated Subjects

CSE Courses

  • The Learning Environment

    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.

    Seven 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. BS/MS degrees are offered through the Departments of Biomedical and Electrical 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.

    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, Bonner and Bell 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.

    These projects include research in:

    • algorithms and theory
    • augmentative technology for the handicapped
    • computer networks and distributed systems
    • computer security and information assurance
    • computer vision and information visualization
    • data integration and databases
    • high performance and grid computing
    • cyber infrastructure and computational science
    • knowledge representation
    • computational linguistics
    • medical applications and bioinformatics
    • human computer interaction
    • wireless computing
    • multimedia databases and informational retrieval
    • pattern recognition
    • machine learning
    • data mining
    • programming languages and software systems
    • embedded systems
    • VLSI
    • computer architecture

    Faculty List Directory

    Please visit the Computer Engineering department website for additional information about our faculty.

  • CSE 101LLB Computers: A General Introduction
    View Schedule 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: Spring
  • CSE 111LLB Introduction to Quantitative Analysis and Reasoning with Computing
    View Schedule 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 115LLR Introduction to Computer Science I
    View Schedule CSE 115LLR Introduction to Computer Science I Lecture

    Provides the fundamentals of computer science with an emphasis on applying programming skills to solve problems and increase human efficiency. Topics include variables, data types, expressions, control flow, functions, input/output, data storage, networking, security, selection, sorting, iteration and the use of aggregate data structures such as lists and more general collections. No previous programming experience required.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
    Prerequisites: 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 II
    View Schedule CSE 116LLB Introduction to Computer Science II Lecture

    Students will continue to develop the skills introduced in CSE 115 while exploring the details of program execution and the structure of large programs. Emphasizes design decisions that affect the efficiency, expandability, and maintainability of code while analyzing the differences amongst a variety of approaches. Design decisions analyzed include choice of data structures and object-oriented techniques such as encapsulation, polymorphism, and inheritance. Additional topics include the use of recursion, multithreading, parallelism, hardware, graph and tree traversals, asymptotic analysis, divide and conquer, databases, testing, and multi-language integration.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
    Prerequisites: CSE 115 or EAS 230 or EAS 240 or EAS 999TRCP.
  • CSE 191LR Introduction to Discrete Structures
    View Schedule CSE 191LR Introduction to 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, basic counting theory, regular languages, and context free grammars.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
    Prerequisites: CSE 115 or EAS 230 or EAS 240 or EAS 999TRCP.
  • CSE 199SR UB Seminar
    View Schedule 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
    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 220LLB Systems Programming
    View Schedule CSE 220LLB Systems Programming Lecture

    This course is an introductory course on computer systems. It introduces computer systems from a programmer's perspective, rather than a system implementer's perspective, which prepares students for more advanced topics that discuss the internals of a computer system (e.g., operating systems or computer architecture). As a result, the focus of the course is teaching programmable interfaces of a computer system as well as how to use them correctly and effectively when writing a program. The topics mainly include hardware/software interfaces (e.g., data representation in memory) and OS/application interfaces (e.g., syscalls). In discussing these topics, the course gives an overview of a complete computer system, the hardware, operating system, compiler, and network, in order to guide students through various components that modern programs rely on to accomplish their intended purposes.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: CSE 116. SEAS approved or Intended Majors, CS Minors.
  • CSE 234LEC Intro to Blockchain
    View Schedule 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
    Prerequisites: CSE 116 or equivalent, OR permission of instructor.
  • CSE 241LLB Digital Systems
    View Schedule CSE 241LLB 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: Spring, Summer
    Prerequisites: SEAS Majors, Computing and Applied Math Majors and any student in the Computer Science Minor.
  • CSE 250LR Data Structures
    View Schedule CSE 250LR Data Structures Lecture

    Provides a rigorous analysis of the design, implementation, and properties of advanced data structures. Topics include time-space analysis and tradeoffs in arrays, vectors, lists, stacks, queues, and heaps; tree and graph algorithms and traversals, hashing, sorting, and data structures on secondary storage. 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.

    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
    View Schedule 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
    View Schedule 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
    Prerequisites: CSE 250. Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 312LR Introduction to Web Applications
    View Schedule 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
    Prerequisites: CSE 250. Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 321LR Real -Time and Embedded Operating Systems
    View Schedule 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 Algorithms and Complexity
    View Schedule CSE 331LR Algorithms and Complexity Lecture

    Introduces paradigms for designing algorithms and fundamental limitations to what algorithms can do. Covers basic algorithm design paradigms of greedy algorithms, divide and conquer algorithms and dynamic programming, as well as a selection of advanced algorithmic topics, such as randomized algorithms, algorithms for distributed systems and basic algorithms for machine learning. Topics related to limitations of algorithms include NP-completeness and undecidability. Coverage includes analyzing algorithms via proofs and programming assignments to implement algorithms.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: MTH 142 and CSE 250 and (CSE 191 or MTH 311). Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 337LLB Introduction to Scientific Computing
    View Schedule 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
    View Schedule 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: EE 178 or CSE 241 or CSE 220Approved Computer Science, Computer Engineering, Bioinformatics/CS, Electrical Engineering Majors Only.
  • CSE 365LR Introduction to Computer Security
    View Schedule 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
    Prerequisites: CSE 250 and approved Computer Science, Computer Engineering, and Bioinformatics/CS Majors only.
  • CSE 368LR Introduction to Artificial Intelligence
    View Schedule 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: Varies
    Prerequisites: CSE 116. Approved Computer Science, Computer Engineering, and Bioinformatics/CS Majors only.
    Corequisites: EAS 305 or MTH 411 or STA 301.
  • CSE 370LR Applied Human Computer Interaction and Interface Design
    View Schedule CSE 370LR Applied Human Computer Interaction and Interface Design Lecture

    This is an undergraduate-?level course intended for junior and senior-?level students that will teach them introductory concepts of human computer interaction. The main topics covered in this course will be interface and experience design, interface development in a variety of environments, and evaluation of design via multiple methods including usability studies.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 250.
  • CSE 379LLB Introduction to Microprocessors
    View Schedule 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 396LR Introduction to the Theory of Computation
    View Schedule 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 142.Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only.
  • CSE 408LEC Programming with Python
    View Schedule 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 115 or EAS 230 or EAS 240 or EAS 999TRCP;Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only.
  • CSE 410LR Special Topics
    View Schedule 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: 1 - 4
    Grading: Graded (GRD)
    Typically Offered: Varies
    Prerequisites: Permission of instructor;Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
  • CSE 411LEC Introduction to Computer Systems Administration
    View Schedule CSE 411LEC 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: 3
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only. Departmental senior standing recommended.
  • CSE 421LR Introduction to Operating Systems
    View Schedule 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
    View Schedule 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: 3
    Grading: Graded (GRD)
    Typically Offered: Summer
    Prerequisites: CSE 421 or Permission of instructor.
  • CSE 426LEC Blockchain Application Development
    View Schedule CSE 426LEC Blockchain Application Development Lecture

    This course is intended for students interested in learning about blockchain technology and in developing applications using the blockchain concepts. It begins with the definition of the blockchain as a trust layer over the internet for working with distributed resources with decentralized and disintermediated control. Topics include: Definition of a blockchain in terms of transactions, blocks and chain of blocks, data structures enabling the blockchain protocol and operational details involving algorithms and techniques such as peer-to-peer transactions, cryptography, digital signing and hashing, and consensus mechanisms. All of these concepts will be illustrated using Bitcoin and Ethereum blockchain. In the second part of the course, we introduce the concept of code execution the blockchain and the program module called smart contract and a language, Solidity, for writing smart contracts, compiling, deploying and testing the smart contracts on Ethereum blockchain. In the last part of the course, we introduce a decentralized application (Dapp) stack and explore problem solving using blockchain. This involves design and development of a Dapp stack with the computational logic represented by the smart contract code, a user interface and support for external data access through oracles, and decentralized file systems. Students will work on hands-on end-to-end Dapp projects using Ethereum blockchain and Truffle integrated development environment (IDE). The course will also discuss standards, best practices, and current challenges, such as scalability and interoperability, and the respective solutions. This course is dual-listed with CSE 526.

    Credits: 3
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 250 or permission of instructor.
  • CSE 429LEC Algorithms for Modern Computing Systems
    View Schedule CSE 429LEC 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: 3
    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
    View Schedule 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: 3
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 331. Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 431LEC Algorithms Analysis and Design
    View Schedule CSE 431LEC 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: 3
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: CSE 331.Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only.
  • CSE 435LEC Information Retrieval
    View Schedule CSE 435LEC 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: 3
    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
    View Schedule 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 115, (MTH 241 or MTH 251), MTH 306, and MTH 309 with grades of C or higher, or Permission of instructor.
  • CSE 438LLB Introduction to Numerical Analysis II
    View Schedule 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
    View Schedule 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, Spring
    Prerequisites: CSE 250; Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors only.
  • CSE 443LR Compilers
    View Schedule 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: 3
    Grading: Graded (GRD)
    Typically Offered: Varies
    Prerequisites: CSE 250; CS/CEN/Bioinformatics-CS students only.
  • CSE 445LR Coding Theory
    View Schedule CSE 445LR Coding Theory Lecture

    Error correcting codes (or just codes) are systematic ways of introducing redundancy into data so that the original information can be recovered even when the data is corrupted. Codes are used ubiquitously in communication systems and data storage. The study of error correcting codes (or coding theory) started with the seminal works of Shannon and Hamming in the late 1940s and has been an active cross-disciplinary research area since then. This course will discuss the theoretical aspects of codes and will focus mostly on the worst-case noise model pioneered by Hamming. However, we will discuss quite a few results on the stochastic noise model pioneered by Shannon. The course will roughly cover three parts: (i) combinatorial aspects of codes, i.e. the limit of what can and cannot be achieved with codes; (ii) computationally efficient algorithms for using codes; and (ii) application of codes in theoretical computer science. Major developments in coding theory since the 1990s will be emphasized. This course is dual listed with CSE 545.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 331.
  • CSE 450LEC Hardware/Software Integrated Systems Design I
    View Schedule CSE 450LEC Hardware/Software Integrated Systems Design I Lecture

    This is the first course in a two-course computer engineering capstone design sequence where students get practical experience using the skills they have learned in previous courses. Students design a project that requires the integration of hardware and software into a complete system. Bringing skills learned from previous software and hardware 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 posted by their project, and defend their realization concepts at key intervals during the design process. Each group must present a final design review at the end of the semester. In Hardware/Software Integrated Hardware Design II, projects are built, tested, and delivered to the client. Along the way students must author technical documentation to accompany their project. This is a required course for CEN majors.

    Credits: 3
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: CSE 379 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only.
  • CSE 453LR Hardware/Software Integrated Systems Design
    View Schedule 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: 3
    Grading: Graded (GRD)
    Typically Offered: Spring
    Prerequisites: CSE 442 or Permission of instructor Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only.
  • CSE 454LEC Explorations of Computational Intelligence in Computer Engineering Applications
    View Schedule CSE 454LEC Explorations of Computational Intelligence in Computer Engineering Applications Lecture

    There are many areas of computer engineering that utilize machine learning. We will explore several computer engineering topics and a computational intelligence topic (or two) that applies to that situation and how to implement it. This course will provide exposure to several computer engineering applications, the determination of the problem in that application, identification of a computational intelligence technique for that problem, and then the application of that technique to the problem.

    Credits: 3
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring
    Prerequisites: PHY 108 and CSE 250.
  • CSE 455LR Introduction to Pattern Recognition
    View Schedule 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: 3
    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
    View Schedule 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
    View Schedule 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. This course is dual-listed with CSE 560.

    Credits: 4
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: CSE 191 and CSE 250; CSE or Bioinformatics Majors Only.
  • CSE 462LR Database Systems
    View Schedule CSE 462LR 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 463LR Knowledge Representation
    View Schedule 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
    View Schedule CSE 467LEC Computational Linguistics Lecture

    Introduces the field of computational linguistics, which is concerned with the understanding and use of language by computers. This course is the same as LIN 467, and course repeat rules will apply. Students should consult with their major department regarding any restrictions on their degree requirements.

    Credits: 3
    Grading: Graded (GRD)
    Typically Offered: Fall
    Prerequisites: LIN 205 or CSE 250
  • CSE 468LEC Robotics Algorithms
    View Schedule CSE 468LEC 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: 3
    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
    View Schedule 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 470LEC Introduction to Parallel and Distributed Processing
    View Schedule CSE 470LEC 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: 3
    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
    View Schedule 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
    View Schedule 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 486LEC Distributed Systems
    View Schedule CSE 486LEC 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: 3
    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
    View Schedule 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
    View Schedule 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
    View Schedule 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. This course is dual-listed with CSE 590.

    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
    View Schedule 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
    View Schedule 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
    View Schedule 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
    View Schedule 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/Practicum
    View Schedule CSE 496TUT Internship/Practicum 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. 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
    View Schedule 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
    View Schedule 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 - 6
    Grading: Graded (GRD)
    Typically Offered: Fall, Spring, Summer
  • CSE 499TUT Independent Study
    View Schedule 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
date_range Schedule: {{course.abbr}} {{course.num}} {{course.title}} close
 
No schedule for this course in the {{semester.toUpperCase()}} semester.
Schedule for {{course.abbr}} {{course.num}} {{course.title}}
Course # Type Title Section Where When Seats Left
{{c._id}} << >> {{c.catalog.type_pk}} {{c.alt_title}} {{c.catalog.description}} {{c.section}} {{c.room}} MTWRFSaSu {{getTime(c.when[0].dates.start,false)}}-{{getTime(c.when[0].dates.end,true)}} {{getSeatsLeft(c.enrollment)}}
 
Published: Jun 28, 2019 08:24:28