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

photo of CSE grad students in classCSE Undergraduate Course Offerings - Summer 2013

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.

Open
7/25
Mr. Kevin Cleary
Jun 24, 2013 - Aug 2, 2013
TR, 1000 - 1255
Capen 201
4
Basic knowledge of arithmetic. No experience with computers needed.
None
LEC

CSE 111 Great Ideas in Computer Science

Designed to satisfy the mathematics core requirements. Students study algorithmic problem-solving techniques and gain an appreciation for some of the most interesting and significant results of computer science, as well as its intellectual and social significance. The course has both a mathematical and a laboratory component. Topics may include algorithm design, introduction to programming, structured programming, software tools, software engineering, text manipulation, numerical computation, transistors, very large-scale integrated circuits, machine architecture, language translation, operating systems, and artificial intelligence. Admitted computer science and computer engineering majors should not enroll in this course sequence.

Open
11/24
Nathan Russell
Jun 24, 2013 - Aug 2, 2013
MW, 1000 - 1255
Norton 213
4
None
None
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
8/40
Aditya Wagh
Jun 24, 2013 - Aug 2, 2013
MW, 200P - 455P
Bell 340
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
28/35
James Scandale
Jun 24, 2013 - Aug 2, 2013
TR, 1000 - 1255
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
40/40
James Scandale
Jun 24, 2013 - Aug 2, 2013
MW, 1000 - 1255
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
17/35
May 20, 2013 - Aug 9, 2013
TR, 200P - 405P
Bell 337
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
13/40
May 20, 2013 - Jun 28, 2013
MW, 200P - 455P
Norton 213
4
CSE 191
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
24/25
May 20, 2013 - Aug 9, 2013
TR, 1030 - 1235
Baldy 21
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
8/24
Zhi Yang
May 20, 2013 - Aug 9, 2013
TR, 1000 - 1205
R25 Needs Assignment
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
9/40
Jesse Hartloff
May 20, 2013 - Aug 9, 2013
TR, 200P - 405P
Norton 214
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
7/40
May 20, 2013 - Jun 28, 2013
MW, 1000 - 1255
Knox 14
4
CSE 241 or EE 378
None
LEC

CSE 379 Introduction to Microprocessors and Microcomputers

Microprocessor architecture, machine language programming, microprocessor assemblers, assembly language programming, software development, memory and I/O interface, interrupts, microprocessor system design and microprocessor applications.

Open
8/20
May 20, 2013 - Jun 28, 2013
MW, 200P - 455P
Capen 260
3
CSE 241 or EE 378
CSE 380
LEC

CSE 380 Introduction to Microprocessors and Microcomputers Lab

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.

Open
8/25
May 20, 2013 - Jun 28, 2013
MW, 500P - 555P
Bell 138
3
CSE 241 or EE 378
CSE 379
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 20, 2013 - Aug 9, 2013
MW, 200P - 405P
Bell 138
4
CSE 191, CSE 250
None
LEC

CSE 422 Operating Systems Internals

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.

Open
0/20
May 20, 2013 - Aug 9, 2013
MW, 1000 - 1205
Clemen 04
4
CSE 421 or permission of instructor
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
4/40
Shounak Gore
Jun 24, 2013 - Aug 2, 2013
TR, 1100 - 155P
Capen 10
4
CSE 250
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
5/5
May 20, 2013 - Jun 28, 2013
MW, 1000 - 1255
Norton 214
4
CSE 379 or CSE 341
None
LEC

Valid XHTML 1.0 Transitional