Dec 04, 2024  
2024-2025 Undergraduate Catalog 
    
2024-2025 Undergraduate Catalog

Computer Science BS/Computer Science and Engineering MS


Return to {$returnto_text} Return to: Majors and Combined Degrees

Admission Criteria


  • Minimum overall GPA of 2.800 required
  • Matriculated student with academic good standing at the University at Buffalo.
  • Satisfactory performance in a series of core courses (see below). There are two paths to meet this requirement.
    1. Standard: Completion of four core courses with a combined core course grade point average of at least 2.500.
    2. Fast-Track: Completion of at least two of the four core courses (graded on an A-F bases) with a combined core course grade point average of at least 3.000.

Computer Science / Bioinformatics Courses Core Courses:

  1. Calculus 1 (MTH 141 or MTH 153)
  2. Introduction to Computer Science for Majors 1 (CSE 115)
  3. Introduction to Computer Science for Majors 2 (CSE 116)
  4. Discrete Structures (CSE 191 or MTH 191)

Current students wishing to pursue the Computer Science BS or Bioinformatics and Computational Biology - Computer Science and Engineering Concentration must follow the instructions on the School of Engineering and Applied Sciences Supplemental Application. See the complete School of Engineering and Applied Sciences Admissions Policies for details.

Course Requirements


One Calculus-Based Probability or Statistics Course (4 credits):


One additional Math or Science Course (3 credits minimum):


Can be satisfied through any of the following: [except courses used to satisfy any other degree requirement or scientific literacy sequence required for UB Curriculum]

  • Any 200-level or higher MTH or STA course (excludes MTH 411 , STA 301 STA 301 , and MTH 495 -MTH 499 /STA 495-STA 499 ; or
  • Any 200- level or higher (excluding 495-499) course in BIO, CHE, GLY or PHY; or
  • Any course in an approved UB Curriculum Scientific Literacy sequence

One CSE 300 to 600 Level Technical Elective (3 credits):


The following courses can not be used to satisfy this requirement:CSE 331  CSE 341  CSE 442  CSE 492  CSE 494  CSE 495  CSE 542

Graduate Core (30 credits):


Breadth Requirement (12 credits)

Theory/Algorithms (TA) Core (3 credits)


One of:

  • CSE 529 - Algorithms for Modern Computing Systems
  • CSE 531 - Analysis of Algorithms I
  • CSE 596 - Intro to the Theory of Computation

Artificial Intelligence (AI) Core (3 credits)


One of:

  • 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

Hardware/Networked Systems (HW) Core (3 credits)


One of:

  • 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 Requirement:


9 credits. Must take 2 courses from one area listed below, at least one of which must be a 600-level course. Must take 1 additional course from any area listed below.

Theory/Algorithms (TA) Area (3 credits)


  • CSE 529 - Algorithms for Modern Computing Systems
  • CSE 531 - Analysis of Algorithms I
  • 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 (3 credits)


  • 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 610/676 - Special Topics/Deep 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

Software and Information Systems (SW) Area (3 credits)


  • CSE 505 - Fundamentals of Programming Languages OR
  • CSE 521 - Introduction to Operating Systems OR
  • CSE 512 - Operating System Internals (only one of these two courses can be used to satisfy the MS requirements in this area)
     
  • CSE 535 - Information Retrieval
  • CSE 560 - Data Model and Query Languages
  • CSE 562 - Database Systems
  • CSE 565 - Computer Security
  • CSE 570 - Introduction to Parallel and Distributed Processing
  • 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

Hardware and Networked Systems (HW) Area (3 credits)


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


9 credits. Must include 1-3 credits of CSE 700 level seminar. May include at most 6 graduate credits from outside the CSE Department (requires approval from the Graduate Director). The following courses do not satisfy the Graduate Elective requirement: CSE 501, CSE 503, CSE 504, CSE 507, CSE 699, the versions of CSE 799 that provide credit for work as Laboratory Assistant.

Total Credits Required for Undergraduate Major: 66-69


Additional Degree Requirements Include:


  • Additional coursework to fulfill UB Curriculum requirements
  • Elective courses as needed to complete the 103 undergraduate credits total

Total Undergraduate Credits Required: 103


Total Credits Required for Graduate Degree: 30


Total Credits Required for Graduation: 130-134


Notes


At most one credit of CSE 598 (Internship) can be counted towards the MS requirements.

CSE 542 cannot be used towards the MS requirements.

At most one of the following courses can be used to satisfy MS requirements:

  • CSE 519 Object-Oriented Techniques
  • CSE 522 Software Requirements Engineering
  • CSE 523 Quality Software Design
  • CSE 525 Software Testing
  • CSE 539 Software Engineering Tools and Building Blocks
  • CSE 553 Software Development Project Management
     

MS culminating experience requirement, satisfied by completing a non-credit bearing final integrative project (which can be part of the CSE 6xx course).

Student status will change to graduate after the completion of no more than three graduate-level courses, at which point all Graduate School rules and policies apply. 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.

Students completing their BS CS as a subsequent bachelor’s degree can fulfill the requirements of this BS CS/MS CSE degree as long as they complete at least six (6) CSE courses (minimum 18 credits) at the undergrad level and at least 8 courses (minimum 24 credits) at the graduate level at UB.

*Students are permitted to take alternative programming courses EAS 230  or EAS 240  in lieu of CSE 115 , however CSE 115  is strongly preferred for Computer Science majors. The alternative programming courses should only be utilized by students transferring into the program with EAS 230 , EAS 240 , or EAS 999TRCP  (general programming for transfer students) already completed. View our Computer Programming Requirement website for more information on the programming alternatives and self-study packages. 

**Students are permitted to use PHY 151  and PHY 152  in lieu of PHY 158 , however PHY 158  is preferred.

Academic Requirements


Students in the School of Engineering and Applied Sciences must have a minimum GPA of 2.000 in technical classes (engineering, math, and science classes) to be in good standing and graduate with an undergraduate degree. To maintain academic standards and determine eligibility for continued enrollment, the School of Engineering and Applied Sciences reviews the academic records of all students in an approved undergraduate SEAS major. This academic review is conducted at the end of each fall and spring semester.

Students must meet all applicable admission criteria and deadlines to be accepted to the graduate portion of the combined degree.

View the School of Engineering and Applied Sciences Academic Review Policy.

Transfer Credit Policy

Students seeking a BA degree in computer science must complete at least six required CSE courses at UB, and at least four of these courses must be at the 300 or 400 level (excluding CSE 492  CSE 494  and CSE 499 ).

Program Distinction


A student in this major is eligible for Program Distinction upon degree conferral if the criteria are met. Criteria are found under Academic Honors in the Policy and Procedure section of this Catalog. Program Distinction is noted on the official transcript.

Curricular Plan


A Curricular Plan provides a roadmap for completing this academic program and the UB Curriculum on time. Your actual plan may vary depending on point of entry to the university, course placement and/or waivers based on standardized test scores, earned alternative credit and/or college transfer credit. 

Total Credits: 14 or 15


Total Credits: 15 or 16


Second Year Fall


Total Credits: 15


Second Year Spring


Total Credits: 14


Total Credits: 18


Third Year Spring


  • CSE Graduate Breadth Course Credits: 3
  • CSE 300-600 level Technical Elective Credits: 3
  • Elective Credits: 3
  • Scientific Literacy and Inquiry 2 Credits: 3
  • Pathway Credits: 3

Total Credits: 15


Fourth Year Fall


  • CSE Graduate Breadth Course Credits: 3
  • Math or Science Elective Credits: 3
  • Elective Credits: 3
  • Pathway Credits: 3 

Total Credits: 13


Fourth Year Spring


Total Credits: 12


Fifth Year Fall


  • CSE Graduate Depth Course Credits: 3
  • CSE Graduate Depth Course Credits: 3
  • CSE 5xx/6xx/7xx Elective Credits: 3

Total Credits: 9


Fifth Year Spring


  • CSE 7xx Seminar Credits: 3
  • CSE 5xx/6xx/7xx Elective Credits: 3

Total Credits: 6


Total Credits Required: 132


Note: Some classes may count toward both a major and UB Curriculum requirement.

Learning Outcomes


The curriculum provides opportunities for students to develop the following knowledge, skills, and behaviors by the time of graduation:

  • an ability to analyze  a  complex  computing  problem  and  to  apply  principles  of  computing  and  other  relevant disciplines to identify solutions.
  • an ability to design,  implement,  and  evaluate  a  computing-based  solution  to  meet  a  given  set  of  computing requirements in the context of the program’s discipline.
  • an ability to communicate effectively in a variety of professional contexts.
  • an ability to recognize  professional  responsibilities  and  make  informed  judgments  in  computing  practice based on legal and ethical principles.
  • an ability to function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  • an ability to apply computer science theory and software development fundamentals to produce computing-based solutions.

 

(HEGIS: 07.01 COMPUTER & INFO SCI-GEN, CIP11.0701 Computer Science)

 

Return to {$returnto_text} Return to: Majors and Combined Degrees