The Military College of South Carolina
give online buttongive online button apply now buttonapply now button

Graduate Computer Science Course Descriptions

CSCI 601 Data Modeling and Database Design Three Credit Hours
Topics include conceptual, logical, and physical data modeling, data analysis, relational database design and normalization, query languages, query processing, administration, and CASE tools. A database design project is part of the requirement and includes hands-on data modeling, design, development, and implementation.

CSCI 602 Foundations of Software Engineering Three Credit Hours
A survey course in software engineering processes and methodologies. This course includes software life cycles, planning and managing projects, capturing and managing requirements, analysis and design, implementation, software testing and quality assurance, and risk analysis in software development. Emphasized are team-based development, quality standards, object-oriented design, and CASE (computer aided software engineering) tools.

CSCI 603 Object-Oriented Design Patterns Three Credit Hours
A course in software design using design patterns as a tool for communicating software design solutions and as an aid in software refactoring. Creational, structural and behavioral patterns are emphasized. Also covered are finding and documenting software development patterns. The Unified Modeling Language is used as the design tool for software patterns and programming projects are in an object-oriented programming language.

CSCI 604 Distributed Computer Systems Architecture Three Credit Hours
This course covers basic techniques for the design and construction of distributed systems. Its aim is to give the skills needed to build simple systems and to identify key issues for the analysis of distribution problems.

CSCI 605 Applied Algorithms Three Credit Hours
A course that covers algorithms, focusing on foundations of algorithms, and applications to areas such as data science, cybersecurity, and software engineering. Course objective: To expose students to a variety of techniques for designing and applying algorithms for problems which have practical, pedagogical, and theoretical origins. Students are expected to engage with scholarly publications and professionally report on a project covering any of the applied topics.

CSCI 612 Advanced Computer Architecture Three Credit Hours
Prerequisite: CSCI 604 or an undergraduate course in operating systems.
This course covers various topics relevant to clustering including the following: interconnection networks, protocols, high performance l/O, load balancing, availability, programming models and environments, parallel algorithms, and applications. The course is lab intensive and includes the implementation of parallel algorithms on a parallel cluster.

CSCI 614 Advanced Operating Systems Three Credit Hours
Prerequisite: CSCI 604 or an undergraduate course in operating systems.
This course covers a broad range of advanced operating systems concepts including protection, security, memory management, kernels, file systems, synchronization, naming, networks, and distributed systems as well as recent trends in operating systems design. Specific aspects of operating systems which support distributed computing will be emphasized.

CSCI 616 Automata Theory Three Credit Hours
The theory of finite state machines and regular expressions are applied to the design of switching circuits, components of compilers such as lexical analysis, pattern-matching, text-editors, unifications as needed in Prolog or for automated deduction, and almost any program which processes under commands. Undecidable problems and intractable problems are explored.

CSCI 618 Programming Languages Three Credit Hours
This course surveys the principles of programming language design and the issues related to their implementation. Topics will include a comparison of the major programming paradigms: imperative, functional, logic, and object-oriented. Also covered are data types, methods of specifying the semantics of language constructs, and concurrency.

CSCI 631 Privacy and Security Issues Three Credit Hours
A survey of the principles and practices related to computer security. The course concentrates on the problems of security associated with computer systems and emphasizes the application of cryptography to address those problems.

CSCI 632 Data Communications and Networking Three Credit Hours
An introduction to data communications and computer networking. Topics include LAN topologies, transmission media, error detection, packet switching networks, internetworking of heterogeneous network technologies, Internet protocol suites (with emphasis on TCP/IP), the client/server paradigm, the BSD socket interface, network security, and network applications.

CSCI 633 Semantic Web Principles and Practice Three Credit Hours
This course covers the emerging technology supporting the Semantic Web with machine-processable content. Students will engineer and implement ontologies, associated metadata and logical inference systems. Covered are specialized languages such as Extensible Markup Language (XML), Resource Description Framework (RDF), and Ontology Web Language (OWL) and query associated query languages.

CSCI 634 Project Change and Management Three Credit Hours
Managing projects within an organizational context, including the processes related to initiating, planning, executing, controlling, reporting and closing a project form the major portion of this course. Project integration, scope, time, cost, quality control, risk management, and managing the changes in organization resulting from introducing or revising information systems are also included.

CSCI 636 Information Technology Policy, Strategy, and Governance Three Credit Hours
This course will consider the development and implementation of policies and plans to achieve organizational goals, the defining of systems that support the operational, administrative and strategic needs of the organization, and the study of approaches to managing the information systems function in organizations.

CSCI 638 Advanced Topics in Database Systems Three Credit Hours
Prerequisite: CSCI 601.
Topics such as algorithms for query processing and optimization, physical database design, transaction processing, concurrency control, database backup and recovery techniques, database security, distributed databases, multimedia databases, object and object-relational databases, data warehousing, and data mining.

CSCI 641    Advanced Cybersecurity    Three Credit Hours
     Prerequisite: CSCI 631 and CSCI 632.
     This course will cover the techniques used to secure cybersystems. Topics covered will include security policies, computer security management and risk assessment, secured network protocols, software security issues, ethical and legal aspects of cybersecurity, and disaster recovery. Special emphasis will be given to designing, deploying, and managing complete secured cybersystems.

CSCI 654 Software Requirements Analysis and Specifications Three Credit Hours
Prerequisite: CSCI 602.
An introduction to the software requirements engineering process. Topics to include feasibility studies, risk, requirements elicitation, modeling, analysis, specification, and validation.

CSCI 656 Software Systems Design and Implementation Three Credit Hours
Prerequisite: CSCI 602.
An introduction to the issues, techniques, strategies, representations, and patterns used in designing and implementing software. Possible design topics include: specification of internal interfaces, architectural design, data design, user interface design, design tools and evaluation of design. Possible implementation topics include: language-oriented issues, construction technologies, tools and formal construction methods.

CSCI 657 Embedded Systems Design Three Credit Hours
Prerequisite: CSCI 602 and CSCI 604.
This course is an introduction to specifying, designing, implementing, and testing (real-time) embedded systems. Topics include the embedded system lifecycle, choosing a processor, hardware/software partitioning, design techniques, cross-platform development, debugging, testing, and integration. Implementation languages may include Java, C/C++ or assembly.

CSCI 658 Software Testing and Maintenance Three Credit Hours
Prerequisite: CSCI 602.
An introduction to the concepts and methods associated with software testing and maintenance. Testing topics to include: testing as part of requirements engineering and software design, test plan writing, and static and dynamic testing. Maintenance topics to include: an overview of corrective, adaptive, perfective and preventive maintenance activities as well as organizational managerial issues.

CSCI 659 Service-Oriented Computing Three Credit Hours
Service-Oriented Computing is a term that describes software systems that combine Service-Oriented Architecture (SOA) and Business Process Management (BPM) layers. This course explores both SOA and BPM, demonstrating how business and IT concerns can be aligned. Students will gain experience with service-oriented development, process modeling and execution and securing services.

CSCI 672 Human-Computer Interaction Three Credit Hours
Introduction to human computer interaction and user interface development. Topics include human factors of interactive software, interactive styles, design principles and considerations, development methods and tools, interface quality and evaluation methods. This course stresses the importance of good interfaces and the relationship of user interface design to human-computer interaction. It is intended for students whose future work may involve software development.

CSCI 674 Introduction to Computer Graphics Three Credit Hours
An introduction to the fundamental principles of computer graphics. Using standard graphics libraries, students will learn these principles by writing a series of programming projects.

CSCI 690 Special Topics in Computing Three Credit Hours
Prerequisite: Permission of the instructor.
A course in the special study of an advanced or new topic in computer science, information systems, or software engineering. This course may be repeated for additional credit, as the topics change.

CSCI 691 Independent Study Three Credit Hours
This course consists of individual study of an agreed-upon topic under the direction of a faculty member and following a course of reading and other requirements proposed by the student and established by negotiation with the director. This course is intended to provide graduate students with an opportunity to study in an area of computer science, software engineering or information systems that is not generally offered. The course may be repeated once.

CSCI 698 Project Thesis Three Credit Hours
Prerequisite: Completion of 12 credit hours and approval by the program director.
Project thesis is a three-credit hour course for the completion of a formal master's project thesis under faculty direction. A project thesis is characterized by a research project that applies or extends course topics through systems development.

CSCI 699 Research Thesis Three Credit Hours, repeatable up to six hours.
Prerequisite: Completion of 12 credit hours and approval by the program director.
Research Thesis is a six-credit hour experience for the completion of a formal master's research thesis under faculty direction. A research thesis is a traditional research project characterized by a comprehensive paper on a research topic.

Back to Top