Computer Science Courses

Below is a list of courses offered by the Computer Science department. Each dropdown gives a course description which includes the credit hours and any prerequisites. 

COMP 1500. Programming I. (3) A course for those with little or no experience in programming. Algorithmic solutions to basic programming problems using the C++ programming language. Topics include data types, condition and looping control structures, functions, and vectors.

And COMP 1510. Programming II. (3) A continuation of COMP 1500. Topics include multi-dimensional arrays, strings, files, classes, pointers, and dynamic memory allocation.

Or COMP 1700. Software Development. (5) Intended primarily for computing and engineering majors. Designing and writing modular program solutions using the C++ programming language. Advanced programming concepts such as multi-dimensional arrays, classes, pointers, and files.

COMP 2450. Data Structures. (3) Major structures used for storing data on computer systems. Strings, stacks, queues, recursion, linked lists, trees, and graphs. Major searching and sorting algorithms. Analysis of algorithms. Prerequisite(s): COMP 1700 or COMP 1500/COMP 1510

COMP 2500. Web Development. (3) Introductory web development with HTML5, cascading style sheets, JavaScript, PHP and MySQL. Prerequisite(s): COMP 1700 or COMP 1500/COMP 1510

COMP 2680. Computer Architecture and Assembler Programming. (3) Machine and assembly language programming with emphasis on computer architecture, data representation, addressing techniques, instruction formats, and logic design. Prerequisite(s): COMP 1700 or COMP 1500/COMP 1510

COMP 3010. Software Engineering. (3) Tools and techniques used in all phases of the systems development lifecycle. Enterprise modeling, data modeling, structured modeling tools, structured design, CASE tools, and prototyping. Development of interpersonal communication skills in group exercises. Prerequisite(s): COMP 1700 or COMP 1500/COMP 1510 

COMP 3100. Operating Systems Concepts. (3) The historical development and current functions of operating systems. Hardware and software requirements for operating systems which support uniprogramming, multiprogramming, and multiprocessing. Process management, memory management, disk scheduling, performance evaluation, security, and case studies. Prerequisite(s): COMP 2450; COMP 2680 or EENG 2400 and EENG 2400L 

COMP 3110. Data Communication and Networking. (3) Network topology, local area networks, wide area networks, layered protocols, network management, and available network hardware and software. Prerequisite(s): COMP 2450; COMP 2680 or EENG 2400 and EENG 2400L 

COMP 3150. Ethical Hacking. (3) This course prepares students to work as a computer security professional by teaching the fundamentals of ethical hacking. It follows the guidelines specified by the EC-Council (the owner of the Certified Ethical Hacker exam) concerning the material that needs to be covered to be certified as a professional Ethical Hacker. Prerequisite(s): COMP 3110 or IS 3120

COMP 3280. Numerical Methods. (3) Computer solutions to mathematical problems, including systems of linear equations, polynomial interpolation, fixed point algorithms, numerical integration, and numerical solutions to differential equations. Prerequisite(s): COMP 1500 or COMP 1700; and MATH 2350, or consent of the instructor.

COMP 3350. File Structure and Access Methods. (3) Data structures used for the storage of files and methods of access. Sequential files, direct access files, indexed sequential files, hashing, data compaction, data encryption, tree-structured indices, file-processing subroutine libraries, and file support for database systems. Prerequisite(s): COMP 3450 

COMP 3360. Database Concepts and Applications. (3) Applications, requirements, structure, administrator functions, utilities, programming interfaces, data security, data integrity, hierarchical models, network models, relational models, normalization of relations, comparisons of available systems, and future directions. Individual and group projects using a database system. Prerequisite(s): COMP 2450

COMP 3450. Object Oriented Programming. (3) Object-oriented programming using C++ and/or Java programming language(s). The object paradigm, classes and methods, data abstraction and encapsulation, polymorphism, single and multiple inheritance, memory management, operator and function overloading, templates, and exception handling. Prerequisite(s): COMP 2450 

COMP 3490. Applied Algorithms. (3) Classification of algorithms. Complexity and computing requirements, including efficiency, greedy algorithms, divide and conquer algorithms, dynamic programming, graph algorithms, probabilistic algorithms, and computability theory. Prerequisite(s): COMP 2450 

COMP 3670. Cooperative Education. (3) Students desiring on-the-job experience while helping finance their education should investigate cooperative education. The student may pursue an alternating plan of full-time work and full-time classes; a parallel plan of half-time work and part-time classes; a one semester internship; or a summer program. Many departments have a cooperative education course (internship) offered as 3670 or 5670. Additionally, the Academic Resource Center offers UNIV 3670-3676 for other departments.

COMP 4250. Parallel Programming. (3) Developing multi-tier and peer-to-peer software for large-scale and high-performance environments. Dynamic Link Libraries, component-based programming, sockets, remote procedure calls, client-server architectures, transaction monitors, object request brokers, multi-threading and current industry tools. Prerequisite(s): COMP 2450 

COMP 4299. Machine Learning. (3) This course is an introduction to the concepts necessary to understand Machine Learning and build simple models. The topics include classical machine learning algorithms, best practices for developing and evaluating machine learning models, neural networks, and using industry standard software to accomplish machine learning tasks. Prerequisite(s): COMP 2450 or (COMP 1500 and MATH 3300)

COMP 4300. Artificial Intelligence. (3) Concepts and techniques used in the development of intelligent systems. Knowledge representation, game playing, search techniques, heuristics, deduction, learning, natural language processing, rule-based expert systems, constraint exploitation, and an appropriate programming language such as LISP or PROLOG. Prerequisite(s): COMP 2450 

COMP 4310. Web Development II. (3) Advanced internet programming including advanced JavaScript, Node.js, JavaScript frameworks like AngularJS or React, NoSQL databases, RESTful web APIs. Prerequisite(s): COMP 2500, COMP 3450 (COMP 3450 may be taken concurrently)

COMP 4390. Computing Seminar. (1) A weekly seminar required of all junior and senior computing majors. Credit may be taken only once. Enrolled students will be required to research and present a paper on a topic approved by the instructor. Includes presentations by faculty and invited speakers relative to ethics and current issues in computing. Prerequisite(s): Senior standing and at least a 2.0 GPA in all major courses.

COMP 4400. CS Software Development Project. (3) The capstone course for Computer Science majors. Development of a computer application in a simulated on-the-job environment through the analysis, design, programming and testing phases of the software life cycle. Prerequisite(s): Senior standing and at least a 2.0 GPA in all major courses, or consent of the instructor

COMP 4450. Graphical User Interface Programming. (3) Software development in a graphical user interface environment. Topics include: event-driven programming, .NET Framework, C#, widgets, MVC and MVVM, multi-threading, Windows Forms, Windows Presentation Foundation (WPF), Universal Windows Platform (UWP), and Human Computer Interaction (HCI). Prerequisite(s): COMP 3450 

COMP 4500. Independent Study. (3) Designed as advanced study for qualified undergraduate students. May be repeated for credit with permission from the department chair.

COMP 4750. Selected Topics. (3) Designed as advanced study for qualified undergraduate students. May be taken 6 times for a maximum of 18 credit hours, with permission from the department chair.

4750A. Game Programming. (3) Offered on rotation. Programming games with Unity. Topics include 2D and 3D computer graphics, animation, collision detection, game design, and game AI. Prerequisites: COMP 2450 and 3450.

4750B. Compilers. (3) Offered on rotation. An introduction to the ideas and techniques involved in constructing compilers. Topics include formal grammars and languages, lexical analysis, parsing, syntax trees, instruction selection, register allocation and scheduling. Prerequisites: COMP 2450, COMP 2680 and either COMP 3450 or approval of the instructor.

4750C. Introduction to Web Science. (3) Offered on rotation. Topics include web architecture, web characterization and analysis, web archiving, social networks, collective intelligence, search engines, web mining and information diffusion on the web. Prerequisites: COMP 2450 and 2500.

4750D. Mobile Application Development. (3) Offered on rotation. Development of native and web applications for mobile devices running iOS and Android operating systems. Prerequisites: COMP 2450 and 3450.

4750E. Functional and Generic Programming. (3) Offered on rotation. A study of functional and generic programming techniques in both the Haskell and C++ languages. Topics include closures, higher-order functions, algebraic data types, I/O monads, parametric polymorphism, type classes / concepts, class and function templates, template specialization, variadic templates, polymorphic value types and compile-time expressions. Prerequisite: COMP 3450.

Contact Information


Join Our Community

At Harding University, you'll have the opportunity to be transformed academically, relationally and spiritually so you're prepared to change the world.