Current Course Catalog
COSC 2331: Discrete Structures (3,0,3) Discrete Structures is the study of objects that have discrete as opposed to continuous values including the foundations of logic, algorithms and their complexity, mathematical reasoning, relations, graphs, trees and combinatorics. Prerequisite: MATH 1423: Calculus II
COSC 3343: Database Theory (3,0,3) This course is the study of the principles of database systems. The goal is to prepare students an understanding of the theory as well as practices of database management systems. Prerequisites: GEIT 1412: Computer Science II, MATH 1313: Statistical Methods
COSC 3351: Algorithms (3,0,3) This course is the study of the design and performance analysis of algorithms. Time and space complexity analysis of algorithms, design paradigms, and graph algorithms are discussed. Prerequisites: COSC 3421: Data Structures, MATH 1313: Statistical Methods
COSC 3411: Systems Programming (3,1,4) Systems programming is the study of the basic programming principles and skills for building systems software, including the introduction to UNIX, shell programming, and Perl programming. Prerequisites:GEIT 1412: Computer Science II, GEIT 1311: Computer Organization
COSC 3421: Data Structures (3,1,4) Data structures is the systematic study of some advanced data structures, including list, stack, queue, dictionary, and graph. Sorting and hashing algorithms and their associated computational costs are discussed. Algorithm analysis techniques are also investigated to provide a metric to measure the performance of an algorithm in question. Prerequisites: GEIT 1412: Computer Science II, MATH 1313: Statistical Methods, MATH 2332: Differential Equations
COSC 4311: Parallel Computing (3,0,3) This course provides a basic, in-depth look at techniques for the design and analysis of parallel algorithms and for programming them on commercially available parallel platforms. Principles of parallel algorithms design and different parallel programming models are both discussed. MPI, POSIX threads, and Open MP all are discussed. This course is for anyone wanting to gain proficiency in all aspects of parallel and distributed programming. Prerequisite: COSC 3351: Algorithms
COSC 4361: Operating Systems (3,0,3) This course is the study of the principles, purposes, and organization of operating systems. The goal is to prepare students an understanding of the theory as well as practices of the design and implementation of operating systems software. Prerequisites:GEIT 1311: Computer Organization, COSC 3411: System Programming, COSC 3421: Data Structures
COSC 4362: Artificial Intelligence (3,0,3) The course presents an overview of artificial intelligence and its methods for solving problems. Basic algorithms for finding solutions to problems or adaptively improving responses to situations are discussed. Expert systems, genetic algorithms, and intelligent agents are among the areas that are explored. Prerequisites: COSC 3421: Data Structures, COSC 3351: Algorithms.
COSC 4363: Automata Theory (3,0,3) This course is to give an introductory study of automata, formal languages, and computability, including set theory and countability, finite automata and regular languages, push-down automata and context-free languages, Turing machines, Church’s thesis, halting problem, and uncomputability. Prerequisites: COSC 3351: Algorithms, MATH 2331: Linear Algebra, MATH 2332: Differential Equations.
COSC 4364: Compilers (3,0,3) This course is the study of the theory and practice of constructing a compiler, including lexical analysis, parsing, semantic analysis, run-time organization, code generation, and optimization. During the course of the semester, the students complete a significant compiler project. Prerequisites: COSC 3351: Algorithms, COSC 4461: Programming Languages
COSC 4461: Programming Languages (3,1,4) Programming languages is the study of basic concepts and constructs underlying the design of the modern programming languages. Various programming paradigms, including object-oriented, functional, logic, and concurrent programming, are discussed. Prerequisites: GEIT 1412: Computer Science II, COSC 3411: System Programming.