Computer Science Major & Minor

Computer science is the systematic study of computational systems and computability. It includes theories for understanding the analysis, design, implementation, validation and verification of solutions to complex problems, and for the elicitation, representation, manipulation and visualization of knowledge. More simply put, computer scientists learn to understand what a computer can and cannot do, how computers can efficiently perform specific tasks, how computers can store and retrieve specific types of information, how computers can most effectively organize and display information, and how computers can appear to behave intelligently. Building on the core ideas of a liberal education, the computer science major combines theory with practical experiences to develop skills in problem solving, programming, communication, and collaboration in order to help students realize their potential to assume leadership roles in an increasingly technical world. Computer science majors can prepare for careers in research, development and teaching by pursuing graduate degrees, or they can apply their skills in virtually any industry, from business to biochemistry, and from education to entertainment.

Learning Objectives

The computer science major expects its graduates to achieve the following objectives:

  1. Software Development: Ability to formulate and express software solutions to complex problems in programming languages, including the selection of appropriate data structures, efficient algorithm design, and development of system architectures.
  2. Software Analysis: Ability to apply mathematical tools such as mathematical logic, algorithmic analysis, models of computation and computability theory to problem analysis.
  3. Software Engineering: Ability to follow a structured engineering process in the development of software including: analyzing a problem, planning the development process, designing a solution, implementing the solution and validating the final product.
  4. Communication: Ability to communicate both orally and in writing and to work effectively as part of a team.

Program coordinator: Dr. Alan Whitehurst

Major Requirements (32 credit hours)

Major Core (17 credit hours):

CSC 213 Programming Fundamentals (GE) (3)
CSC 313 Software Engineering (3)
CSC 324 Data Structures (3)
CSC 326 Computer Organization (3)
CSC 336 Theory of Computation (3)
CSC 498 Senior Capstone (2)

Major Electives I: 9 credit hours from among the following:

CSC 316 Database Systems (3)
CSC 327 Algorithms (3)
CSC 443 Operating Systems (3)
CSC 447 Programming Languages (3)
CSC 453 Networking (3)
CSC 457 Artificial Intelligence (3)

Major Electives II: 6 credit hours from among the following:

CSC 223 Authoring for the Web (3)
CSC 224 Dynamic Web Development (3)
CSC 323 Advanced Authoring for the Web (3)
CSC 375R Topics in Computer Science (3)
CSC 385R Directed Study in Computer Science (3)
CSC 499 Senior Internship/Practicum (1)
MAT 114 Finite Mathematics (3)
MAT 221 Statistics (GE) (3)
MAT 241 Calculus I (GE) (4)
MAT 242 Calculus II (GE) (3)
MAT 341 Calculus III (3)
MAT 343 Linear Algebra (3)
PHI 223 Introduction to Logic (3)

Minor Requirements (18 credit hours)

Minor Core (9 credit hours):

CSC 213 Programming Fundamentals (GE) (3)
CSC 326 Computer Organization (3)
CSC 336 Theory of Computation (3)

Minor Electives: 9 credit hours from among the following:

CSC 223 Authoring for the Web (3)
CSC 224 Dynamic Web Development (3)
CSC 313 Software Engineering (3)
CSC 316 Database Systems (3)
CSC 323 Advanced Authoring for the Web (3)
CSC 324 Data Structures (3)
CSC 327 Algorithms (3)
CSC 375R Topics in Computer Science (3)
CSC 385R Directed Study in Computer Science (3)
CSC 443 Operating Systems (3)
CSC 447 Programming Languages (3)
CSC 453 Networking (3)
CSC 457 Artificial Intelligence (3)
MAT 114 Finite Mathematics (3)
MAT 221 Statistics (GE) (3)
MAT 341 Calculus III (3)
MAT 343 Linear Algebra (3)
PHI 223 Introduction to Logic (3)