Master of Science in Computer Science

Course Descriptions

COSC 510 Advanced Operating Systems 3 cr.
Distributed systems, parallel computing, virtual machines and containers, concurrency control, shared memory, fault tolerance, operating system interaction with the hardware architecture, synchronization and communication, mutual exclusion, encoding methods, interconnection networks, operating system security, data encryption, data compression.
COSC 511 Computer Architecture 3 cr.
Principles of modern organization and architecture of computer systems hardware; instruction set architectures; addressing modes; register transfer notation; processor design and computer arithmetic; memory systems; virtual memory, cache structure and policies, pipelining, control and data hazards, branch prediction and correlation, RISC, CISC, superscalar processors, cost-performance and physical complexity analyses and input/output control and devices.
COSC 512 Artificial Intelligence 3 cr.
Computational and statistical techniques for implementing intelligent behavior in computers. Topics include state-based problems, knowledge-based search techniques, automated reasoning and planning, representation of uncertainty, Bayesian methods, machine learning, and natural language processing. The course will examine current day research and applications such as speech recognition, image processing, robotics, and game playing.
COSC 513 Database Management Systems 3 cr.
File organization, entity-relationship model, relational model, relational algebra, SQL, relational calculus, query by example (QBE), security and integrity constraints, dependencies and normal forms, concurrency control (two-phase locking, time stamping mechanism), crash recovery (deferred update technique, immediate update technique, ARIES, shadow paging technique), distributed databases, object-oriented databases, data mining.
COSC 514 Networks 3 cr.
Network technologies, protocols, and management. fundamentals of data transmission (wired, wireless), LAN technology and data link protocols (Ethernet CSMA/CD, switched and carrier Ethernet, wireless LAN CSMA/CA, cellular network TDMA, FDMA, CDMA, SDMA/MIMO, and mobility), packet/circuit switching in wide-area networks, internetworking using TCP/IP (socket programming in Linux), routing (IP, intra- and inter-domain), congestion control (TCP and multimedia UDP streaming), real-time video/audio/voice and quality of service, and high-level network services (DNS, HTTP, SNMP, e-mail, network security). Programming networked applications. Scalability, security, and survivability. The effects of the Internet and World Wide Web on computing and society. Prerequisite: COSC 450 or equivalent and/or permission of the instructor.  
COSC 515 Security  3 cr.
Network, database, and Web security, threat models, elementary and advanced cryptology, protocol analysis, phishing, cybercrime, cyber-terrorism, financial security, spam, access control and trust issues, communication security, software security, operating system security, network security, web security, and hardware-based security, legal and ethical issues in security. Prerequisite: COSC 450 or equivalent or permission of the instructor.
COSC 516 Algorithms  3 cr.
Algorithm design paradigms and analysis (divide-and-conquer, dynamic programming, greedy algorithms, amortized analysis, search and traversal, randomized algorithms), approximation algorithms, parallel vs. sequential models of computation.
COSC 517 Models of Computation  3 cr.
A variety of models of computation, including variations on Turing machines, recursive and recursively enumerable sets, Markov algorithms, and vector machines. Explores a number of computational complexity classes as well as bounds on computability, including NP-completeness. Automata and generative grammars for the Chomsky hierarchy of language classes are also considered. Prerequisite: COSC 418 or equivalent or permission of the instructor.
COSC 520 Computing Ethics  3 cr.
Introduction to ethics, Professional ethics, Intellectual property, Networking, Online crime and hacking, Privacy and surveillance, Computer crime and security, Computer reliability, Artificial intelligence and ethical issues. Prerequisite: None.
COSC 521 Automated Theorem Proving  3 cr.
Proposition, first-order, and higher-order theorem proving by computers, resolution and non-resolution methods, mathematical induction, software verification, interactive proving, efficient decision procedures. Prerequisite: COSC 512 or equivalent or permission of the instructor.
COSC 522 Data Compression  3 cr.
Information and coding, static and dynamic Huffman coding, arithmetic coding, dictionary methods (Ziv-Lempel), sampling and quantization, predictive coding, transform coding, sub-band coding, compression of still images (JPEG), video image compression (MPEG).
COSC 523 Machine Learning  3 cr.
Foundational theory, models, and methods of supervised machine learning, including VC dimension, validation, linear models, artificial neural networks, and support vector machines. Various learning algorithms will be implemented and tested, such as perceptron learning, linear regression, and gradient descent.
COSC 524 Natural Language Processing  3 cr.
Techniques for comprehending, representing, and producing natural languages such as English. Introduction to the core algorithms of NLP, including traditional models such as grammars and parsers and statistical models such as Markov models. Practice in building NLP components including text classifiers, part-of-speech taggers, spam filters, and machine translators. Study of computational methods that incorporate linguistic theory. Prerequisite: COSC 512 or equivalent or permission of the instructor.
COSC 525 String Processing 3 cr.
Covers algorithms that process strings and texts. String processing is critical in many areas, including word processing, data compression, and genetics. Topics include exact and approximate string matching, edit distance, problems involving repeated patterns, and text comparison..
COSC 530 Web-based Systems  3 cr.
Technologies underlying the Web, including TCP/IP, HTTP, HTML, CSS, JavaScript, the DOM, XML, server-side development, client-server communication, and web services.
COSC 531 Parallel and Distributed Computing  3 cr.
Definition and characteristics of parallel computing, parallel algorithm (MPI and OpenMP). Massive parallel programming using GPUs. Remote procedure calls, processes and threads, distributed algorithms (e.g., mutual exclusion, consensus and election, termination detection) and client-server technology. Distributed Operating Systems, distributed file systems, replication, concurrency, and distributed process coordination. Grid computing, pervasive computing, cloud computing and big data computing.
COSC 532 Data Visualization  3 cr.
Key techniques and theory, including data models, graphical perception and techniques for visual encoding and interaction; common data domains and analysis tasks, including multivariate data, networks, text and cartography; building and evaluating visualization systems.
COSC 533 Compilers   3 cr.
Briefly reviews elements of a basic compiler, including lexical analysis, parsing algorithms, type checking and coercion, and generation of intermediate code. Advanced topics include run-time management, machine code generation, and/or various optimization techniques.
COSC 535 Theory of Programming Languages   3 cr.
Syntactic and semantic issues in program language definition and implementation. Static vs. dynamic properties, parameter passing, recursion, and language comparisons.
CPMA 551: Digital Image Processing  3 cr.
Introduction to the mathematics of images and image processing, as well as computational methods for real data manipulation. Topics include image acquisition, image enhancement and restoration in both the spatial and frequency domains, the Fourier transform, wavelets, image compression, image segmentation, and morphological processing algorithms. Prerequisites: MATH 215 or CPMA 518, MATH 310 or CPMA 512, or permission of the instructor.
COSC 560: Algorithms/Graph Theory  3 cr.
An introductory course covering concepts such as paths, Eulerian circuits, trees, distance, matchings, connectivity, network flows, colorings, planarity, Hamiltonian cycles, and NP-completeness, with focus on both theoretical and algorithmic aspects and emphasis on writing proofs.
CPMA 565: Numerical Methods  3 cr.
Linear systems, interpolation, functional approximation, numeric differentiation and integration, and solutions to non-linear equations.
CPMA 566: Operations research  3 cr.
An introduction to the background of operations including example problems and a brief history. An extensive discussion of the theory and applications of linear programming will follow. Other topics will include integer programming, transportation and network flow models, and dynamic programming.
CPMA 573: Statistical Computing  3 cr.
Generating pseudo-random numbers, Monte Carlo integration, simulation, Bayesian inference, Gibbs sampling, Metropolis sampling, Metropolis-Hastings sampling, the E-M algorithm, multivariate Newton-Raphson maximization.
COSC 595: Independent Study 1-3 cr.
Directed study on a topic related to computer science as determined by the Program Director and dependent on the approval of the department. May be repeated once for credit.
COSC 599: Internship 0-3 cr.
Internship suitably related to the program as determined by the Program Director.