Undergraduate Degree & Course Catalog
2016-17

Computer Science - Degrees & Policies

Degrees Offered

Undergraduate: BA, BS (ABET accredited), Minor
Graduate: MS, Ph.D.
Combined: BS/MS (accelerated)

Advisement

Entering freshmen/transfers are offered a wide range of special advisement opportunities and academic help sessions by the Office of Undergraduate Education, School of Engineering and Applied Sciences (410 Bonner Hall). Students in the program obtain academic guidance jointly from a senior academic advisor in Engineering and from the Computer Science and Engineering Undergraduate Advisor (338R Davis Hall).

Department of Computer Science and Engineering assigns students majoring in CSE programs, faculty mentors, whom they meet at least once a year and discuss technical aspects of the program, future research opportunities, and academic, and career goals. Students are expected to see an academic advisor at least once a semester. A semester before graduation, students are required to meet with an advisor to ensure their remaining coursework satisfies the general education, design, and other program requirements needed to graduate.

To graduate with a degree from the School of Engineering and Applied Sciences, students must have a minimum GPA of 2.0 in technical classes required for the major (includes engineering, math, technical electives, and science classes). Please refer to the degree program sections of the catalog for additional requirements.

Computer science majors are exempt from the SEAS residency requirement.

Students must obtain a minimum overall and UB GPA of 2.0 to be considered in academic good standing with the University.

Prerequisites are satisfied with grade of C- or better. If student does not obtain the C- or better, it is recommended (but not required that) the student re-take the course to obtain a C- or better.

All CSE 300/400-level courses are for majors only.

Departmental Senior Standing is achieved when students complete a minimum of:
2 of CSE 300-level courses for BA Program in CS and
3 of CSE 300-level courses for BS program in CS or CEN

At least six of our required CSE courses must be taken at UB, and at least four of these courses should be 300 or 400-level CSE courses (excludes CSE 492, CSE 494, CSE 499).

Starting from Fall 2019, all CSE 400-level courses will be offered for 3 credits. Till summer 2019, CSE 400-level courses will be offered for 4 credits.

Acceptance Information

See the School of Engineering and Applied Sciences for acceptance information. Students may apply for admission to Computer Science when they enter the University as freshmen, as transfer students, or later in their academic careers.

Transfer Policy

Transfer students must first apply to the university and meet the university transfer admission requirements. For admission of transfer students to engineering, see School of Engineering and Applied Sciences Transfer Policy in the Undergraduate Catalog, as well as additional departmental admission information.

Computing courses taken outside the department, and offered as substitutes for computer science courses, are evaluated individually by the department. The student must provide evidence to help the department determine whether courses taken at another institution are equivalent to UB courses; course syllabi are generally preferable to catalog descriptions as catalog descriptions do not provide enough detail for accurate evaluation. Additional information on course equivalencies may be found on the university's transfer and articulation website at: TAURUS.

Computer Science - B.S.

Acceptance Criteria

See School of Engineering and Applied Sciences Acceptance Information in the Undergraduate Catalog.

Required Courses

CSE 115 Intro to Computer Science for Majors I
CSE 116 Intro to Computer Science for Majors II
CSE 191 Intro to Discrete Structures
CSE 199 First Year Seminar or equivalent
MTH 141 College Calculus 1
MTH 142 College Calculus 2
CSE 241 Digital Systems
CSE 250 Data Structures
CSE 305 Intro to Programming Languages
CSE 331 Intro to Algorithm Analysis & Design
CSE 341 Computer Organization
CSE 396 Intro to the Theory of Computation
CSE 421 Intro to Operating Systems
CSE 442 Software Engineering
EAS 360 STEM Communication, or Equivalent
One calculus-based probability or statistics course (e.g., EAS 305, MTH 411, STA 301)
One CSE course in the Artificial Intelligence area:
CSE 455 Intro to Pattern Recognition
CSE 456 Intro to Visualization
CSE 463 Knowledge Representation
CSE 467 Computational Linguistics
CSE 468 Robotics Algorithm
CSE 473 Intro to Computer Vision & Image Processing
CSE 474 Intro to Machine Learning
One CSE course in the Software Systems area:
CSE 321 Real-Time & Embedded Operating Systems
CSE 443 Intro to Language Processors
CSE 451 Program Development
CSE 462 Database Concepts
CSE 469 Intro to Data Mining
CSE 486 Distributed Systems
CSE 489 Modern Networking Concepts
One 300 or 400 level course from any department (this course cannot be used to satisfy any other requirement)
One four credit Math or Science course. This course cannot be used to satisfy any other degree requirement and can be satisfied through any of the following:
  • Any 200-level or higher MTH or STA course. (excludes MTH 411, STA 301, and MTH/STA 495-499); or
  • Any 200- level or higher (excluding 495-499) course in BIO, CHE, GLY or PHY; or
  • Any course in an approved UG Gen Ed. Scientific Literacy sequence
Two 400-level CSE course from any area (except required CSE 400-level courses, or a course already used to satisfy the Artificial Intelligence or Software Systems areas above) Can include up to 3 credits of non-lecture based courses such as CSE 492, CSE 494-CSE 499 to allow experiential learning.

One four credit 200-level or higher MTH or STA course (excludes MTH 411, STA 301 and MTH/STA 495-499). This course cannot be used to satisfy any other degree requirement.

Note: all courses are not offered every semester. Please check the undergraduate schedule ahead for planning.

Undergraduate Credit Requirements Chart
Credits Required for Major 82
Additional Credits Required for UB Curriculum 24
Additional Credits Required for Electives 14
Total Credits Required for Degree 120

Students should consult with an academic advisor to determine how any transfer or exam credit might be utilized in meeting general education, prerequisite, or major requirements.

See Baccalaureate Degree Requirements (UB Curriculum) for general education and remaining university requirements.

Recommended Sequence of Program Requirements

View the Finish in Four Curricular Plan for the Computer Science BS which is a recommended sequence of courses to help achieve this degree in four years.

Computer Science - B.A.

Acceptance Criteria

See School of Engineering and Applied Sciences Acceptance Information in the Undergraduate Catalog.

Required Courses

Acceptance Criteria
See School of Engineering and Applied Sciences Acceptance Information in the Undergraduate Catalog.

CSE 115 Intro to Computer Science for Majors I
CSE 116 Intro to Computer Science for Majors II
CSE 191 Intro to Discrete Structures
CSE 199 First Year Seminar, or equivalent
CSE 241 Digital Systems
CSE 250 Data Structures
CSE 341 Computer Organization
EAS 360 STEM Communication, or equivalent
One of the following: MTH 121/MTH 122 Survey of Calculus & Its Applications I & II; MTH 131 Mathematical Analysis for Management; or MTH 141/ MTH 142 College Calculus I & II
One of the following: CSE 305 Intro to Programming Languages; CSE 321 Real Time and Embedded Operating Systems; CSE 331 Intro to Algorithm Analysis and Design; or CSE 396 Intro to the Theory of Computation
Two CSE 300 or 400 level courses, which cannot be used to satisfy any other degree requirements.

One 300 or 400 level course (any department) [this course cannot be used to satisfy any other degree requirement]

Three CSE 400 level courses (can include up to 3 credits of non-lecture based courses such as CSE 492, CSE 494-CSE 499), which cannot be used to satisfy any other degree requirements.

One of the following: STA 111 Intro to Probability and Statistics I; STA 119 Statistical Methods; MGQ 301 Statistical Decisions in Management; MTH 411 Probability Theory; EAS 305 Applied Probability; STA 301 or other probability/statistics courses that may be subject to approval upon request.

Five external concentration courses from one department within the College of Arts and Sciences [five courses at the 200-level or above, with at most, two 200-level for a total of at least 15 credits]. In some cases, it is possible for students to complete external concentration courses within other units (e.g., School of Management, School of Architecture and Planning), however the course selection must be approved by the CSE Director of Undergraduate Studies. Courses must be lecture based. However, in certain cases, non-lecture based courses can be used with the approval of the CSE Director of Undergraduate Studies

Note: all courses are not offered every semester. Please check the undergraduate schedule ahead for planning.

Undergraduate Credit Requirements Chart
Credits Required for Major 81
Additional Credits Required for UB Curriculum 24
Additional Credits Required for Electives 15
Total Credits Required for Degree 120

Students should consult with an academic advisor to determine how any transfer or exam credit might be utilized in meeting general education, prerequisite, or major requirements.

See Baccalaureate Degree Requirements (UB Curriculum) for general education and remaining university requirements.

Recommended Sequence of Program Requirements

View the Finish in Four Curricular Plan for the Computer Science BA which is a recommended sequence of courses to help achieve this degree in four years.

Computer Engineering - B.S.

About the Program

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. General education is integrated into the curriculum consistent with other engineering programs at UB. For further information, see the Computer Engineering entry in this catalog.

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

Acceptance Criteria

A minimum of a 3.3 GPA in all CSE, MTH, and EAS courses. Transfer students must complete at least one semester at the university before applying. Application must be accompanied by two letters of recommendation from our faculty and reviewed by the department.

It is recommended that candidates complete CSE 115, CSE 116, CSE 191, CSE 241, CSE 250, *MTH 141, *MTH 142, and a calculus-based probability or statistics course prior to applying.
*Unless exempted by an SAT score, Advanced Placement credits, or transfer credits.

Advising Notes

Please refer to the graduate handbook regarding the graduate portion of the BS/MS, as all graduate program rules apply. A minimum of 30 graduate credits is required by the Graduate School to satisfy M.S. university requirements. A total of 133 credits (both undergraduate and graduate) are required for this program, which includes the university general education courses.

Students enrolled in the BS/MS program are not allowed to take the same CSE course at the 400 and 500 level with both counting towards their degree requirements.

Prerequisite Courses

Required Courses

CSE 115 Intro to Computer Science for Majors I - 4 cr.
CSE 116 Intro to Computer Science for Majors II - 4 cr.
CSE 191 Intro to Discrete Structures - 4 cr.
CSE 199 First Year Seminar, or equivalent
CSE 241 Digital Systems - 4 cr.
CSE 250 Data Structures - 4 cr.
MTH 141 College Calculus I - 4 cr.
MTH 142 College Calculus II - 5 cr.
One calculus-based probability or statistics course (e.g., EAS 305, MTH 411, STA 301)
CSE 331 Intro to Algorithm Analysis & Design - 4 cr.
CSE 341 Computer Organization - 4 cr.
CSE 396 Intro to the Theory of Computation - 4 cr.
EAS 360 STEM Communication, or equivalent
One four credit 200-level or higher MTH or STA course (excludes MTH 411, STA 301, and MTH/STA 495-499), which cannot be used to satisfy any other degree requirement.
One four credit 200-level or higher math or science course (excludes MTH 411, STA 301, and MTH/STA 495-499), OR one 200-level or higher (excluding 495-499) courses in BIO, CHE, GLY, or PHY OR one course in an approved UB Gen Ed. Scientific Literacy sequence [This course cannot be used to satisfy any other degree requirement]
CSE 442 Software Engineering - 4 cr.
Total UG CSE Major Required Credits - 60
Additional UG Credits Required for Gen Ed 24
Additional UG Credits Required for Electives 19
Total UG portion credits - 103

Graduate*
Core Requirement (15 Credits):
CSE 505 Fundamentals of Programming Languages - 3 credits (or equivalent with prior approval from the Director of Graduate Studies)
CSE 521 - Intro to Operating Systems 3 credits

One of the following (Theory/Algorithms - T/A Core) - 3 credits:
CSE 529 Algorithms for Modern Computing Systems
CSE 531 Analysis of Algorithms
CSE 596 Intro to the Theory of Computation

One of the Following (Artificial Intelligence - A/I Core) - 3 credits:
CSE 555 Intro to Pattern Recognition
CSE 563 Knowledge Representation
CSE 567 Computational Linguistics
CSE 568 Robotics Algorithms
CSE 573 Intro to Computer Vision & Image Processing
CSE 574 Intro to Machine Learning

One of the Following (Hardware and Networked Systems - HW Core) - 3 credits:
CSE 552 VLSI (Very Large Scale Integration) Testing
CSE 586 Distributed Systems
CSE 589 Modern Networking Concepts
CSE 590 Computer Architecture
CSE 593 Intro to VLSI Electronics

Depth Area Requirement (6 Credits):
Must take 2 course from one area listed below. At least one of these two courses must be a 6xx-level course.

Software and Information Systems (SW) Area:
CSE 535 Information Retrieval
CSE 562 Database Systems
CSE 565 Computer Security
CSE 587 Data-Intensive Computing
CSE 601 Data Mining and Bioinformatics
CSE 603 Parallel and Distributed Processing
CSE 605 Advanced Concepts in Programming Languages
CSE 622 Advanced Computer Systems
CSE 635 Advanced Topics in Information Retrieval
CSE 636 Data Integration
CSE 664 Applied Cryptography and Computer Security

Theory/Algorithms (T/A) Area:
CSE 529 Algorithms for Modern Computing Systems
CSE 531 Analysis of Algorithms
CSE 545 Error Correcting Codes
CSE 564 Game Theory and Distributed Computing
CSE 596 Intro to the Theory of Computation
CSE 632 Analysis of Algorithms II
CSE 633 Parallel Algorithms
CSE 662 Languages and Runtimes for Big Data
CSE 680 Computational Geometry
CSE 681 Formal Languages
CSE 694 Topics in Algorithms
CSE 696 Computational Complexity

Artificial Intelligence (AI) Area:
CSE 555 Intro to Pattern Recognition
CSE 556 Introduction to Visualization
CSE 563 Knowledge Representation
CSE 567 Computational Linguistics
CSE 568 Robotics Algorithms
CSE 573 Intro to Computer Vision & Image Processing
CSE 574 Intro to Machine Learning
CSE 626 Data Mining
CSE 661 Document Analysis and Recognition
CSE 663 Advanced Knowledge Representation and Reasoning
CSE 666 Introduction to Biometric and Image Analysis
CSE 667 Advanced Topics in Computational Linguistics
CSE 668 Advanced Robotics
CSE 672 Bayesian Vision
CSE 674 Advanced Machine Learning
CSE 675 Stochastic Simulation and Inference
CSE 678 Face and Gesture Recognition

Hardware and Networked Systems (HW) Area:
CSE 524 Real-time and Embedded Systems
CSE 534 Introduction to Multimedia Systems
CSE 547 High Performance Computing I
CSE 552 VLSI (Very Large Scale Integration) Testing
CSE 566 Wireless Networks Security
CSE 586 Distributed Systems
CSE 589 Modern Networking Concepts
CSE 590 Computer Architecture
CSE 593 Intro to VLSI Electronics
CSE 620 Advanced Networking Concepts
CSE 622 Advanced Computer Systems
CSE 630 Advanced Wireless Networking Concepts
CSE 646 Wireless Networking and Mobile Computing
CSE 671 Security in Ad-hoc and Sensor Networks
CSE 691 Advanced VLSI Design

Graduate Elective Requirement - 9 credits
-Must include 1-3 credit of CSE 7xx level seminar
-May include at most 6 graduate credits from outside the CSE Department
-The following courses do not satisfy the Graduate Elective requirement:
CSE 501 Graduate Studies in CS
CSE 503 Computer Science for Non-majors
CSE 504 Computer Science for Non-majors II
CSE 507 Object Oriented Applications and Systems Design

Total required graduate credits: 30

Note: all courses are not offered every semester. Please check the undergraduate/graduate schedule ahead for planning.

Summary
Total required credit hours for the undergraduate portion: 103
Total required credit hours for the graduate portion: 30
Total required credit hours for the BS/MS: 133

See Baccalaureate Degree Requirements (UB Curriculum) for general education, distribution and other university requirements.

Students in the BS/MS program must change status from undergraduate to graduate while completing the program. Student status will change to graduate after the completion of no more than four graduate-level courses. When the student changes status to graduate, all Graduate School rules and policies apply; therefore, the student must be familiar with and adhere to the Graduate School's Policies and Procedures Manual as well as the CSE Department's Graduate Handbook, which is available at this website.

Recommended Sequence of Program Requirements

View the Finish in Four Curricular Plan for the Computer Science BS/MS which is a recommended sequence of courses to help achieve this degree in five years.

Computer Science - Minor

Acceptance Criteria

Admission to CS Minor requires:
  1. Completion of three required core courses (see below) with grades of C- or better and a combined core course grade point average of at least 2.5. The three required core courses are:
    1. Introduction to Computer Science Majors 1 (CSE 115)
    2. Introduction to Computer Science Majors 2 (CSE 116)
    3. Discrete Structures (CSE 191). Students who have taken MTH 311 can use that as a substitute for CSE 191.
  2. Minimum overall cumulative GPA of 2.5.
Applicants to the computer science minor should submit a SEAS Minor Application.

About the Minor

Six CSE courses (excluding CSE 101, CSE 111, CSE 113, CSE 198, CSE 199, CSE 492, and CSE 494-499), with at least two at the 300- level or above. A minimum GPA of 2.0 overall in those courses is required. At least three courses must be taken at UB. A maximum of two of these courses may be used for a student's major.

Students in the minor program are limited to 6 CSE courses. Students wanting to take additional CSE courses must satisfy the BS CS or BA CS major admission criteria.

SAMPLE MINOR PROGRAMS
Software track: CSE 115, CSE 116, CSE 191, CSE 250, CSE 305, CSE 442
Hardware track: CSE 115, CSE 116, CSE 191, CSE 241, CSE 341, CSE 379

Minor Credit Requirements Chart
Total Credits Required for Minor/Certificate 22

Minors and certificates must be completed in conjunction with a major and all university degree requirements must be met.

Students should consult with an academic advisor to determine how any transfer or exam credit might be utilized in meeting general education, prerequisite, or major requirements.

Last updated: November 22 2021 21:01:55