Link to UB home page
Undergraduate Catalog 2002-2003
Academic Programs Faculty General Education Undergraduate Education Search
 You are Here: Catalogs > 2002-03 > Academic Programs > Computer Science
 

 

The Program

Advisement

Transfer Policy

Honors

Special Programs

Courses

Computer Science-B.A.

Computer Engineering - B.S.

Computer Science - B.S./M.S.

Computer Science/Business Administration - B.A./M.B.A.

Computer Science - Minor


Computer Science

Department of Computer Science and Engineering
School of Engineering and Applied Sciences, College of Arts and Sciences
201 Bell Hall
North Campus
Buffalo, NY 14260-2000
(716) 645-3180
Fax: (716) 645-3464
Web: Computer Science and Engineering
Bharat Jayaraman, Interim Chair
Helene Kershner, Assistant Chair
Peter D. Scott, Director of Undergraduate Studies

The Program
Computer science is the systematic study of algorithmic methods for representing and transforming information, including their theory, design, implementation, application, and efficiency. The discipline emerged in the 1950s from the development of computability theory and the invention of the stored-program electronic computer. The roots of computer science extend deeply into mathematics and engineering. Mathematics imparts analysis to the field; engineering imparts design.

The main branches of computer science are the following:

Algorithms is the study of effective and efficient procedures for solving problems on a computer.

Theory of Computation concerns the meaning and complexity of algorithms, as well as the limits of what can be computed in principle.
Artificial Intelligence concerns the computational understanding of what is commonly called intelligent behavior, as well as the creation of artifacts that exhibit such behavior.

Computer Architecture concerns the structure and functionality of computers, as well as their implementation in terms of electronic language.

Multimedia is the study of the representation, communication, and
effective use of data derived from multiple sources, including text, audio, graphics and video.

Software Systems is the study of the structure and implementation of large programs. It includes the study of programming languages and paradigms, programming environments, compilers, and operating systems.

Other important topics in computer science include computer graphics, databases, networks and protocols, numerical methods, operating systems, parallel computing, simulation and modeling, and software engineering.

Advisement
Upon admission, the Department of Computer Science and Engineering will write to inform students of their faculty advisors. Students should make an appointment with their advisor as soon as possible to discuss a program of study and to choose between the B.A. or the B.S. program. Students must see their advisor at least once a semester thereafter. Under current departmental guidelines, students may freely switch degree programs (from B.A. to B.S. or from B.S. to B.A.) at any time, but must complete all appropriate courses.

Transfer Policy
Transfer students must first apply to the university and meet the university transfer admission GPA requirements before consideration for admission to the Department of Computer Science and Engineering. Computing courses taken outside the department and offered as substitutes for computer science courses are evaluated individually by the Undergraduate Affairs Committee. Most courses taken from a recognized college-level computer science department are acceptable. Data-processing courses are generally not acceptable as substitutes for any computer science course.

Also, experience has shown that any course with a specific programming language in its title is often a skills course rather than a computer science course. The student must provide evidence that will help the department determine whether courses taken at another institution are equivalent to UB courses; such evidence usually takes the form of a syllabus or catalog description.

Honors
Departmental distinction will be given to students whose overall GPA is at least 3.2 and whose GPA in those CSE, MTH, and STA courses used to fulfill the departmental requirements is within the following ranges:

3.8 - 4.0 = highest distinction
3.7 - 3.79 = high distinction
3.6 - 3.69 = distinction

In addition, students must engage in creative or scholarly work on a topic that is approved by a faculty member in computer science. This work is done by completing at least 6 credit hours of CSE499 Independent Study. A final report, following the usual conventions of scholarly writing, is also required. This report, about fifteen pages in length, should be approved by a computer science faculty member.

Special Programs
The Department of Computer Science and Engineering offers a combined program permitting highly qualified students to graduate in four or five years with both B.S. and M.S. degrees in computer science.The Department of Computer Science and Engineering in conjunction with the School of Management offers a five-year program leading to both a bachelor in computer science degree and a master of business administration (M.B.A.) degree. This combined program reduces by one year the usual pattern of a four-year undergraduate degree and a two-year M.B.A. program. A B.S. degree in computational physics is offered jointly with the physics department. A double degree B.A. in computer science and B.S. in civil engineering is offered, as is a double degree B.S. in computer science and B.S. in mechanical engineering. These programs are all offered through the College of Arts and Sciences. In addition, a B.S. degree in computer engineering is offered by the Department of Computer Science and Engineering through the School of Engineering and Applied Science. For further information see page 99.

Computer Science and Engineering (CSE)
Note: Course offerings vary by semester.

101 Computers: A General Introduction (4) (F; Sp)
Prerequisite: basic knowledge of arithmetic. No experience with computers needed.
Introduces computers, programming, and applications software. Areas of study include computers and their societal impact; history; hardware; problem solving; programming; 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. LEC/LAB

111-112 Great Ideas in Computer Science (4-4) (F; Sp)
Prerequisite: CSE111 is a prerequisite for CSE112
Two-course sequence 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 include algorithm design, introduction to programming, structured programming, software engineering, text manipulation, numerical computation, transistors, very large-scale integrated circuits, machine architecture, language translation, computability and computational complexity, parallel computation, and artificial intelligence. Admitted computer science and computer engineering majors should not enroll in this course sequence. LEC/LAB

113 Introduction to Computer Programming I (4) (F; Sp)
An 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 student should not take this course. LEC/REC

114 Introduction to Computer Programming II (4) (F; Sp)
Prerequisite: CSE113
A continuation of CSE113 for nonmajors. Currently required for some School of Management majors and appropriate for others seeking additional programming skills. Topics include working with data structures, such as stacks, queues, linked lists, and binary trees. Recursive programming techniques. The use of modern object-oriented programming methodologies, such as class inheritance, polymorphism, and exceptions, is emphasized. Credit is not given for both CSE114 and CSE116. Students who decide to pursue a CSE degree after having taken CSE113 must continue their studies with CSE115 rather than CSE114. Neither CSE113 nor CSE114 can count towards a CSE degree. Admitted computer science and computer engineering majors should not take this course. LEC/REC/LAB

115 Introduction to Computer Science for Majors I (4) (F; Sp)
Prerequisite: None. No previous programming experience required.
Corequisite: MTH141 or equivalent

Designed to provide the fundamentals of the field to computer science and computer engineering majors, this course introduces students to algorithm design and implementation in a modern, high-level programming language. It emphasizes problem solving by abstraction. Also briefly covers the social and ethical aspects of computing. 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. LEC/REC

116 Introduction to Computer Science for Majors II (4) (F; Sp)
Prerequisite: CSE115 or permission of instructor
Continuation of CSE115. Heavily emphasizes abstract data types (ADTs) and object-oriented methodology, where the student is expected not only to understand ADTs but also to design and implement robust ADTs using a modern object-oriented programming language. Object-oriented techniques which support sound software engineering, such as encapsulation, polymorphism and inheritance as well as the use of more complex design patterns are further emphasized. 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. The analysis of algorithm complexity (0-notation) is introduced. Credit not given for both CSE114 and CSE116. LEC/REC

191-192 Introduction to Discrete Mathematics (4-4) (F; Sp)
CSE191 Prerequisite: Working knowledge of a programming language.
CSE192 Prerequisite: CSE191
Two-semester sequence provides mathematical foundations for further studies in computer science. Topics in CSE191 include sets, relations, functions, mathematical induction, fundamental counting methods, differential equations, and sequences and series. CSE191 is required for computer science and computer engineering majors. Topics in CSE192 include discrete probability, mathematical logic, linear algebra, and graph theory. CSE192 is not required for computer science and computer engineering majors. LEC/REC

199 Freshman Seminar (3)
Prerequisites: four years of high school mathematics, knowledge of some programming language
Designed for honors students in coordination with the mathematics department. Designed as a seminar in which students solve a variety of problems relating mathematics and computer science. Some problems are purely mathematical; some are about computer applications. LEC

202 Programming in Lisp (1)
Prerequisite: CSE116
Provides practical experience in using the Common Lisp programming language. Topics include the object-type hierarchy, including numbers, characters, strings, symbols, packages, lists, conses, functions, hash tables, and arrays; objects vs. printed representations of objects; functions, macros, and special forms; recursion, mapping, and iteration; input/output; Pure Lisp, Imperative Lisp, and CLOS; manipulating lists and trees; pattern matching on symbol structures; use of a modern symbolic programming environment. LAB

241 Digital Systems (4) (F)
Prerequisite: CSE116
Introduces computer architecture and assembly-language programming; covers digital logic, machine-level representation of data, arithmetic algorithms, assembly-level machine organization, and programming. Provides programming experience through laboratory exercises. LEC/REC

250 Algorithms and Data Structures (4) (Sp)
Prerequisites: CSE116, CSE191 (or MTH191), MTH142
Provides a rigorous introduction to the analysis of algorithms and data structures. Topics include order notation, algorithmic strategies, and time-space analysis and trade-offs in various sorting algorithms, as well as list and tree traversal algorithms, and hashing. The importance of choosing appropriate data structures when solving a problem is illustrated by programming projects. LEC/REC

305 Introduction to Programming Languages (4) (F)
Prerequisites: CSE250
Covers concepts from procedural and declarative languages. The structure of procedural languages is examined in detail, including data and control abstractions, type systems, and the effect of language constructs on the underlying implementations. Alternative programming paradigms, such as functional, logic, and object-oriented paradigms, are briefly introduced. LEC/REC

337 Introduction to Scientific Computing (4)(S)
Prerequisite: MTH141
Introduces the fundamental numerical techniques used in high-performance scientific computing for students in all scientific disciplines. These methods include sorting, numerical integration, root finding for nonlinear systems, elementary linear algebra, and basic ordinary differential equations. Emphasizes an experimental approach to scientific computing. Students learn the basics of UNIX, write and debug programs in FORTRAN, and use computational and visualization tools in Matlab. Offered irregularly. LEC/REC

341 Computer Organization (4) (F)
Prerequisite: CSE241 or EE 378
Examines how the various low-level components of a computer system are integrated to form a larger system. Topics include techniques for controller design, memory system organization and architecture, and I/O and interrupt systems. Parallel processing is introduced. A family of processors is studied to illustrate the concepts. LEC/REC

379 Introduction to Microprocessors and Microcomputers (3) (Sp)
Prerequisite: CSE241 or EE 378
Microprocessor architecture, machine language programming, microprocessor assemblers, assembly language programming, software development, memory and I/O interface, interrupts microprocessor system design and microprocessor applications. LEC

380 Introduction to Microprocessors Lab (3) (Sp)
Corequisite: CSE379
A microprocessor system and its application in embedded devices. This course is the laboratory component to CSE379. 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. LAB

396 Introduction to the Theory of Computation (4) (Sp)
Prerequisites: CSE191 (or MTH191) and CSE250
Covers fundamental machine and formal-language models: finite automata and regular languages; pushdown automata and context-free languages; Turing machines and recursive/recursively enumerable languages. Also introduces computational theory. LEC/REC

411 Introduction to Computer Systems Administration (4) (Sp)
Prerequisites: CSE241 or CSE379
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. LEC/REC

421 Introduction to Operating Systems (4) (Sp)
Prerequisites: CSE241, CSE305
Covers the principles and techniques in the design of operating systems. Concepts of operating systems are described in terms of functions, structure, and implementation, with particular emphasis on 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. LEC/REC

422 Operating Systems Internals (4) (Sp)
Prerequisite: CSE421 or permission of instructor
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. LEC/REC

431 Algorithms Analysis and Design I (4)
Prerequisite: CSE250
The design and analysis, in terms of both time and space, of algorithms. Topics include sorting, searching, graph theory, computational geometry, and NP-completeness. Paradigms covered include divide-and-conquer, greedy, dynamic programming, and heuristic techniques. LEC/REC

437 Introduction to Numerical Analysis I (4)
Prerequisites: CSE115; MTH242 or MTH306; MTH309, or permission of instructor
Lagrangian interpolation; quadrature formulas; difference equations; numerical solution of ordinary differential equations; predictor-corrector and Runge-Kutta methods. Cross-listed with MTH437. Offered irregularly. LEC/REC

438 Introduction to Numerical Analysis II (4)
Prerequisite: CSE437 or MTH437
Solution of linear and nonlinear systems of equations: calculation of eigenvalues and eigenvectors; introduction to numerical solution of boundary value problems for both ordinary and partial differential equations. Cross-listed with MTH438. LEC/REC

442 Software Engineering (3) (F)
Prerequisite: CSE305
Examines in detail the software development process. Topics include software life-cycle models, functional and object-oriented designs, code and design reading, structured walk-throughs, and various techniques for systematic software testing. There is continued coverage of the social, ethical, and legal aspects of computing beyond CSE113. Offered irregularly. LEC/REC

443 Introduction to Language Processors (4)
Prerequisites: CSE305, CSE396
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. Compiler construction tools LEX and YACC are used for programming projects. LEC/REC

444 Co-op Program, Work Session I (1) (F)
Prerequisites: full-time status, participation in the Co-op Program
Professional computer science work experience gained off campus. Supervised jointly by academic and industrial preceptors. LAB

445 Co-op Program, Work Session II (1) (Sp)
Prerequisites: full-time status, participation in the Co-op Program
Professional computer science work experience gained off campus. Supervised jointly by academic and industrial preceptors. LAB

446 Co-op Program, Work Session III (1) (Su)
Prerequisites: full-time status, participation in the Co-op Program
Professional computer science work experience gained off campus. Supervised jointly by academic and industrial preceptors. LAB

451 Program Development (4)
Prerequisite: CSE305
Introduces the simultaneous development and verification of correct programs. In preparation for this, the first part of the course contains lectures in formal logic and in program semantics. The second part involves actual examples of program development. Offered irregularly. LEC/REC

452 VLSI Testing (4) (Sp)
Prerequisite: CSE497 or permission of instructor
Includes topics: VLSI design fundamentals; various aspects of testing; fault model; design for testability; built-in self-test; simulation at various levels; software tools and equipment, built-in self-testing PLAs; built-in self-testing RAMs. The major design project is on testable design of VLSI. Students are expected to use the testable design concepts learned in the class and incorporate them into the circuits during the chip design. The project is an open-ended problem, and the students are free to exercise a combination of ideas. LEC

462 Database Concepts (4)
Prerequisite: CSE305
Basic design principles of systems for storing and retrieving exceptionally large amounts of information are discussed. Topics include hardware characteristics; file organization and evaluation; data models; database schemas; and the three main database approaches: relational, hierarchical, and network. Students implement their own prototype database systems. LEC/REC

463 Knowledge Representation (4) (F)
Prerequisite: CSE305 or permission of instructor
Introduces the issues and techniques of representing knowledge and belief in a computer system; syntax and semantics of various representational formalisms including predicate logic, semantic networks, and frames. Classic papers are read and current research issues discussed. LEC/REC

467 Computational Linguistics (4) (Sp)
Prerequisite: CSE305 or permission of instructor
Introduces computational models of understanding natural languages. Syntactic and semantic parsing, generation, knowledge representation techniques. LEC/REC

472 Introduction to Artificial Intelligence (4) (Sp)
Prerequisites: CSE202, CSE305
Surveys artificial intelligence: the study of how to program computers to behave in ways normally attributed to intelligence when observed in humans. Topics include heuristic search and problem solving, reasoning and inference, natural-language understanding, knowledge representation, image understanding, learning, and cognitive modeling. LEC/REC

473 Introduction to Computer Vision and Image Processing (4) (Sp)
Prerequisite: CSE305 or permission of instructor
Introduces those areas of artificial intelligence that relate to fundamental issues and techniques of computer vision and image processing. The emphasis is on 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. LEC/REC

474 Introduction to Machine Learning (4) (F)
Teaching computer programs to improve their performance through guided training and unguided experience. Symbolic and numerical approaches. Concept learning, decision trees, neural nets, statistical tests, Bayesian learning, computational learning theory, instance-based learning, reinforcement learning, and fuzzy logic. LEC/REC

475 Modern Computer Systems (4) (F)
Prerequisite: CSE341 or CSE380
Computer system architecture, operating system structures and hardware interfacing. C and assembly language programming on SPARC RISC processors. Standard calling conventions and stack frame usage. Operating system services. Directly programmed interfaces, interrupt serviced interfaces and data acquisition systems. Custom interface design for a standard bus. LEC/LAB/REC

480 Computer Graphics (4) (Sp)
Prerequisites: CSE250, MTH309
General introduction to computer graphics; graphic devices and processors; graphic input techniques; programming and data structures for graphics; basic geometric transformations (translation rotation, scaling, and projection); visualization techniques and the hidden-line/surface problem; shaded pictures; device drivers; user interface ergonomics. LEC/REC

487 Information Structures for Computer Engineers (3)
Prerequisite: C language programming ability
Overview of algorithms and their description, arrays, stacks and queues, linked lists, trees, graphs, sorting and searching, files, and string processing. LEC

489 Modern Networking Concepts (3) (F)
Prerequisites: C language programming; exposure to probability, statistics, and communications theory
Introduces basic elements of modern computer and telecommunications networks. A hybrid five-layer reference model resembling the popular TCP/IP model and the OSI's seven-layer model is discussed. In each layer, the state-of-the-art hardware and software technologies are introduced. These include, for example, fiber-optic and mobile/cellular communications in the physical layer, wavelength/time division multiple access protocols in the data link layer; traffic shaping and policing in the network layer; ATM adaptation layer protocols in the transport layer; and, finally, network security in the application layer. LEC

490 Design of High-Performance Computing Systems (4) (F)
Prerequisite: CSE379
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. LEC/REC

497 Introduction to VLSI Electronics (4) (F)
Prerequisites: EE 353 and CSE379
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, understanding various steps in design. Typical projects: ALU, games, controllers. LEC

498 Internship (1-5) (F; Sp)
Prerequisites: accepted CSE major and personal interview with an advisor in computer science
A field experience working on a computer science project in a real-world setting under the joint direction of a supervisor from industry and a faculty advisor from the Department of Computer Science and Engineering. Projects selected should integrate the material learned in academic courses. Upon completing the internship, the student is expected to have fulfilled an internship contract. Only S/U grades are given (therefore, internships may not be used to satisfy the requirements for the B.A. or B.S.). No more than 5 credit hours of CSE498 may be taken. Offered every semester. TUT

499 Independent Study (1-4)
(F; Sp)

Prerequisite: permission of instructor, preferably during the previous semester; see list of faculty research interests. Students seeking departmental distinction (honors) must register for at least 6 credit hours of CSE499 (every semester).
Independent study in an area of computer science in which the student is particularly interested. (May not be used to satisfy the requirements for the B.A. or B.S.) TUT

Computer Science - B.A.

Acceptance Criteria
Minimum GPA of 2.0 overall
Minimum GPA of 2.5 in CSE116 and MTH142 (unless exempted by score on SAT, Advanced Placement credits, or transfer credits); prerequisites are satisfied with grade of C- or better.

Required Courses
CSE115 Introduction to Computer Science for Majors I
CSE116 Introduction to Computer Science for Majors II
CSE191 Introduction to Discrete Mathematics
CSE241 Digital Systems
CSE250 Algorithms and Data Structures
CSE305 Introduction to Programming Languages
CSE341 Computer Organization
CSE396 Introduction to the Theory of Computation
CSE421 Introduction to Operating Systems
CSE442 Software Engineering
MTH141 College Calculus I
MTH142 College Calculus II
One calculus-based probability or statistics course (such as MTH411, STA401, or EAS305)
Two science and engineering sequence courses
Five external concentration courses

See Baccalaureate Degree Requirements (page 254) for general education and remaining university requirements.

Recommended Sequence of Major Requirements

First Year
Fall-CSE115, MTH141
Spring-CSE116, MTH142, one external concentration course

Second Year
Fall-CSE191, CSE241, one science and engineering sequence course
Spring-One calculus-based probability or statistics course (such as MTH411, STA401, or EAS305), CSE250, one science and engineering sequence course

Third Year
Fall-CSE305, CSE341, one external concentration course
Spring-CSE396, CSE442

Fourth Year
Fall-Two external concentration courses
Spring-CSE42, one external concentration course

External Concentration Courses
A total of five courses from the same academic department, at least two of which must be 300-level or higher

Science and Engineering Sequence
Any two-course science and engineering sequence from biology, chemistry, geology, physics, or any department in the School of Engineering and Applied Sciences except the CSE department

Summary
Total required credit hours in computer science - 40
Total required credit hours outside computer science - 40

Computer Science - B.S.

Acceptance Criteria
Minimum GPA of 2.0 overall
Minimum GPA of 2.5 in CSE116 and MTH142*; prerequisites are satisfied with a grade of C- or better.
*Unless exempted by score on SAT, Advanced Placement credits, or transfer credits

Required Courses
CSE115 Introduction to Computer Science for Majors I
CSE116 Introduction to Computer Science for Majors II
CSE191 Introduction to Discrete Mathematics
CSE241 Digital Systems
CSE250 Algorithms and Data Structures
CSE305 Introduction to Programming Languages
CSE341 Computer Organization
CSE396 Introduction to the Theory of Computation
CSE421 Introduction to Operating Systems
CSE442 Software Engineering
MTH141 College Calculus I
MTH142 College Calculus II
One calculus-based probability or statistics course (such as MTH411, STA401, or EAS305)
Two science and engineering sequence courses
Two 400-level CSE courses (excepting internship, co-op, and required 400-level courses)
One 200-level MTH or STA course
One 300-level MTH or STA course

See Baccalaureate Degree Requirements (page 254) for general education and remaining university requirements.

Recommended Sequence of Major Requirements

First Year
Fall-CSE115, MTH141
Spring-CSE116, MTH142

Second Year
Fall-CSE191, CSE241, one 200-level MTH or STA course
Spring-One calculus-based probability or statistics course (such as MTH411, STA401, or EAS305), CSE250

Third Year
Fall-CSE305, CSE341, one 300-level MTH or STA course
Spring-CSE396, CSE442

Fourth Year
Fall-One science and engineering sequence course, two 400-level CSE courses
Spring-One science and engineering sequence course, CSE421

Science and Engineering Sequence
Any two-course science and engineering sequence from biology, chemistry, geology, physics, or any department in the School of Engineering and Applied Sciences except the CSE department

Summary
Total required credit hours in computer science - 48
Total required credit hours outside computer science - 28

Computer Engineering - B.S.
The computer engineering B.S. degree combines the study of mathematics, computer science, and electrical engineering. Computer engineering emphasizes those topics that bridge the electrical engineering and computer science disciplines: computer hardware, device-oriented software, and the interface between hardware and software. Unlike the Department of Computer Science and Engineering's other undergraduate programs, this degree is offered through the School of Engineering and Applied Sciences. General education is integrated into the curriculum consistent with other engineering programs at UB. For further information, see page 255.

Computer Science - B.S./M.S.

Acceptance Criteria
Completion of at least 56 credits with a minimum GPA of 3.0 overall (Five-Year Path), or a minimum GPA of 3.3 overall (Four-Year Path) in all CSE and MTH courses. It is recommended candidates have completed CSE115, CSE116, CSE241, CSE250, MTH141, MTH142, MTH191 and a calculus-based probability or statistics course prior to applying.

Required Courses
CSE115 Introduction to Computer Science for Majors I
CSE116 Introduction to Computer Science for Majors II
CSE191 Introduction to Discrete Mathematics
CSE241 Digital Systems
CSE250 Algorithms and Data Structures
CSE341 Computer Organization
CSE396 Introduction to the Theory of Computation
CSE442 Software Engineering
CSE505 Fundamentals of Programming Languages
CSE521 Introduction to Operating Systems
CSE531 Analysis of Algorithms or CSE596 Introduction to the Theory of Computation
MTH141 College Calculus I
MTH142 College Calculus II
One of the following: CSE572 Knowledge-Based Artificial Intelligence, CSE573 Introduction to Computer Vision and Image Processing, CSE574 Introduction to Machine Learning, CSE655 Introduction to Pattern Recognitioin
One of the following: CSE552 VLSI (Very Large Scale Integration) Testing, CSE589 Modern Networking Concepts, CSE590 Computer Architecture, CSE597 Introduction to VLSI Electronics
One additional 500-level CSE course (but not CSE503 Computer Science for Nonmajors I, CSE504 Computer Science for Nonmajors II, or CSE507 Object Oriented Applications and Systems Design (for nonmajors))
One additional 600-level CSE course
One calculus-based probability or statistics course (e.g., MTH411, STA401, EAS305)
One 200-level MTH or STA course
One 300-level MTH or STA course
Two science and engineering sequence courses
Capstone event (M.S. Thesis or M.S. Project)

See Baccalaureate Degree Requirements (page 254) for general education and remaining university requirements.

A minimum of 30 graduate credits are also required by the Graduate School to satisfy M.S. university requirements. A minimum of 134 credits, including undergraduate and graduate elective courses, are required altogether.

Recommended Sequence of Major Requirements
Four-Year Path


First Year
Fall-CSE115, MTH141
Spring-CSE116, MTH142, CSE191

Second Year
Fall-CSE241, CSE250, one calculus-based probability or statistics course (e.g., MTH411, STA401, EAS305)
Spring-CSE396, CSE341, one 200-level MTH or STA course

Third Year
Fall-CSE505, one 300-level MTH or STA course, one science and engineering sequence course
Spring-CSE572, CSE442, one science and engineering sequence course

Fourth Year
Fall-CSE521, CSE531
Spring-CSE590, one 500-level CSE course (but not CSE503, CSE504, or CSE507), one 600-level CSE course

Five-Year Path

First Year
Fall-CSE115, MTH141
Spring-CSE116, MTH142

Second Year
Fall-CSE241, CSE191
Spring-CSE250, calculus-based probability or statistics course (such as MTH411, STA401, or EAS305)

Third Year
Fall-CSE396, one 200-level MTH or STA course, one science and engineering sequence course
Spring-CSE341, one 300-level MTH or STA course, one science and engineering sequence course

Fourth Year
Fall-CSE505, CSE521
Spring-CSE442, 500-level CSE course (but not CSE503, CSE504, or CSE507)

Fifth Year
Fall-CSE573, CSE589
Spring-CSE596, 600-level CSE course
Science and Engineering Sequence
Any two-course science and engineering sequence from biology, chemistry, geology, physics, or any department in the School of Engineering and Applied Sciences except the CSE department.

Summary
Total required credit hours in computer science - 57
Total required credit hours outside computer science - 28

Refer to the graduate school's policies and procedures manual for master's candidates requirements.

Computer Science/Business Administration - B.A./M.B.A.

Acceptance Criteria
Prior admission into the CS major and completion of the GMAT exam during junior year. Application to the School of Management and to this program during the junior year will be considered in light of requirement of generally superior performance.

Required Courses
CSE115 Introduction to Computer Science for Majors I
CSE116 Introduction to Computer Science for Majors II
CSE191 Introduction to Discrete Mathematics
CSE241 Digital Systems
CSE250 Algorithms and Data Structures
CSE305 Introduction to Programming Languages
CSE341 Computer Organization
CSE396 Introduction to the Theory of Computation
CSE421 Introduction to Operating Systems
CSE442 Software Engineering
MTH141 College Calculus I
MTH142 College Calculus II
One calculus-based probability/statistics course (e.g., MTH411, STA401, EAS305)
Two science and engineering sequence courses
MGA604 Financial Analysis and Reporting
MGB601 Behavioral and Organizational Concepts of Management
MGE601 Economics for Managers
MGQ606 Probability and Statistics for Managers
MGM625 Marketing Management
MGF631 Financial Management
MGS630 Operations and Service Management
MGS641 Strategic Management
Ten M.B.A. electives (a maximum of two of these electives may be taken from another department, such as CSE)
Two flex core courses

Science and Engineering Sequence
Any two-course science and engineering sequence from biology, chemistry, geology, physics, or any department in the School of Engineering and Applied Sciences except the CSE department.

See Baccalaureate Degree Requirements (page 254) for general education and remaining university requirements.

Recommended Sequence of Major Requirements

First Year
Fall-CSE115, MTH141
Spring-CSE116, MTH142

Second Year
Fall-CSE191, CSE241, one science and engineering sequence course
Spring-One calculus-based probability/statistics course (e.g., MTH411, STA401, EAS305), CSE250, one science and engineering sequence course

Third Year
Fall-CSE305, CSE341
Spring-CSE396, CSE421, CSE442

Fourth Year
Fall-MGA604, MGB601, MGE601, MGQ606, one flex core course
Spring-MGM625, MGF631, MGS630, one M.B.A. elective, one flex core course

Fifth Year
Fall-Five M.B.A. electives
Spring-MGS641 Strategic Management, four M.B.A electives

Summary
Total required credit hours in computer science - 40
Total required credit hours outside computer science - 80

Contact the School of Management for flex core course and electives options.

Refer to the graduate school's policies and procedures manual for master's candidates requirements.

Computer Science - Minor
Six CSE courses (excluding CSE202, CSE444-446, CSE498-499) with at least two at the 300 level or above. A minimum overall GPA of 2.5 in those courses is required. At least three courses must be taken at UB. A maximum of two courses can also be required for a student's major.

Admission into the computer science minor is based on completion of any three of the courses that constitute a minor in computer science with a minimum GPA of 2.5 in those courses. Applicants to the computer science minor should bring a copy of their current UB DARS report directly to the Department of Computer Science and Engineering during the semester after three of the six required courses are completed.

Sample Minor Programs
Software track: CSE115, CSE116, CSE191, CSE250, CSE305, CSE442
Hardware track: CSE191, CSE115, CSE116, CSE241, CSE379, CSE380

 

Questions and Comments about this site should be sent to:
Academic Affairs
Phone: (716) 645-6003
Fax: (716) 645-2549

Last updated: Thursday, 09-Dec-2004 15:21:17 EST

 

Copyright 2002, University at Buffalo, All rights reserved. | Legal Notices