Department of Computer Science and Engineering

Chair and Professor: E. Celebi (PhD)

Professor: B. Chen (PhD), C. Hu (PhD), V. Paruchuri (PhD), Y. Sun (PhD)

Assistant Professor: M. Abouyoussef (PhD), E. Erdin (PhD), Z. Stine (PhD), S. Ullah (PhD)

Senior Lecturer: M. Smith (PhD)

Lecturer: J. Baarsch (PhD), J. Corkran (MS), M. Talley (MS)

[1] Programs of Study and Purposes

The Department of Computer Science and Engineering offers programs of study leading to the Bachelor of Science in Computer Science, the Bachelor of Science in Software Engineering, the Bachelor of Science in Data Science, the Master of Science in Computer Science, and a minor in Computer Science. The Bachelor of Science in Cybersecurity is offered in collaboration with the Department of Computer Information Systems and Analytics and the Department of Political Science.

The Bachelor of Science degree in Computer Science emphasizes problem solving in the context of algorithm development and software implementation, and prepares students for effectively using modern computer systems in various applications. This BS program requires a minimum of 54 credit hours in computer science, about 24 credit hours in mathematics and the sciences, and the university general education program. The departmental curriculum provides required computer science courses such as programming languages, data structures, computer architecture, algorithms, database systems, operating systems, and software engineering; as well as elective courses in artificial intelligence, distributed computing, graphics, human-computer interaction, multimedia, scientific computing, web technologies, and other current topics in computer science.

The Bachelor of Science degree in Software Engineering emphasizes the ability to apply engineering principles to the development, operation, and maintenance of software, and prepares students for engineering software for various application domains. This program requires a minimum of 32 credit hours in computer science, 25 credit hours in software engineering, 30 credit hours in mathematics and the sciences, and the university general education program. The departmental curriculum provides required software engineering courses such as introduction to software engineering, requirements engineering, software design and construction, object-oriented software development with Java, software testing, software security, cloud computing, and software engineering; as well as required computer science courses in data structures, networking, algorithms, database systems, programming languages, operating systems, information security, and ethical implications of technology.

The Bachelor of Science degree in Data Science emphasizes problem solving in the context of data science and analytics, and prepares students for effectively analyzing massive amounts of structured/unstructured data in various application domains. This BS program requires a minimum of 42 credit hours in computer science, about 28 credit hours in mathematics and the sciences, and the university general education program. The departmental curriculum provides required data science courses such as introduction to data science, data structures, algorithms, database systems, object-oriented software development, artificial intelligence, information security, and data mining; as well as concentration courses in computer science, statistics, or business.

The purpose of the BS programs in computer science and software engineering are twofold: (1) to prepare the student for a position involving the design, development and implementation of computer software/hardware, and (2) to prepare the student for entry into a program of graduate study in computer science/software engineering and related fields. The educational objectives for students completing these BS degree programs are that they

Objective 1: Grow as well-educated professionals with an integrated high-level understanding of computing systems, processes, and the main body of knowledge of computer science/engineering as a whole;
Objective 2: Be able to creatively apply theoretical and practical knowledge of computing to develop and support software solutions;
Objective 3: Work effectively, as an individual or as a member of a team, while communicating effectively with diverse audiences; contributing to a collaborative and inclusive environment; and complying with the ethical, legal, and professional standards of the discipline; and
Objective 4: Maintain their skills as the field evolves and appreciate the need for continuing professional growth and development to keep current in the profession.

The department also offers a minor in Computer Science. The computer science minor curriculum provides necessary background for students interested in using computational methods to solve a broad range of application problems in sciences and engineering, such as bioinformatics, computational chemistry, computational engineering, computational mathematics, and others.

[2] Honors in Computer Science/Cybersecurity and the Combined BS+MS Program in Computer Science/Cybersecurity

Students who major in Computer Science or Cybersecurity and who demonstrate exceptional ability may be invited to enter the Honors in the Major Program. For details, see Honors in the Major Program.

The department offers a combined and accelerated option for students to complete both the BS in Computer Science or Cybersecurity and the MS in Computer Science degrees. This option allows qualified undergraduate seniors in the BS program in Computer Science or Cybersecurity to take first-year graduate-level courses in the MS program. A maximum of nine such credit hours may be counted toward both the BS and MS degrees. These students will be able to complete all the requirements for the BS and MS programs in five years. Students interested in this five-year BS+MS combined option should contact their academic advisor or the department chair for details. See also the Graduate Bulletin description of these options.

To jump directly to a particular program of study, use these links:

Degree programs: BS, Computer Science | BS, Software Engineering | BS, Data Science
Concentration: Computer Science – Data Science
Minor program: Computer Science | Data Science

[3] Baccalaureate Degrees: Bachelor of Science

[3.1] Major in Computer Science

[3.1.1] Computer Science Student Outcomes

All undergraduate students majoring in Computer Science will meet the following student general outcomes, specified by ABET CAC, upon their graduation:

  1. Analyze a problem and identify and define the computing requirements appropriate to its solution.
  2. Design, implement, and evaluate a computer-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.

Specifically, graduates should have an ability to

  1. Apply computer science theory and software development fundamentals to produce computing-based solutions.

[3.1.2] Computer Science Program Requirements

[Back to program-of-study links]

The Bachelor of Science, with a major in computer science, requires successful completion of 120 hours, including (1) the UCA Core: complete 39 hours to meet lower-division UCA Core requirements and complete upper-division UCA Core requirements using major, minor, or elective courses (see the UCA Core requirements); (2) degree requirements; and (3) major requirements outlined below. This program does not require a minor.

Mathematics Pathway: First-time, first-year students majoring in Computer Science enter the College Algebra Mathematics Pathway and must enroll in MATH 1390 during their first year of study, unless they have been awarded credit for MATH 1390.

Required Computer Science Courses (42 hours)

CSCI 1470 Computer Science I
CSCI 1480 Computer Science II
CSCI 2320 Data Structures
CSCI 2335 Networking
CSCI 3330 Algorithms
CSCI 3360 Database Systems [UD UCA Core: C]
CSCI 3370 Principles of Programming Languages
CSCI 3380 Computer Architecture
CSCI 3381 Object-Oriented Software Development with Java
CSCI 4300 Operating Systems
CSCI 4315 Information Security [UD UCA Core: R]
CSCI 4321 Ethical Implications of Technology [UD UCA Core: D, R]
CSCI 4490 Software Engineering [UD UCA Core: Z]

Elective Computer Science Courses (12 hours required)

CSEC 2300 Introduction to Cybersecurity*
CSCI 2310 Introduction to Data Science*
CSCI 2340 Assembly Language Programming*
CSCI 3V75 Internship
CSCI 3345 Human-Computer Interaction
CSCI 3382 Multi-Core and Multithreaded Programming
CSCI 3385 Artificial Intelligence
CSCI 4V95 Independent Study
CSCI 4305 Linux/UNIX Systems
CSCI 4340 Introduction to Parallel Computing
CSCI 4350 Computer Graphics
CSCI 4352 Introduction to Game Programming
CSCI 4353 Introduction to Multimedia Computing
CSCI 4355 Distributed Object Computing
CSCI 4357 Programming Mobile Devices
CSCI 4360 Special Topics in Computer Science
CSCI 4365 Web Technologies
CSCI 4370 Data Mining
CSCI 4371 Machine Learning
CSCI 4372 Data Clustering
CSEC 3300 Introduction to Number Theory and Cryptography
CSEC 3320 Computer Forensics [UD UCA Core: I]
CSEC 4320 Ethical Hacking
CSEC 4330 Software Security
CSEC 4335 Network Security
CSEC 4345 Cyber-Physical Security
ENGR 3301 Signals and Systems
ENGR 3340 An Introduction to Digital Image Processing
ENGR 3415 An Introduction to Digital Logic
ENGR 3416 Microprocessor Systems
ENGR 4315 An Introduction to Signal Processing
ENGR 4450 An Introduction to Embedded Systems

* No more than three hours of electives at the 2000 level may be counted toward the Computer Science major (an additional three hours may be counted with the consent of the chair).

Required Mathematics Courses (at least 16 hours)

Core Mathematics Courses (13 hours)

MATH 1491 Applied Calculus for the Life Sciences or MATH 1496 Calculus I
CSCI 2330 Discrete Mathematics for Computing
MATH 3311 Statistical Methods
MATH 3320 Linear Algebra [UD UCA Core: I]

Additional Mathematics Courses (at least 3 hours), chosen from the following

MATH 1497 Calculus II
MATH 4340 Numerical Methods
CSCI 4310 Numerical Methods for Data Science
CSCI 4390 Theory of Computation

Required Science Courses (8 hours)

BIOL 1440 Principles of Biology I
and
CHEM 1450 College Chemistry I or PHYS 1410 College Physics I or PHYS 1441 University Physics I

[3.1.3] Major in Computer Science with a Data Science Concentration

[Back to program-of-study links]

Required Computer Science Courses (48 hours)

CSCI 1470 Computer Science I
CSCI 1480 Computer Science II
CSCI 2320 Data Structures
CSCI 2335 Networking
CSCI 3330 Algorithms
CSCI 3360 Database Systems [UD UCA Core: C]
CSCI 3370 Principles of Programming Languages
CSCI 3380 Computer Architecture
CSCI 3381 Object-Oriented Software Development with Java
CSCI 3385 Artificial Intelligence
CSCI 4300 Operating Systems
CSCI 4315 Information Security [UD UCA Core: R]
CSCI 4321 Ethical Implications of Technology [UD UCA Core: D, R]
CSCI 4370 Data Mining
CSCI 4490 Software Engineering [UD UCA Core: Z]

Data Science Elective Courses (at least 12 hours required)

CSCI 3V75 Internship
CSCI 3345 Human-Computer Interaction
CSCI 3382 Multi-Core and Multithreaded Programming
CSCI 4305 Linux/UNIX Systems
CSCI 4340 Introduction to Parallel Computing
CSCI 4350 Computer Graphics
CSCI 4352 Introduction to Game Programming
CSCI 4353 Introduction to Multimedia Computing
CSCI 4355 Distributed Object Computing
CSCI 4357 Programming Mobile Devices
CSCI 4360 Special Topics in Computer Science
CSCI 4365 Web Technology
CSCI 4371 Machine Learning
CSCI 4372 Data Clustering
MATH 3391 Nonparametric Statistics
MATH 3392 Multivariate Analysis
MATH 4371 Introduction to Probability [UD UCA Core: R]
MATH 4373 Regression Analysis
CISA 4355 Project Management
CISA 4380 Business Intelligence and Data Visualization
ENGR 3301 Signals and Systems
ENGR 3340 An Introduction to Digital Image Processing
ENGR 3415 An Introduction to Digital Logic
ENGR 3416 Microprocessor Systems
ENGR 4315 An Introduction to Signal Processing
ENGR 4450 An Introduction to Embedded Systems
CSEC 3300 Introduction to Number Theory and Cryptography
CSEC 3320 Computer Forensics [UD UCA Core: I]
CSEC 4320 Ethical Hacking
CSEC 4330 Software Security
CSEC 4335 Network Security
CSEC 4345 Cyber-Physical Security

Required Mathematics Courses (16 hours)

MATH 1496 Calculus I
MATH 2311 Elementary Statistics
CSCI 2330 Discrete Mathematics for Computing
MATH 3320 Linear Algebra [UD UCA Core: I]
MATH 3311 Statistical Methods

Required Science Courses (8 hours)

BIOL 1440 Principles of Biology I
and
CHEM 1450 College Chemistry I or PHYS 1410 College Physics I or PHYS 1441 University Physics I

[3.2] Minor in Computer Science

[Back to program-of-study links]

[3.2.1] Requirements for the Computer Science Minor (17 hours)

Required CSCI courses

CSCI 1470 Computer Science I
CSCI 1480 Computer Science II
CSCI 2320 Data Structures
and
At least six credit hours chosen from upper-division CSCI courses

[3.3] Major in Software Engineering

[Back to program-of-study links]

[3.3.1] Software Engineering Student Outcomes

All undergraduate students majoring in Software Engineering will meet the following student general outcomes, specified by ABET EAC, upon their graduation:

  1. an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
  2. an ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors
  3. an ability to communicate effectively with a range of audiences
  4. an ability to recognize ethical and professional responsibilities in engineering situations and make informed judgements, which must consider the impact of engineering solutions in global economic, environmental, and societal contexts
  5. an ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives
  6. an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgement to draw conclusions
  7. an ability to acquire and apply new knowledge as needed, using appropriate learning strategies

[3.3.2] Software Engineering Program Requirements

The Bachelor of Science, with a major in software engineering, requires successful completion of 120 hours, including (1) the UCA Core: complete 39 hours to meet lower-division UCA Core requirements and complete upper-division UCA Core requirements using major, minor, or elective courses (see the UCA Core requirements); (2) degree requirements; and (3) major requirements outlined below. This program does not require a minor.

Mathematics Pathway: First-time, first-year students majoring in Software Engineering enter the College Algebra Mathematics Pathway and must enroll in MATH 1390 during their first year of study, unless they have been awarded credit for MATH 1390. Students with an ACT Math subscore between 22 and 26 should enroll in MATH 1486 Calculus Preparation. Students with an ACT Math subscore of 27 or greater should enroll in MATH 1496 Calculus I.

Required Computer Science Courses (32 hours)

CSCI 1470 Computer Science I
CSCI 1480 Computer Science II
CSCI 2320 Data Structures
CSCI 2335 Networking
CSCI 3330 Algorithms
CSCI 3360 Database Systems [UD UCA Core: C]
CSCI 3370 Programming Languages
CSCI 4300 Operating Systems
CSCI 4315 Information Security [UD UCA Core: R]
CSCI 4321 Ethical Implications of Technology [UD UCA Core: D, R]

Required Software Engineering Courses (25 hours)

CSCI 2360 Introduction to Software Engineering
CSCI 3340 Requirements Engineering
CSCI 3355 Software Design and Construction
CSCI 3381 Object-Oriented Software Development with Java
CSCI 4325 Software Testing
CSEC 4330 Software Security
CSCI 4335 Cloud Computing
CSCI 4490 Software Engineering [UD UCA Core: Z]

Required Mathematics Courses (13 hours)

MATH 1491 Applied Calculus for the Life Sciences or MATH 1496 Calculus I
CSCI 2330 Discrete Mathematics for Computing
MATH 3311 Statistical Methods
MATH 3320 Linear Algebra [UD UCA Core: I]

Required Science Courses (8 hours)

BIOL 1440 Principles of Biology I
PHYS 1410 College Physics I or PHYS 1441 University Physics I

Elective Mathematics / Science Courses (at least 9 hours)

MATH 1497 Calculus II
MATH 2471 Calculus III
MATH 3331 Ordinary Differential Equations I [UD UCA Core: C]
MATH 3381 Data Cleaning and Visualization
MATH 4340 Numerical Methods
MATH 4371 Introduction to Probability [UD UCA Core: R]
BIOL 1441 Principles of Biology II
CHEM 1450 College Chemistry I
CHEM 1451 College Chemistry II
GEOG 1400 Earth Systems Science
GEOG 2475 Cartography
PHYS 1420 College Physics 2
PHYS 1442 University Physics 2

Lower-Division UCA Core Electives (27 hours)

General Electives (6 hours)

[3.4] Major in Data Science

[Back to program-of-study links]

[3.4.1] Data Science Student Outcomes

All undergraduate students majoring in Data Science will meet the following student general outcomes, specified by ABET CAC, upon their graduation:

  1. Analyze a problem and identify and define the computing requirements appropriate to its solution.
  2. Design, implement, and evaluate a computer-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.

Specifically, graduates should have an ability to

  1. Apply theory, techniques, and tools throughout the data analysis lifecycle and employ the resulting knowledge to satisfy stakeholders’ needs.

[3.4.2] Data Science Program Requirements

The Bachelor of Science, with a major in data science, requires successful completion of 120 hours, including (1) the UCA Core: complete 39 hours to meet lower-division UCA Core requirements and complete upper-division UCA Core requirements using major, minor, or elective courses (see the UCA Core requirements); (2) degree requirements; and (3) major requirements outlined below. This program does not require a minor.

Required Computing Core (42 credit hours)

CSCI 1470 Computer Science I
CSCI 1480 Computer Science II
CSCI 2310 Introduction to Data Science
CSCI 2320 Data Structures
CSCI 3330 Algorithms
CSCI 3360 Database Systems [UD UCA Core: C]
CSCI 3381 Object-Oriented Software Development with Java
MATH 3381 Data Cleaning and Visualization
CSCI 3385 Artificial Intelligence
CSCI 4315 Information Security [UD UCA Core: R]
CSCI 4321 Ethical Implications of Technology [UD UCA Core: D, R]
CSCI 4370 Data Mining
CSCI 4491 Applied Data Science [UD UCA Core: Z]

Required Mathematics/Statistics Core (20 credit hours)

MATH 1496 Calculus I
MATH 1497 Calculus II
CSCI 2330 Discrete Mathematics for Computing
MATH 3311 Statistical Methods
MATH 3320 Linear Algebra [UD UCA Core: I]
MATH 4371 Introduction to Probability [UD UCA Core: R]

[3.4.3] Data Science Concentration (12-18 credit hours)

Students majoring in Data Science will be required to complete one of the following concentrations.

[3.4.3.1] Computer Science (12 credit hours)

CSCI 3V75 Internship (with V = 3 or an upper-division course approved by the chair)

CSCI 2335 Networking or CSCI 3345 Human-Computer Interaction or CSCI 4340 Introduction to Parallel Programming

CSCI 4371 Machine Learning

CSCI 4372 Data Clustering

[3.4.3.2] Statistics (18 credit hours)

MATH 3392 Multivariate Analysis

MATH 4373 Regression Analysis

MATH 4391 Machine Learning

MATH 4392 Time Series and Forecasting

And 6 credit hours of electives chosen from the following MATH courses:

MATH 3391 Nonparametric Statistics

MATH 4381 Special Problems in Mathematics (when the subject is one of the following: Qualitative Data Analysis, Text Mining, or Bayesian Analysis)

[3.4.3.3] Business (12 credit hours)

CISA 3382 Internship in Computer Information Systems and Analytics (or an upper-division course approved by the chair)

CISA 4325 Predictive Analytics

CISA 4330 Prescriptive Analytics

CISA 4380 Business Intelligence and Data Visualization

[3.4.4] General Electives (5-11 credit hours)

This program requires 5–11 credit hours of general elective coursework depending on the concentration chosen.

[3.5] Minor in Data Science

[Back to program-of-study links]

[3.5.1] Option 1 (23 hours)

Required Courses (17 hours)
CSCI 1470 Computer Science I
CSCI 1480 Computer Science II
CSCI 2310 Introduction to Data Science
CSCI 2320 Data Structures
CSCI 3385 Artificial Intelligence
Elective Courses (at least 6 hours)
MATH 3381 Data Cleaning and Visualization
CSCI 4370 Data Mining
CSCI 4371 Machine Learning
CSCI 4372 Data Clustering

[3.5.2] Option 2 (15 hours)

Required Courses (6 hours)
CSCI 2310 Introduction to Data Science
CSCI 3385 Artificial Intelligence
Elective Courses (at least 9 hours)
MATH 3381 Data Cleaning and Visualization
CSCI 4370 Data Mining
CSCI 4371 Machine Learning
CSCI 4372 Data Clustering

[4] Bachelor of Science Education Science and Technology, Computer Science Track

A BSE degree with a concentration in computer science requires the successful completion of 120 hours including (1) the UCA Core: complete the lower-division and upper-division UCA Core requirements using major, minor, or elective courses (see the UCA Core requirements); (2) computer science requirements; (3) and related requirements in math and education listed below. Students completing this degree will be prepared to teach computer science in a high school setting.

Computer Science course requirements (20 hours)

CSCI 1470 Computer Science I
CSCI 1480 Computer Science II
CSCI 2310 Introduction to Data Science
CSCI 2320 Data Structures
CSCI 2335 Networking
CSCI 3380 Computer Architecture

Related Mathematics courses (6 hours)

MATH 1491 Applied Calculus for Life Sciences
or
MATH 1496 Calculus I
MATH 4200 Introduction to Educational Testing and Assessment in STEM (MSIT 4321 may be substituted for MATH 4200)

Related Education course (32 hours)

EDUC 1300 Education as a Profession
EDUC 3322 Diverse Learners in Inclusive Settings
EDUC 4210 Integration of Technology in Teaching
MSIT 3310 Learning and Development [UD UCA Core: D, R]
MSIT 4305 Classroom Management
SCI 4300 Secondary Science Methods & Materials
SCI 4360 Internship I
SCI 4T90 Internship II [UD UCA Core: Z]

Completion of the computer science and related courses will only partially satisfy the upper-division (UD) UCA Core. Students are encouraged to take the opportunity to explore other areas more deeply by completing courses designed as “C” in areas outside of the sciences.

Required Computer Science Hours (20):
Related Hours (38):

Math: 6
Education Related: 32

Total: 58

[5] Master’s Degree

See Graduate Bulletin.

[6] Courses in Computer Science (CSCI)

Follow this link for CSCI course descriptions: course link.
Follow this link for CISA course descriptions: course link.
Follow this link for MATH course descriptions: course link.