UB - University at Buffalo, The State University of New York
Computer Science and Engineering
Prospective Students
Current Students
Alumni
About CSE
A Message From The Chair
Mission
Why Choose CSE?
News and Events
Calendar
Faculty Achievements
Give to CSE
Faculty Positions
Departmental Committees
Professional and Student Organizations
Professional and Student Organizations
Videos
School of Engineering and Applied Sciences
University at Buffalo
Buffalo Niagara Region
Contact Us
Undergraduate Academics
What is Computer Science?
What is Computer Engineering?
Computer Engineering Educational Objectives and Outcomes
Undergraduate Programs
Courses
Course Enrollments
Internships
Career Moves
Professional and Student Organizations
Advisement
Information Technology Services
System Stats
Policies
Help!
Graduate Academics
Graduate Programs
Graduate Handbooks
Graduate Courses
Course Enrollments
Special Joint Programs
Internships
Ph.D. Dissertation Abstracts
Downloads and Forms
Dr. Rapaport's Information for Grad Students
Information Technology Services
System Stats
Policies
Research
Research Areas
Research Spotlight
Speaker Series
Research Centers
Research Labs and Groups
Research Resources
Research Wikis
Faculty-Authored Software
Technical Reports
Information Technology Services
System Stats
Facilities
People
All Faculty and Staff
Tenured/Tenure-Track Faculty
Teaching Faculty
Affiliated Faculty
Emeritus Faculty
Information Technology Staff
Administrative Staff
Research Staff
Summer Instructors
Teaching Assistants
Student Assistants
Students
Industrial Advisory Board
In Memoriam
Office Assignments
How to Find People at UB
Admissions
Graduate Admissions
Undergraduate Admissions
Contact Us
Undergraduate Academics
What is Computer Science?
What is Computer Engineering?
Computer Engineering Educational Objectives and Outcomes
Undergraduate Programs
Courses
Undergraduate Catalog
This Semester's Undergrad Courses
Next Semester's Undergrad Courses
Course Web Pages
Course Enrollments
Course Enrollments
Internships
Career Moves
Professional and Student Organizations
Advisement
Information Technology Services
System Stats
Policies
Help!
Apply Now
Apply to our Graduate Programs online
Apply to our Undergraduate Programs online
CSE Home
>
Undergraduate Academics
>
Courses
>
Next Semester's Undergrad Courses
CSE Undergraduate Course Offerings - Spring 2014
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/150
Instructor:
Dr. Kris Schindler
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 1100 - 1150
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
Basic knowledge of arithmetic. No experience with computers needed.
Corequisites:
None
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/360
Instructor:
Staff
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
ARR
Room:
SIM HQ Arr
Credits:
4
Prerequisites:
None
Corequisites:
None
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/120
Instructor:
Staff
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
ARR
Room:
SIM HQ Arr
Credits:
4
Prerequisites:
None
Corequisites:
None
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/200
Instructor:
Dr. Bina Ramamurthy
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 1200 - 1250
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
None
Corequisites:
None
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/190
Instructor:
Dr. Bina Ramamurthy
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 900A - 950A
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
None
Corequisites:
None
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/200
Instructor:
Dr. Carl Alphonce
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 1100 - 1150
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
No previous programming experience required
Corequisites:
MTH 141 or equivalent
Type:
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).
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/150
Instructor:
Dr. Carl Alphonce
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 100P - 150P
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 115 or permission of instructor
Corequisites:
None
Type:
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).
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/100
Instructor:
Dr. Carl Alphonce
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 400P - 450P
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 115 or permission of instructor
Corequisites:
None
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/180
Instructor:
Dr. Xin (Roger) He
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 300P - 350P
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
None
Corequisites:
None
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/150
Instructor:
Dr. Kui Ren
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 1000 - 1050
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 191
Corequisites:
None
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/125
Instructor:
Dr. Kenneth W. Regan
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 1200 - 1250
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 116, CSE 191
Corequisites:
None
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/150
Instructor:
Dr. Carl Alphonce
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
TR, 1230 - 150P
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 250
Corequisites:
None
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/100
Instructor:
Dr. Shambhu Upadhyaya
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 1000 - 1050
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 241 or EE 378
Corequisites:
None
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/120
Instructor:
Dr. Kris Schindler
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 900A - 950A
Room:
R25 Needs Assignment
Credits:
3
Prerequisites:
CSE 241 or EE 378
Corequisites:
CSE 380
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/120
Instructor:
Dr. Kris Schindler
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 400P - 450P
Room:
R25 Needs Assignment
Credits:
3
Prerequisites:
CSE 241 or EE 378
Corequisites:
CSE 379
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/100
Instructor:
Staff
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 100P - 150P
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 191, CSE 250
Corequisites:
None
Type:
LEC
CSE 410 Special Topics
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/30
Instructor:
Dr. Geoffrey Challen
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 1100 - 1150
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
Corequisites:
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/60
Instructor:
Dr. Geoffrey Challen
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 900A - 950A
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 250
and Approved Computer Science, Computer Engineering, Bioinformatics/CS Majors Only. Departmental senior standing recommended.
Corequisites:
None
Type:
LEC
CSE 431 Algorithms Analysis and Design
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/30
Instructor:
Dr. Jinhui Xu
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
TR, 1230 - 150P
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 331, MTH 142
Corequisites:
None
Type:
LEC
CSE 453 Hardware/Software Integrated Systems Design
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/80
Instructor:
Mr. Michael F. Buckley
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
TR, 930A - 1050
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 442 or permission of instructor
Corequisites:
None
Type:
LEC
CSE 467 Computational Linguistics
Introduces computational models for understanding natural languages. Covers topics including, but not limited to, syntactic and semantic parsing, generation, and knowledge representation techniques. Cross-listed with LIN 467.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/16
Instructor:
Staff
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 1100 - 1150
Room:
R25 Needs Assignment
Credits:
3
Prerequisites:
CSE 305 or permission of instructor
Corequisites:
None
Type:
LEC
CSE 468 Robotics Algorithms
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/60
Instructor:
Staff
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 1100 - 1150
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
Corequisites:
Type:
LEC
CSE 474 Introduction to Machine Learning
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/60
Instructor:
Staff
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 200P - 250P
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 250; EAS 305 or MTH 309; permission of instructor
Corequisites:
None
Type:
LEC
CSE 486 Distributed Systems
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/50
Instructor:
Dr. Steven Ko
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 300P - 350P
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 250 or permission of instructor
Corequisites:
None
Type:
LEC
CSE 487 Data Intensive Computing
Overview of information technology in large-scale commercial and scientific systems, emphasizing state of the art computing in realizing various services and the frameworks supporting these services. Concepts covered include: enterprise modeling, process modeling, process automation and streamlining, workflow management, messaging, persistent message queues, transaction monitoring, document exchange, application servers, service definition (web services, web services definition language: WSDL), connection and resource reservation protocols (TCP, grid computing), integration technologies and architectures (Java 2 Enterprise Edition: J2EE, extensible Markup Language: XML, and Globus toolkit).
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/60
Instructor:
Dr. Bina Ramamurthy
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
TR, 1100 - 1220
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 305 programming languages or equivalent, object-oriented design and programming in Java
Corequisites:
None
Type:
LEC
CSE 489 Modern Network Concepts
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/60
Instructor:
Dr. Dimitrios Koutsonikolas
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
TR, 200P - 320P
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 250, and either EAS 305 or MTH 411
Corequisites:
None
Type:
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.
Course Page:
Undergraduate Catalog Page
Status:
Open
Enrolled:
0/40
Instructor:
Staff
Dates:
Jan 27, 2014 - May 9, 2014
Days/Time:
MWF, 400P - 450P
Room:
R25 Needs Assignment
Credits:
4
Prerequisites:
CSE 379 or CSE 341
Corequisites:
None
Type:
LEC
Undergraduate Advisement Questions?
Email
cse-ug-advise
and we'll try to respond to you on the same day.
Visit us in person! Find today's drop-in advisement hours in the
CSE Calendar
.