Degrees & Requirements

The Computer Science Bachelor of Science prepares students for the technology industry. The computer science curriculum includes 75 credit hours of computer science, math and core courses.

The Computer Science program at Emory & Henry has recently been approved by the Southern Association of Colleges and Schools Commission on Colleges.

  • Computer Science (B.S.)

    B.S. in Computer Science Course Requirements (75 credit hours)

    • CSC 100 Introduction to Computing (3 credits)
    • CSC 110 Programming I (3 credits)
      • CSC 110 Programming I Lab (1 credit)
    • CSC 111 Programming II (3 credits
      • CSC 111 Programming II Lab (1 credit)
    • CSC 220 Data Strcutures (3 credits)
    • CSC 310 Database Systems (3 credits)
    • CSC 320 Programming Languages (3 credits)
    • CSC 325 Analysis of Algorithms (3 credits)
    • CSC 375 Computer Organization (3 credits)
    • CSC 385 Theory of Computing (3 credits)
    • CSC 410 Software Engineering (3 credits)
    • CSC 422 Internet Systems (3 credits)
    • CSC 450 Operating Systems (3 credits)
    • CSC 465 Artificial Intelligence and Machine Learning (3 credits)
    • CSC 469 Concurrent and Parallel Programming (3 credits)
    • CSC 476 Networked Computer Systems (3 credits)
    • CSC 495 Capstone Computer Science Project (3 credits)
    • MATH 151 Calculus I (4 credits)
    • MATH 152 Calculus II (4 credits)
    • MATH 360 Statistical Probability (3 credits)
    • MATH 370 Discrete Structures (3 credits)
    • 2 sequence Natural Science with Lab (8 credits) taken from:
      • CHEM 111 and 112,
      • BIOL 117 and 201,
      • PHYS 201 and 202, or
      • EGSC 110 and 120
    • Core Courses (37 credit hours)

Course Descriptions

CSC 100 Introduction to Computing

The objective of this course is to introduce students to the fundamentals of computer science. This is not a computer literacy course (e.g., how to use office applications, email, web, etc.). The focus of the course is on topics in computer science. This is a broad survey of computer science and should be taken by a student to determine if they might be interested in majoring in computer science. A sampling of topics includes computer architecture, data representation, artificial intelligence, database systems, operating systems, networking, algorithms, and programming. Approximately 1/3 of the class will be devoted to learning how to program using programming language. (3 semester hours)

CSC 110 Computer Programming I

This is an introductory course in computer programming in a high-level language. Problem solving techniques and writing algorithms will be stressed. Concepts stressed in this course are proper use of control structures, development of essential data structures, creating functions and object-oriented programming. (3 semester hours)

CSC 110L Computer Programming I Lab

Required laboratory course to accompany CSC 110. (1 semester and 3 laboratory hours)

CSC 111 Computer Programming II

This is a second course in computer programming. Programming concepts stressed in this course will be data abstraction, advanced functional topics, exception handling and file manipulation. Prerequisite: CSC 110. (3 semester hours)

CSC 111L Computer Programming II Lab

Required laboratory course to accompany CSC 111. (1 semester and 3 laboratory hours)

CSC 220 Data Structures

A study of abstract data types, including lists, stacks, queues, and search tables, and their supporting data structures, including arrays, linked lists, binary search trees, and hash tables. Implications of the choice of data structure on the efficiency of the implementation of an algorithm. Efficient methods of sorting and searching. Prerequisite: MATH 370. (3 semester hours)

CSC 310 Database Systems

This course focuses on logical and physical organization of sets of related data. It covers issues in file structures as well as file and database management systems. Exploration of relational models, hierarchical models, directed graph models, data definition and manipulation of languages and relational calculus. Application projects are required. Prerequisite: CSC 220. (3 semester hours)

CSC 320 Programming Languages

This course focuses on formal specification of programming languages, including definition of syntax and semantics: simple statements including precedence, infixes, prefix, and postfix notations. It stresses the concepts of sequence control, data structure implementation, scooping, storage management, grouping of statements, sub-routines and tasks. Prerequisite: CSC 220. (3 semester hours)

CSC 325 Analysis of Algorithms

Algorithm design strategies, including greedy, divide-and-conquer, and dynamic programming methods. Advanced data structures, including balanced search trees, graphs, heaps, and priority queues.

Advanced methods of searching and sorting. Computational complexity and analysis of algorithms. NP- complete problems. Prerequisite: MATH 152, CSC 220. (3 semester hours)

CSC 375 Computer Organization

An introduction to how digital computers are built and the process by which computer programs expressed in a high-level language are translated into signals to be routed on a digital circuit board. Topics include data representation and manipulation, digital logic building blocks (logic gates, flip-flops), computer memory, assembly and machine code, hardware components and their organization. Prerequisite: CSC 220. (3 semester hours)

CSC 385 Theory of Computing

This course is the study of topics, which include theory of finite state machine and automata; regular expressions; Turing machines; grammars; parsing; language hierarchy; machine design and construction; computability; insolvability; halting problem; computational complexity; and recursive functions. The course also discusses issues in equivalence of various computational models, minimization, and characterizations. Prerequisite: CSC 325 (3 semester hours)

CSC 390 Professional Ethics in Computer Science

This course examines the increasingly complex interaction between computer systems, our social fabric and ethics. Software and microprocessors control automobiles, banks, brokerage trading, aircraft, medical equipment, and just about every other device used in industrialized nations. Impacts of computerized systems upon personal privacy and citizen involvement in governance are examined in relation to the public policy questions of the day. Interdisciplinary readings are stressed, along with required written and oral presentations and class debates. (3 semester hours)

CSC 410 Software Engineering

Explores the key software design concepts involved in practical software projects. Topics include software development processes, design patterns, software architecture, software testing, software performance, security, and safety. Prerequisites: MATH 360, CSC 325. (3 semester hours)

CSC 422 Internet Systems

This course addresses the structure and functionality of the Internet and software that exploits it. Topics include mark-up languages, static, dynamic, active web pages, multimedia applications, communication protocols, client-server architectures, scripting, distributed communications through Internet protocols and security issues addressed. Prerequisite: CSC 325. (3 semester hours)

CSC 450 Operating Systems

An introduction to the theory and practice of operating system design and implementation. Algorithmic techniques are presented for implementing process management, memory management, processor management, file systems, concurrency, and security. Prerequisite: CSC 375. (3 semester hours)

CSC 465 Artificial Intelligence and Machine Learning

This course discusses the theory and application of artificial intelligence with a focus on machine learning. It covers concepts related to search, knowledge representation, logistic reasoning, supervised and unsupervised learning. Students will be required to write programs implementing artificial intelligence and machine learning concepts. Prerequisite: CSC 325. (3 semester hours)

CSC 469 Concurrent and Parallel Programming

This course introduces parallel programming and problem solving. Topics include parallel programming design, parallel programming models, programming on multicore architectures, parallel computational thinking, and introduction to performance analysis of parallel algorithms. Prerequisite: CSC 450 or permission of instructor. (3 semester hours)

CSC 476 Networked Computer Systems

This course presents an overview of the technology, architecture and software used by systems of network-connected computers. The course will cover data transmission, local area network architecture, network protocols, internetworking, security, and World Wide Web technology. Students will write programs that run concurrently on multiple computers. Prerequisite: CSC 220. (3 semester hours)

CSC 495 Capstone Computer Science Project

This is a semester-long project-based course providing a capstone experience for the Computer Science major. (3 semester hours)

MATH 151 Calculus I

Graphical, numerical, and symbolic study of functions and limits; fundamental concepts of differentiation and integration. Differentiation formulas. Applications to exponential growth and decay, velocity and acceleration. Use of a CAS. (4 semester hours) Prerequisites: C or higher in MATH 123 or permission of instructor. MATH 152 Calculus II A continuation of Mathematics 151. Applications of integration to physics, statistics and engineering including finding volumes, arc lengths, surface area. Sequences and series, parametrically defined functions including those defined in the polar plane. Introduction to vectors, vector spaces and

operations on vectors, including the cross and dot products, norms and linear transformations. (4 semester hours) Prerequisites: C or higher in MATH 151 or permission of instructor.

MATH 360 Probability & Statistics

An introduction to the mathematical theories of probability and statistics, including some topics such as combinatorial methods, conditional probability and independence, discrete and continuous random variables, expectation, simple and multiple regression, analysis of variance, contingency tables, time series, logistic regression, and experimental design. This course satisfies the proficiency requirements for Ethical Reasoning and Quantitative Literacy in the disciplines. (3 semester hours) Prerequisites: MATH 152 and STAT 161, or permission of instructor.

MATH 370 Discrete Structures

Theoretical foundations of computer science, including sets, functions, Boolean algebra, first order predicate calculus, trees, graphs, discrete probability. This course satisfies the proficiency requirement for Oral Communication in the disciplines. (3 semester hours) Prerequisites: MATH 201 and knowledge of a high-level programming language or departmental permission.