Department of Computer Science

Chair and Professor: E. Celebi (PhD)
Professor: C. Hu (PhD), V. Paruchuri (PhD), Y. Sun (PhD)
Associate Professor: B. Chen (PhD), T. Halic (PhD), S. Kockara (PhD), S. Sheng (PhD)
Assistant Professor: M. Karakaya (PhD), O. Kursun (PhD), A. Patooghy (PhD)
Senior Lecturer: M. Smith (PhD), K. Thessing (MS)
Lecturer: M. Doderer (PhD)
Instructor: A. Alsharif (MS)

[1] Programs of Study and Purposes

The Department of Computer Science offers programs of study leading to the Bachelor of Science in Computer Science, the Bachelor of Science in Computer Engineering, 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 Management Information Systems 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 48 credit hours in computer science, about 31 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 and organization, algorithms, database systems, operating systems, and software engineering; as well as elective courses in artificial intelligence, computer-based communication networks, distributed computing, information security, graphics, human-computer interaction, multimedia, scientific computing, web technology, and other current topics in computer science.

The Bachelor of Science degree in Computer Engineering emphasizes the ability of developing and adapting computer hardware for applications, and prepares broadly trained computer engineers who are experienced in both software and hardware engineering. This program requires a minimum of 59 credit hours in computer science and computer engineering, about 37 credit hours in mathematics and the sciences, and the university general education program. The departmental curriculum provides required computer engineering courses such as assembly language and computer organization, electronics, computer architecture, signals and systems, digital logic, microprocessor systems, and embedded systems; as well as elective courses in networking, operating systems, image processing, signal processing, microelectronics, and other current topics in computer engineering.

The purpose of the BS programs in computer science and computer 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/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 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 essential concepts, principles, and practices to construct appropriate solutions and analyze application processes using professional judgment in the selection and application of theory, tools, and techniques;
Objective 3: Work productively, as individuals and as team members, to produce work involving problem identification, analysis, design, and development of a software/hardware system within a professional, legal, and ethical framework; and
Objective 4: Maintain their skills as the field evolves and appreciate the needs 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 and the Combined BS+MS Program in Computer Science

[Jump to Recognition of Academic Achievement for general information about Honors in the Majors.]

Junior and senior students who have demonstrated superior achievement in all areas, particularly in their computer science major, may be invited to participate in the Honors in Computer Science program. These students will engage in investigations in special computer science topics. The successful completion of their research will make these students eligible to graduate with Honors in Computer Science.

The department offers a combined and accelerated option for students to complete both the BS in Computer Science and the MS in Applied Computing degrees. This option allows qualified undergraduate seniors in the BS program in Computer Science to take first-year graduate-level courses in the MS program. 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 his/her academic advisor or the department chair for details.

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

Degree programs: BS, Computer Science | BS, Computer Engineering
Concentration: Computer Science – Data Science
Minor program: Computer 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 38 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 Computer Science Courses (39 hours)

CSCI 1470 Computer Science I
CSCI 1480 Computer Science II
CSCI 2320 Data Structures
CSCI 2340 Assembly Language Programming
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 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)

CSCI 3V75 Internship
CSCI 3335 Networking
CSCI 3345 Human-Computer Interaction
CSCI 3385 Artificial Intelligence
CSCI 4305 Linux/Unix Systems
CSCI 4310 Numerical Methods for Data Science*
CSCI 4315 Information Security [UD UCA Core: R]
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 4370 Data Mining
CSCI 4371 Machine Learning
CSCI 4372 Data Clustering
CSCI 4390 Theory of Computation*
CSCI 4V95 Independent Study
*CSCI 4310 and CSCI 4390 can be used as either Computer Science elective courses OR additional Mathematics courses.

Note: At most one CSCI course with grade of D can be applied toward the BS degree.

Required mathematics courses (at least 16 hours)

Core Mathematics Courses (13 hours)

MATH 2311 Elementary Statistics
MATH 2330 Discrete Structures I
MATH 3320 Linear Algebra [UD UCA Core: I]
MATH 1491 Applied Calculus for the Life Sciences or MATH 1496 Calculus I

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

MATH 1497 Calculus II
MATH 3311 Statistical Methods
CSCI 4310 Numerical Methods for Data Science*
CSCI 4390 Theory of Computation*
*CSCI 4310 and CSCI 4390 can be used as either Computer Science elective courses OR additional Mathematics courses.

Required Science Courses (12 hours)

BIOL 1440 Principles of Biology I
BIOL 1441 Principles of Biology II
or
CHEM 1450 College Chemistry I
CHEM 1451 College Chemistry II
or
PHYS 1410 College Physics 1
PHYS 1420 College Physics 2
or
PHYS 1441 University Physics 1
PHYS 1442 University Physics 2
and
One science course other than the selected sequence

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

[Back to program-of-study links]

Required Computer Science Courses (38 hours)

CSCI 1470 Computer Science I
CSCI 1480 Computer Science II
CSCI 2320 Data Structures
CSCI 3190 Social Implications of Technology
CSCI 3330 Algorithms
CSCI 3360 Database Systems [UD UCA Core: C]
CSCI 3381 Object-Oriented Software Development with Java
CSCI 3385 Artificial Intelligence
CSCI 4191 Seminar in Applied Computing
CSCI 4300 Operating Systems
CSCI 4370 Data Mining
CSCI 4371 Machine Learning
CSCI 4491 Applied Data Science [UD UCA Core: Z]

Data Science Elective Courses (at least 15 hours required)

CSCI 3V75 Internship
CSCI 3335 Networking
CSCI 4310 Numerical Methods for Data Science
CSCI 4315 Information Security [UD UCA Core: R]
CSCI 4340 Introduction to Parallel Computing
CSCI 4350 Computer Graphics
CSCI 4353 Introduction to Multimedia Computing
CSCI 4357 Programming Mobile Devices
CSCI 4360 Special Topics in Computer Science
CSCI 4365 Web Technology
CSCI 4372 Data Clustering
CSCI 4390 Theory of Computation
CSCI 4V95 Independent Study
MATH 3391 Nonparametric Statistics
MATH 3392 Multivariate Analysis
MATH 4371 Introduction to Probability [UD UCA Core: R]
MATH 4373 Regression Analysis
MIS 4355 Project Management
MIS 4380 Business Intelligence

Note: At most one CSCI course with grade of D can be applied toward the BS degree.

Required Mathematics Courses (16 hours)

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

Required Science Courses (12 hours)

BIOL 1440 Principles of Biology I
BIOL 1441 Principles of Biology II
or
CHEM 1450 College Chemistry I
CHEM 1451 College Chemistry II
or
PHYS 1410 College Physics 1
PHYS 1420 College Physics 2
or
PHYS 1441 University Physics 1
PHYS 1442 University Physics 2
and
One science course other than the selected sequence

[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 Computer Engineering

[Back to program-of-study links]

[3.3.1] Computer Engineering Program Requirements

The Bachelor of Science, with a major in computer engineering, requires successful completion of 125 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 Computer Science and Computer Engineering Courses (52 hours)

ENGR 1301 Introduction to Engineering
CSCI 1470 Computer Science I
CSCI 1480 Computer Science II
CSCI 2320 Data Structures
CSCI 2340 Assembly Language Programming
ENGR 2447 Electronics
ENGR 3301 Signals and Systems
CSCI 3380 Computer Architecture
CSCI 3381 Object-Oriented Software Development with Java
ENGR 3415 An Introduction to Digital Logic
ENGR 3416 Microprocessor Systems
ENGR 4311 Senior Design 1
ENGR 4312 Senior Design 2 [UD UCA Core: Z]
ENGR 4450 An Introduction to Embedded Systems
CSCI 4490 Software Engineering [UD UCA Core: Z]

Elective Computer Engineering Courses (6 hours required; choose at least two)

CSCI 3335 Networking
CSCI 4300 Operating Systems
CSCI 4315 Information Security [UD UCA Core: R]
ENGR 3340 An Introduction to Digital Image Processing
ENGR 4315 An Introduction to Signal Processing
ENGR 3447 Microelectronics

Note: At most one CSCI/ENGR course with a grade of D can be applied toward the BS in Computer Engineering degree.

Required mathematics courses (21 hours)

MATH 1496 Calculus I
MATH 1497 Calculus II
MATH 2311 Elementary Statistics
MATH 2471 Calculus III
MATH 2330 Discrete Structures I
MATH 3331 Ordinary Differential Equations [UD UCA Core: C]

Required science courses (16 hours)

BIOL 1400 Exploring Concepts in Biology or BIOL 1440 Principles of Biology I
CHEM 1450 College Chemistry I
PHYS 1441 University Physics 1
PHYS 1442 University Physics 2

Other Required courses (30 hours)

Lower-division UCA Core Electives (24 hours)
PHIL 3320 Ethics [UD UCA Core: I, R]
Upper-division UCA Core Elective (must fulfill UD UCA Core: D)

[4] Master’s Degree

See Graduate Bulletin.

[5] Courses in Computer Science (CSCI)

Follow this link for CSCI course descriptions: course link.