Curriculum



Curriculum - Master of Science Degree Courses

The Computer Science courses and their catalog descriptions are listed in numerical order below. We provide this online copy of the course descriptions as a service to our students and prospective students. For the official listing of courses, please consult the current Armstrong catalog.

You can jump ahead as desired

CSCI 5100G: Object-Oriented Programming
An advanced study of the object-oriented paradigm for software development. Topics include abstract data types, classes, contracts, design patterns, inheritance, polymorphism, OO languages, and design methods. Essential backgroung material for this course is covered in CSCI 3321 (Software Engineering) or equivalent.
CSCI 5210G: Parallel Computing
Introduction to parallel computing through study of hardware and software. Architecture, algorithms, programming languages and enviroments, operating systems, interconnection networks, and performance characteristics of parallel systems. Essential background material for this course is covered in CSCI 3202 (Organization and Architecture) or equivalent.
CSCI 5220G: Computer Networks
Introduction to data communication and networking. Topics include communications media, codes, data transmission, multiplexing, protocols, and layered networks. Essential background material for this course is covered in CSCI 3202 (Organization and Architecture) or equivalent.
CSCI 5322G: Advanced Software Engineering
Advanced software engineering principles, including software processes and methodologies, CASE tools, software metrics, software quality assurance, reusability and reengineering, and future trends. A major project encompassing some or all of these concepts. Essential background material for this course is cove red in CSCI 3321 (Software Engineering) or equivalent.
CSCI 5342G: Advanced Operating Systems
Case studies of UNIX(tm) and/or similar operating systems. Elementary knowledge of C/C++ required. Essential background material for this course is covered in CSCI 3341 (Operating Systems) or equivalent.
CSCI 5343G: Systems Programming Under Unix
UNIX(tm) system programming techniques in C. Topics include I/O forking, pipes, signals, interrupts software tools, macros, conditional compilation, passing values to the compiler, lint, symbolic debugging, source code control, libraries. Essential background material for this course is covered in CSCI 2490 (C++) and CSCI 3341 (Operating Systems) or equivalent.
CSCI 5350G: Compiler Theory
Programming language translation and basic compiler implementation techniques, formal grammars and languages, specification of syntax and semantics, lexical analysis, parsing, and semantic processing. A major project encompassing some or all of these concepts. Essential background material for this course is covered in CSCI 3330 (Comparative Languages) and CSCI 3510 (Theory of Computation) or equivalent.
CSCI 5360G: Embedded Systems Programming
Developing applications for embedded microprocessors including virtual machine architectures, data communications, time critical I/O, cross compiling, and debugging techniques. Essential background material for this course is covered in CSCI 3202 (Organization and Architecture) or equivalent.
CSCI 5370G: Handheld and Ubiquitous Computing
Survey of personal digital assistants (PDAs) and ubiquitous computing hardware, operating systems, virtual machines, and APIs. Development of PDA applications, cross compiling and hardware emulation, PDA GUI design, Infra-Red and Wireless data communications, and desktop conduit development. Essential background material for this course is covered in CSCI 3202 (Organization and Architecture) or equivalent.
CSCI 5410G: Analysis of Algorithms
Advanced techniques for designing and analyzing efficient algorithms for combinational, algebraic, and number-theoretic problems. Essential background material for this course is covered in CSCI 2410 (Algorithms and Data Structures) or equivalent.
CSCI 5520G: Rapid Java Development
Study of rapid application development techniques for producing software with minimum coding. Includes componenent-based software development, JavaBeans, event delegation model, model-view approach, and Swing components. Essential background material for this course is covered in CSCI 2410 (Algorithms and Data Structures) or equivalent.
CSCI 5610G: Numerical Analysis
Introductory numerical analysis and scientific computation. Topics include computer arithmetic, numerical error, polynomial interpolation, systems of linear equations, iterative methods for nonlinear equations, least squares approximation, and numerical integration. Essential background material for this course is covered in MATH 2072 (Calculus II) and CSCI 1301 (Introduction to Programming) or equivalent.
CSCI 5720G: Advanced Database Systems
Survey of database systems, query processing and optimization, transactions, currency control, security, data mining, XML, Web data, and Internet commerce. Essential background material for this course is covered in CSCI 3720 (Database Systems) or equivalent.
CSCI 5820G: Artificial Intelligence
Pattern matching and classification with an emphasis on developing applications using diverse machine learning methods, including decision trees, neural networks, clustering, and hidden Markov Models. Includes a major project encompassing some or all of these concepts. Essential background material for this course is covered in CSCI 2490 (OO in C++) or equivalent.
CSCI 5830: Graphics
Introduction to computer graphics. Topics include hardware and software, algorithms for computer graphics programming, windows, clipping, two- and three-dimensional transformations, hidden line and hidden surface removal, and graphics standards for hardware and software systems. Major project encompassing some or all of these topics. Essential background material for this course is covered in CSCI 2410 (Algorithms and Data Structures) or equivalent.
CSCI 6100: Technical Writing
Issues of technical writing and effective presentation of computer science. Preparation of documentation, papers, books, and computer programs. Includes a term paper and presentation.
CSCI 7100: Parallel and Distributed Systems
Prerequisite: CSCI 5210U or CSCI 5210G, or equivalent
Models of parallel and distributed systems. Algorithms and techniques used in these systems.
CSCI 7200: Real-Time System Concepts and Implementations
Prerequisite: CSCI 3341 or equivalent
Principles, reviews, and uses of real-time systems in robotics, manufacturing, and multimedia applications.
CSCI 7300: Networks
Prerequisite: CSCI 5220U or CSCI 5220G, or equivalent
Fundamentals of computer networks. Includes topologies, routing, congestion control, multimedia, protocols, and management.
CSCI 7320: Software Development Process
Prerequisite: CSCI 3321 or equivalent
Process of developing software systems. Includes the development and assessment of processes, their instan tiation in product development, and techniques relating to quality assurance.
CSCI 7400: Transaction Processing
Prerequisite: CSCI 3341 and CSCI 5220, or equivalent
Study of technology supporting large scale distributed computing on the Internet, especially e-commerce. Includes the transaction abstraction, queuing and work-flow, fault tolerance, distributed transactions, recovery algorithms, and data replication.
CSCI 7500: Mobile Computing
Prerequisite: CSCI 5370 or CSCI 5220, or equivalent
Fundamentals of mobile computing. Includes mobile IP, TCP over wireless networks, cellular networks, impact of mobility on distributed algorithms, location management, and security.
CSCI 7600: Collaborative Computing
Prerequisite: CSCI 3321 or equivalent
Study of computer-based systems that support group work. Investigation of the World Wide Web, work flow systems, video conferencing, and virtual reality plus related languages and protocols.
CSCI 7700: Computer Security
Prerequisite: CSCI 5220 or CSCI 5410U CSCI 5410G or equivalent
Key concepts and algorithms involved in cryptography and computer security. Includes intrusion detection, firewalls, and digital signatures.
CSCI 7830: Current Trends in Computer Graphics
Prerequisite: CSCI 5830U or CSCI 5830G, or equivalent
Computer image synthesis and interactive computer graphics applications focusing on state-of-the-art algori thms and techniques.
CSCI 8100: Special Topics
Topics of current interest in computing.
CSCI 8200: Masters Project
Comprehensive project involving the synthesis of existing knowledge and the application of it to a current problem in computer science. Oral and written presentation of the project to the public is required. Graded on a S or U basis.

Return to the top of this page.