Computer Science, BA

Degree: Bachelor of Arts (BA)
Major: Computer Science


Program Overview

The Bachelor of Arts degree program in computer science is a combination of a liberal arts program and a computing major. It is a professional program in the sense that graduates can be employed as computer professionals, but it is less technical than the Bachelor of Science degree program in computer science. This degree is particularly suitable for students with a wide range of interests. For example, students can major in another discipline in addition to computer science and routinely complete all of the requirements for the double major in a 4 year period. This is possible because over a third of the courses in the program are open electives. Furthermore, if a student is majoring in computer science and a second technical field such as mathematics or physics many of the technical electives will be accepted for both majors. Another example of the utility of this program is that it routinely allows students to major in computer science and take all of the pre-med courses in a four-year period.

This program provides students with a strong background in the fundamental skills and knowledge needed by all CS graduates while providing the greatest flexibility in selecting topics. Students can use their technical and open electives to pursue interests in software engineering, algorithms, artificial intelligence, databases, data mining, bioinformatics, security, computer systems, and computer networks. In addition to an excellent technical education, all students in the department are exposed to societal issues, ethics, professionalism, and have the opportunity to develop leadership and creativity skills.

Mission

The mission of the Bachelor of Arts degree program in computer science is to graduate students who have fundamental technical knowledge of their profession and the requisite technical breadth and communications skills to become leaders in creating the new techniques and technologies which will advance the field of computer science and its application to other disciplines.

Program Educational Objectives

  1. Analyze real-world problems and create solutions based on the fundamentals of computer science and mathematics.
  2. Work effectively, professionally, collaboratively, and ethically.
  3. Assume leadership roles in industry, academia, public service, and entrepreneurship.
  4. Successfully progress in advanced degree programs in computing and related fields.

Learning Outcomes

As preparation for achieving the above educational objectives, the Bachelor of Arts degree program in computer science is designed so that students attain the ability to:

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

Undergraduate Policies

For undergraduate policies and procedures, please review the Undergraduate Academics section of the General Bulletin.

Combined Bachelor's/Master's Programs

Undergraduate students may participate in accelerated programs toward graduate or professional degrees. For more information and details of the policies and procedures related to accelerated studies, please visit the Undergraduate Academics section of the General Bulletin.

Program Requirements

Students seeking to complete this major and degree program must meet the general requirements for bachelor's degrees and the Unified General Education Requirements. Students completing this program as a secondary major while completing another undergraduate degree program do not need to satisfy the school-specific requirements associated with this major.

Students are required to complete at least 13 computer science and computer science related courses totaling at least 42 credit hours plus 8 credit hours of mathematics. The 13 computer science courses must include all six core courses and at least one course from each of the four computer science breadth areas. The remaining three courses may come from the list of approved technical electives.

Required Courses

Mathematics Requirement:
Choose two of the following:8
Calculus for Science and Engineering I
Math and Calculus Applications for Life, Managerial, and Social Sci I
Calculus for Science and Engineering II
Calculus II
Math and Calculus Applications for Life, Managerial, and Social Sci II
Core Requirement:21-22
Programming in Java
Programming in Python
and The Java Programming Language
Introduction to Data Structures
Logic Design and Computer Organization
Discrete Mathematics
Algorithms
Senior Project in Computer Science
Computer Science Breadth Courses:
Breadth Area 1:3
Choose one of the following:
Introduction to Database Systems
Data Privacy
Advanced Game Development Project
Software Engineering
Breadth Area 2:3-4
Choose one of the following:
Introduction to Data Science Systems
Computer Architecture
Computer Networks I
Intro to Operating Systems and Concurrent Programming
Breadth Area 3:3-4
Choose one of the following:
Compiler Design
Theoretical Computer Science
Computer Security
Programming Language Concepts
Breadth Area 4:3
Choose one of the following:
Introduction to Data Analysis
Introduction to Artificial Intelligence
Data Mining for Big Data
Introduction to Machine Learning
Technical Electives8-9
Total Credit Hours50-53

Technical Electives

Computer science related courses not listed below may be used as a technical elective but require prior permission from the student’s academic advisor.

Any CSDS course3-4
ECSE 301Digital Logic Laboratory2
ECSE 303Embedded Systems Design and Laboratory3
ECSE 315Digital Systems Design4
ECSE 317Computer Design - FPGAs3
ECSE 323Introduction to Human-Robot Interaction3
ECSE 373Introduction to Modern Robotics4
ECSE 419Computer System Architecture3
ECSE 484Computational Intelligence I: Basic Principles3
ECSE 485VLSI Systems3
ECSE 488Embedded Systems Design3
MATH 201Introduction to Linear Algebra for Applications3
or MATH 307 Linear Algebra
MATH 330Introduction to Scientific Computing3
MATH 356Math in Machine Learning3
MATH 380Introduction to Probability3
MATH 382High Dimensional Probability3
MATH 406/PHIL 306Mathematical Logic and Model Theory3
MATH 408Introduction to Cryptology3
MATH 431Introduction to Numerical Analysis I3
MATH 444Mathematics of Data Mining and Pattern Recognition3
MATH 473Introduction to Mathematical Image Processing and Computer Vision3
PHIL 393Ethics of Artificial Intelligence and Emerging Technology3

Sample Plan of Study

Plan of Study Grid
First Year
FallCredit Hours
CSDS 132 Programming in Java 3
MATH 121
Calculus for Science and Engineering I
or Math and Calculus Applications for Life, Managerial, and Social Sci I
4
Academic Inquiry Seminar, Breadth, or Elective course a 3
Open elective 3
Open elective 3
 Credit Hours16
Spring
MATH 122
Calculus for Science and Engineering II
or Calculus II
or Math and Calculus Applications for Life, Managerial, and Social Sci II
4
CSDS 233 Introduction to Data Structures 4
Academic Inquiry Seminar, Breadth, or Elective course 3
Open elective 3
 Credit Hours14
Second Year
Fall
CSDS 281 Logic Design and Computer Organization 4
Breadth, or Elective course a 3
Open elective 3
Open elective 3
Open elective 3
 Credit Hours16
Spring
CSDS 302 Discrete Mathematics 3
Breadth, or Elective course a 3
Open elective 3
Open elective 3
Open elective 3
 Credit Hours15
Third Year
Fall
CSDS 310 Algorithms 3
Computer science breadth course 3
Breadth, or Elective course a 3
Open elective 3
Open elective 3
 Credit Hours15
Spring
Computer science breadth course 3
Computer science breadth course 3
Technical Elective 3
Breadth, or Elective course a 3
Open elective 3
 Credit Hours15
Fourth Year
Fall
Computer science breadth course 3
Breadth, or Elective course a 3
Technical Elective 3
Open elective 3
Open elective 3
 Credit Hours15
Spring
CSDS 395 Senior Project in Computer Science 4
Breadth, or Elective course a 3
Technical Elective 3
Open elective 4
 Credit Hours14
 Total Credit Hours120
a

Unified General Education Requirement.