MSACS Core Courses
Required courses, to be taken by everyone admitted to the program, including five core courses (15 credit hours). Core courses build upon the knowledge support courses or appropriate experience.
CSC 705 Design and Analysis Computer Algorithms (3 credit hours)
Design and analysis of algorithms to determine their time and space requirements. The study of efficient algorithms for various computational problems. Analysis of specific algorithms for internal sorting, hashing, and string search. Sorting manipulation of data structures, graphs, matrix multiplication, the Fast Fourier Transform, arithmetical operations and pattern matching. Study and implication of advanced topics on lists, stacks, trees, sets and dynamic allocation.
Prerequisite: CSC 300.
CSC 710 Structure and Design Programming Languages (3 credit hours)
Evolution of concepts in programming languages. Data and control abstraction. Run-time effects of binding, scope and extent; structure of ALGOL-like and interpretive languages. Data types, problem areas and implementation models. Control structures, exception handling, concurrency. Functional programming. Examples from representative languages.
Prerequisite: CSC 300.
CSC 714 Database Systems (3 credit hours)
Emphasis will be placed on database theory and will cover, transaction management, processing, correctness, recoverability, serializability, concurrency control, security, distributed databases and optimization. Emerging topics in databases will also be addressed such as Massively Large Datasets, Unstructured Data, NOSQL, etc. Assumes working knowledge of SQL and the Relational Model.
CSC 718 Operating Systems & Parallel Programming (3 credit hours)
This course provides a graduate-level introduction to parallel and distributed systems and introduces fundamentals of shared and distributed memory programming to provide hands-on experience of parallel computing. The course will explore algorithms and techniques for programming shared-memory (e.g., multicores) and distributed-memory (e.g., clusters) computer systems. The course will include both theoretical and programming components. Includes the study of parallel computer architecture, memory, and I/O. Also, parallel computer algorithms to include shared and distributed memory, parallel computation models, graph algorithms, and numerical algorithms.
CSC 720 Theory of Computation (3 credit hours)
Formal models of computation. Recursive function theory, computable functions, decidable and enumerable sets, unsolvable programs, correctness of programs, undecidability and incompleteness and complexity of computation.