College of Informatics

MSCS Course Descriptions

Course ID Course Description

CSC 501

Intermediate Programming Workshop (3,0,3)

Intensive review of programming and data structures from an object-oriented perspective using the C++ language. Intended for students whose computer programming skills need refreshing or updating. PREREQ: graduate standing; background in computer programming and data structures.

CSC 502

Advanced Programming Methods (3,0,3)

High-performance OO and generic programming in C++; concurrent and distributed programming; STL; multi-paradigm design patterns; extensive practice with sophisticated programming projects. PREREQ: Regular admission to MSCS program.

CSC 507

Concepts of Programming Languages (3,0,3)

History of high-level languages; grammars and the compilation process; axiomatic semantics; language design and implementation issues; procedural, object-oriented, functional, and logic programming paradigms; case studies in important contemporary languages. PREREQ: Regular admission to MSCS program.

CSC 510

Compiler Construction (3,0,3)

Lexical analysis; parsing; code generation; compiler project. PREREQ: Regular admission to MSCS program.

CSC 525

Artificial Intelligence (3,0,3)

Concepts and techniques of artificial intelligence; heuristic search, expert systems, AI languages, natural language processing, and elementary neural networks. PREREQ: Regular admission to MSCS program.

CSC 533

Computer Networks (3,0,3)

Direct link networks, packet switching networks, internet working (IP), end-to-end protocols (TCP), Windows socket programming. PREREQ: Regular admission to MSCS program.

CSC 539

Software Testing and Maintenance (3,0,3)

Techniques in computer software implementation, testing, configuration management and maintenance. Testing and maintenance of a large-scale software engineering project by students working in teams. PREREQ: Regular admission to MSCS program.

CSC 540

Software Engineering (3,0,3)

History of software development paradigms and methodologies; techniques in computer software specification, design and implementation; software engineering ethics; development of a large-scale software project by students working in teams. PREREQ: Regular admission to MSCS program and a C or better in CSC 502. CSC 502

CSC 550

Database Management Systems (3,0,3)

Database design, normal forms, concurrent processing, recovery, security, relational model, Structured Query Language, hierarchical and network models. PREREQ: Regular admission to MSCS program.

CSC 560

Operating Systems (3,0,3)

Internal structures and algorithms for file systems, I/O memory management and process scheduling; examples drawn from contemporary operating systems such as Unix and Windows. PREREQ: Regular admission to MSCS program.

CSC 562

Computer Architecture (3,0,3)

Implementation of control unit and arithmetic-logic unit, microprocessor organization and design, main memory and cache organizations, I/O subsystem; RISC vs. CISC instruction sets, pipelining, parallel processing; mechanisms for evaluating computer architectures and microprocessor performance. PREREQ: Regular admission to MSCS program.

CSC 564

Design and Analysis of Algorithms (3,0,3)

Proofs of time and space bounds on important algorithms; advanced algorithms on graphs, sequences and sets; divide-and-conquer and dynamic programming; randomized algorithms; parallel algorithms. PREREQ: Regular admission to MSCS program.

CSC 580

Computer Graphics (3,0,3)

Basic concepts of two- and three-dimensional graphics including incremental methods, geometric transformations, windowing and clipping, hidden line and surface algorithms, and animations. PREREQ: Regular admission to MSCS program and MAT 234 or equivalent. MAT 234

CSC 582

Computer Security (3,0,3)

Theory and algorithms of computer security, including security policies, access control, secure programming, identity and authentication, information flow, and information assurance techniques. PREREQ: Regular admission to MSCS program.

CSC 584

Cryptography (3,0,3)

Cryptology of classical ciphers, DES and AES, public key cryptosystems, authentication and cryptographic hash functions. PREREQ: consent of instructor.

CSC 585

Theory of Computation (3,0,3)

Regular and context-free grammars; Turing machines; recursive and recursively enumerable languages; uncomputability; the Chomsky hierarchy; complexity classes such as P, NP, and NP-complete. PREREQ: Regular admission to MSCS program.

CSC 593

Research Seminar: Computer Science (1-3,0,1-3)

Examination and presentation of contemporary research work in computer science. PREREQ: Regular admission into MSCS program.

CSC 594

Intermediate Graduate Topics: Computer Science (3,0,3)

Various advanced topics. PREREQ: Regular admission to MSCS program and consent of instructor.

CSC 599

Intermediate Independent Study (1-3,0, 1-3)

PREREQ: Regular admission to MSCS Program, consent of instructor.

CSC 601

Advanced Programming Workshop (3,0,3)

Practitioners workshop on creative approaches to challenging, realistic programming problems; advanced object-oriented and generic design patterns; use of appropriate tools and critical evaluation of solutions. PREREQ: CSC 502. CSC 502

CSC 625

Advanced Artificial Intelligence (3,0,3)

In-depth study of current topics in artificial intelligence such as machine learning, pattern recognition, intelligent agents, data mining, and natural language understanding. Specific topics may vary by semester. PREREQ: CSC 525. CSC 525

CSC 633

Advanced Computer Networks (3,0,3)

Content distribution, routers and queue management, multicast routing, mobility and the network layer, wireless links, multimedia networking. PREREQ: CSC 502, CSC 533, and CSC 560. CSC 502, CSC 533, CSC 560

CSC 640

Advanced Software Engineering (3,0,3)

Effective software development methods: software design, quality management, improving the software process. PREREQ: CSC 540. CSC 540

CSC 645

Software Interface Design and Human Factors (3,0,3)

Graphical user interfaces for computer applications; usability engineering research and practice; software tools; design and implementation projects. PREREQ: CSC 540. CSC 540

CSC 650

Advanced Database Systems (3,0,3)

Continuation of CSC 550; advanced database programming and data modeling; object- based systems; parallel systems; data warehousing and other advanced topics. PREREQ: CSC 502 and CSC 550 or equivalent. CSC 502, CSC 550

CSC 660

Advanced Operating Systems (3,0,3)

Advanced operating system capabilities such as concurrency, networking, distributed file systems, clustering, and multiprocessing; case studies in design and internal organization of contemporary operating systems. PREREQ: CSC 560 and CSC 502. CSC 502, CSC 560

CSC 666

Secure Software Engineering (3,0,3)

Secure software development processes, threat modeling, security requirements and policies, secure architecture and design, secure coding principles, verification and validation of software security. PREREQ: CSC 540 and CSC 582. CSC 540, CSC 582

CSC 670

Social Implications of Computing (3, 0, 3)

Social, ethical, and legal issues arising in development and dissemination of computer software and its associated technologies; critical thinking and written expression. Assumes experience in professional software development. PREREQ: 6 hours of graduate level coursework in the MSCS or MBI program, or consent of instructor.

CSC 680

Advanced Computer Graphics (3, 0, 3)

Representing curves and surfaces; using color, illumination, shading; visible-surface determination; advanced modeling techniques; collision detection and intersection geometry; virtual physics; real-time rendering, scene graph architectures, and high-performance game engine design. PREREQ: CSC 480 and CSC 502. CSC 480, CSC 502

CSC 682

Advanced Computer Security (3,0,3)

Advanced topics in computer security including selections from the following areas: access control, cryptology of modern ciphers, critical infrastructure protection, information warfare, intrusion detection, language-based security, security protocols, software security, steganography, and usable security. PREREQ: CSC 582. CSC 582

CSC 685

Logic and Computation (3,0,3)

Introduction to formal reasoning applied to computer science; propositional and predicate logic; algebraic specification of abstract data types; program correctness; survey of computability theory. PREREQ: CSC 485 and CSC 601. CSC 485, CSC 601

CSC 691

Thesis Direction (1-6,0,1-6)

Guided thesis direction for students electing the thesis option for the MS in Computer Science. PREREQ: Consent of MSCS program director.

CSC 694

Advanced Graduate Topics in Computer Science (3,0,3)

Various topics. May be repeated for credit when topics vary. PREREQ: regular admission to MSCS program and consent of instructor.

CSC 699

Directed Readings/Independent Study (1-3 semester hours)

PREREQ: consent of instructor