UB - University at Buffalo, The State University of New York Computer Science and Engineering

photo of CSE grad students in classCSE Course Offerings - Summer 2017

CSE 101 Computers: A General Introduction

Introduces computers and applications software. Areas of study include computers and their societal impact; history; hardware; problem solving; buying computers and software; and application packages, such as word processing, spreadsheets, and database systems. Admitted computer science and computer engineering majors should not enroll in this course.

0/23
Staff
Jun 26, 2017 - Aug 4, 2017
UNKWN, Unkn - Unkn
Unknown
4
Basic knowledge of arithmetic. No experience with computers needed.
None
LEC

CSE 111 Intro to Quantatative Analysis

Open
11/23
Andrew Hughes
May 30, 2017 - Jul 7, 2017
TR, 930A - 1235
Baldy 206
4
LEC

CSE 113 Introduction to Computer Programming I

Introduction to computers and computer programming intended for nonmajors. Currently required for some School of Management majors and appropriate for others 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 except those who have absolutely no experience using a computer. Admitted computer science and computer engineering students should not take this course.

Open
21/23
Luigi Di Tacchio
May 30, 2017 - Jul 7, 2017
MW, 140P - 455P
Baldy 206
4
None
None
LEC

CSE 115 Introduction to Computer Science for Majors I

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.

Open
10/33
James Scandale
May 30, 2017 - Jul 7, 2017
TR, 200P - 515P
Bell 340
4
No previous programming experience required
MTH 141 or equivalent
LEC

CSE 115 Introduction to Computer Science for Majors I

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.

Open
14/33
James Scandale
May 30, 2017 - Jul 7, 2017
TR, 945A - 100P
Bell 340
4
No previous programming experience required
MTH 141 or equivalent
LEC

CSE 116 Introduction to Computer Science for Majors II

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).

Open
22/30
James Scandale
Jul 10, 2017 - Aug 18, 2017
MW, 945A - 100P
Bell 340
4
CSE 115 or permission of instructor
None
LEC

CSE 116 Introduction to Computer Science for Majors II

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).

Open
21/33
James Scandale
May 30, 2017 - Jul 7, 2017
MW, 200P - 515P
Bell 340
4
CSE 115 or permission of instructor
None
LEC

CSE 116 Introduction to Computer Science for Majors II

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).

Open
31/33
James Scandale
May 30, 2017 - Jul 7, 2017
MW, 945A - 100P
Bell 340
4
CSE 115 or permission of instructor
None
LEC

CSE 191 Discrete Structures

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.

Open
25/35
Jeremy Topolski
May 30, 2017 - Jul 28, 2017
TR, 200P - 410P
Capen 258
4
None
None
LEC

CSE 241 Digital Systems

A course in digital principles which includes an introduction to machine dependent programming. Topics covered include: fundamentals of digital logic, computer arithmetic & Boolean algebra, minimization techniques, basic components of digital circuits such as logic gates and flip-flops, information representation, design of combinational and sequential circuits, memory devices and programmable logic devices, CPU organization, arithmetic logic unit and control unit design, assembly language programming.

Open
12/40
Jennifer Winikus
May 30, 2017 - Jul 7, 2017
MW, 200P - 515P
Talbrt 103
4
None
None
LEC

CSE 250 Data Structures

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. CSE 191 may also be used as a corequisite.

Open
51/55
Jul 10, 2017 - Aug 18, 2017
TR, 200P - 515P
Capen 262
4
CSE 116, CSE 191
None
LEC

CSE 305 Introduction to Programming Languages

Examines the various components of programming languages so students will understand the choices that have been made by programming language designers, and how those choices affect how procedures may be expressed and how data are conceptualized. Topics generally include the nature of variables, types, expressions, control structures, subprograms, concurrency, and exceptions; syntax and semantics. Discusses different programming paradigms, such as imperative, functional, logic, procedural and object-oriented.

Open
22/35
Luigi Di Tacchio
May 30, 2017 - Jul 7, 2017
TR, 915A - 1230
Capen 262
4
CSE 250
None
LEC

CSE 331 Introduction to Algorithm Analysis and Design

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.

Open
12/40
Chaowen Guan
May 30, 2017 - Aug 18, 2017
TR, 230P - 405P
Nsc 216
4
CSE 191, CSE 250, MTH 142
None
LEC

CSE 341 Computer Organization

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.

Open
11/40
Jennifer Winikus
May 30, 2017 - Aug 18, 2017
MW, 900A - 1035
Talbrt 103
4
CSE 241 or EE 378
None
LEC

CSE 379 Intro to Microproccessors

0/26
Staff
May 30, 2017 - Aug 18, 2017
UNKWN, Unkn - Unkn
Unknown
4
LEC

CSE 396 Introduction to the Theory of Computation

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.

Open
14/25
Andrew Hughes
May 30, 2017 - Jul 7, 2017
MWF, 1000 - 1210
Nsc 216
4
CSE 191, CSE 250, and MTH 142 Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only
None
LEC

CSE 411 Introduction to Computer Systems Administration

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.

Open
20/50
Staff
Jul 24, 2017 - Aug 18, 2017
MW, 100P - 310P
Capen 262
4
CSE 241 or CSE 378
None
LEC

CSE 421 Introduction to Operating Systems

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.

Open
28/30
Dr. Tevfik Kosar
May 30, 2017 - Jul 7, 2017
MWF, 1000 - 1210
Capen 262
4
CSE 250 and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only. Departmental senior standing recommended.
None
LEC

CSE 442 Software Engineering

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.

Open
9/30
Matthew Hertz
May 30, 2017 - Jul 7, 2017
TR, 900A - 1215
Obrian 109
4
CSE 250 and Departmental Senior Standing
None
LEC

CSE 462 Database Concepts

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.

Open
10/30
Ning Deng
May 30, 2017 - Jul 7, 2017
TR, 1000 - 115P
Obrian 209
4
CSE 250
None
LEC

CSE 473 Introduction to Computer Vision and Image Processing

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.

Open
7/20
May 30, 2017 - Jul 28, 2017
MW, 300P - 510P
Baldy 108
4
Departmental senior standing or permission of instructor
None
LEC

CSE 490 Computer Architecture

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.

Open
1/20
May 30, 2017 - Jul 7, 2017
MW, 945A - 100P
Capen 257
4
CSE 379 or CSE 341
None
LEC

CSE 503 Computer Science for Non-Majors I

This course introduces students to algorithm design and implementation in a modern, high-level, programming language (currently, Java). It emphasizes problem-solving by abstraction. There will also be a brief coverage of the social and ethical aspects of computing. Topics include data types, variables, expressions, basic imperative programming techniques including assignment, input/output, subprograms, parameters, selection, iteration, Boolean type, and expressions, and the use of aggregate data structures including arrays and records. Students will also have an introduction to the basics of abstract data types and object-oriented design, as well as the mathematics of computer science such as Boolean algebra, basic number theory, etc.

May not be counted toward the 30 hours for the M.S. or the 72 hours for the Ph.D.

Open
2/5
James Scandale
Jun 26, 2017 - Aug 4, 2017
TR, 945A - 100P
Arr Arr
3
Some previous experience with computers.
LEC

CSE 503 Computer Science for Non-Majors I

This course introduces students to algorithm design and implementation in a modern, high-level, programming language (currently, Java). It emphasizes problem-solving by abstraction. There will also be a brief coverage of the social and ethical aspects of computing. Topics include data types, variables, expressions, basic imperative programming techniques including assignment, input/output, subprograms, parameters, selection, iteration, Boolean type, and expressions, and the use of aggregate data structures including arrays and records. Students will also have an introduction to the basics of abstract data types and object-oriented design, as well as the mathematics of computer science such as Boolean algebra, basic number theory, etc.

May not be counted toward the 30 hours for the M.S. or the 72 hours for the Ph.D.

Open
0/5
James Scandale
Jun 26, 2017 - Aug 4, 2017
TR, 200P - 515P
Unknown
3
Some previous experience with computers.
LEC

CSE 504 Computer Science for Non-Majors II

This course is a continuation of CSE 503, in which heavy emphasis is placed on abstract data types (ADTs) and object-oriented methodology, where the student will be expected not only to understand ADTs, but also to design and implement robust ADTs using a modern, object-oriented, programming language. Topics such as encapsulation, polymorphism, templates, and inheritance will be emphasized. Essential topics to be integrated in this framework include the use of recursion; pointers; dynamic memory management; linked structures including linked lists, binary trees, stacks, queues, and other advanced data structures; and algorithms, including advanced searching and sorting algorithms. The analysis of algorithm complexity ("big O" notation) will be introduced.

May not be counted toward the 30 hours for the M.S. or the 72 hours for the Ph.D.

Open
0/5
James Scandale
Jul 10, 2017 - Aug 18, 2017
MW, 945A - 100P
Unknown
3
An introductory computer science course, such as CSE 503 or CSE113, or CSE115, that includes programming in a high-level language such as C++ or Java.
LEC

CSE 504 Computer Science for Non-Majors II

This course is a continuation of CSE 503, in which heavy emphasis is placed on abstract data types (ADTs) and object-oriented methodology, where the student will be expected not only to understand ADTs, but also to design and implement robust ADTs using a modern, object-oriented, programming language. Topics such as encapsulation, polymorphism, templates, and inheritance will be emphasized. Essential topics to be integrated in this framework include the use of recursion; pointers; dynamic memory management; linked structures including linked lists, binary trees, stacks, queues, and other advanced data structures; and algorithms, including advanced searching and sorting algorithms. The analysis of algorithm complexity ("big O" notation) will be introduced.

May not be counted toward the 30 hours for the M.S. or the 72 hours for the Ph.D.

Open
0/5
James Scandale
Jun 26, 2017 - Aug 4, 2017
MW, 945A - 100P
Arr Arr
3
An introductory computer science course, such as CSE 503 or CSE113, or CSE115, that includes programming in a high-level language such as C++ or Java.
LEC

CSE 504 Computer Science for Non-Majors II

This course is a continuation of CSE 503, in which heavy emphasis is placed on abstract data types (ADTs) and object-oriented methodology, where the student will be expected not only to understand ADTs, but also to design and implement robust ADTs using a modern, object-oriented, programming language. Topics such as encapsulation, polymorphism, templates, and inheritance will be emphasized. Essential topics to be integrated in this framework include the use of recursion; pointers; dynamic memory management; linked structures including linked lists, binary trees, stacks, queues, and other advanced data structures; and algorithms, including advanced searching and sorting algorithms. The analysis of algorithm complexity ("big O" notation) will be introduced.

May not be counted toward the 30 hours for the M.S. or the 72 hours for the Ph.D.

Open
0/5
James Scandale
Jun 26, 2017 - Aug 4, 2017
MW, 200P - 515P
Unknown
3
An introductory computer science course, such as CSE 503 or CSE113, or CSE115, that includes programming in a high-level language such as C++ or Java.
LEC

CSE 521 Introduction to Operating Systems

Concepts of operating systems described in terms of function, structure, and implementation; particular emphasis on multiprogramming. Example concepts are: concurrent programming, virtual memory, scheduling policies for CPU and secondary storage, deadlocks, file systems, and protection. Concepts will be illustrated with examples from existing operating systems.

Open
15/28
Dr. Tevfik Kosar
May 30, 2017 - Jul 7, 2017
MWF, 1000 - 1210
Capen 262
3
Basic knowledge of assembly-language programming and computer organization.
LEC

CSE 541 Programing Multi/Core Arch

Open
25/30
Staff
May 30, 2017 - Aug 18, 2017
UNKWN, Unkn - Unkn
Unknown
3
LEC

CSE 542 Software Engineering Concepts

This course introduces the terminology and concepts of software engineering. Following a discussion of how software engineering evolved in response to early practices of the computer industry, the concepts of well-engineered software, the software process and the management process model are presented. Additional topics include software requirements definition, software design, verification and validation, and software management. Graduate students are required to investigate and report on a topic relevant to the course. (Same as ECE 442).

Open
19/30
Matthew Hertz
May 30, 2017 - Jul 7, 2017
TR, 900A - 1215
Obrian 109
3
Experience in writing computer programs in at least one higher level language such as C/C++ and Java.
LEC

CSE 562 Database Systems

The basic design principles of systems managing very large databases will be discussed. Topics will include: database design, data models, integrity constraints, query languages, database file organization, indexing, query processing and optimization, transaction processing. Students will implement one or more modules of a prototype database system.

Open
29/35
Gokhan Kul
May 30, 2017 - Jul 7, 2017
TR, 200P - 515P
Capen 262
3
Solid background in programming and data structures. Significant programming experience in Java.
LEC

CSE 573 Introduction to Computer Vision and Image Processing

This course is an introduction to those areas of Artificial Intelligence that deal with fundamental issues and techniques of computer vision and image processing. The emphasis is on physical, mathematical, and information-processing aspects of the vision. Topics to be covered include image formation, edge detection and segmentation, convolution, image enhancement techniques, extraction of features such as color, texture, and shape, object detection, 3-D vision, and computer vision system architectures and applications.

Open
17/40
May 30, 2017 - Jul 28, 2017
MW, 300P - 510P
Baldy 108
3
CSE 305 or permission of instructor. Cross listed with CSE 473.
LEC

CSE 590 Computer Architecture

This course will provide an in-depth understanding of the inner workings of modern digital computer systems and trade-offs present at the hardware-software interface. Topics include: computer abstractions and technology, cost and performance analysis, instruction set architecture, computer arithmetic, datapath and controller design, pipelining, memory systems, input-output systems, and interrupts and exceptions. Projects requiring the use of software tools like the SPIM simulator for MIPS R2000/R3000 RISC processors and the Verilog hardware description language will be given to help crystallize concepts presented in class.

Open
8/50
May 30, 2017 - Jul 7, 2017
MW, 945A - 100P
Capen 257
3
Introductory digital logic design.
LEC

CSE 651 Emerging App in Embed Sys

Open
24/30
Staff
May 30, 2017 - Aug 18, 2017
UNKWN, Unkn - Unkn
Unknown
3
LEC

Valid XHTML 1.0 Transitional