MU Catalog » Course descriptions »
CS 106 Programming on the Web in Java Script (3)
This course provides an introduction to programming on the Web, focusing on client-side programming using JavaScript and on server-side CGI programming such as Perl scripts. Offered in fall semester, odd-numbered years, only. This course contains a significant component in the use of computers.
CS 110 Programming I in Java (4)
This is a first course in learning how to write programs for computers. Provides an introduction to techniques of problem solving, algorithm development, and object-oriented software development in Java. Offered fall semester only. Prerequisite: algebra skill competency. This course contains a significant component in the use of computers.
CS 111 Programming II in Java (4)
A continuation of CS 110. Topics include advanced object-oriented programming, UML, and data structures such as linked lists, stacks, queues, and trees. Offered spring semester only. Prerequisite: a grade of C- or better in CS 110. This course contains a significant component in the use of computers.
CS 120 Personal Security in the Digital Age (3)
This introductory course provides background for further studies in computer science and criminal justice. Students will be prepared to understand how to protect computers from outside threats and how to investigate computer crimes. Offered spring semester only. This course contains a significant component in the use of computers.
CS 150 The UNIX Operating System (3)
Offers a thorough study of the UNIX operating system. The course examines UNIX tools, the UNIX file system, shell programming, text editing, filters, pipes, macro processing, data analysis, text processing, and document maintenance. Offered in fall semester, even-numbered years, only. Prerequisite: a grade of C- or better in CS 110 or ISY 120. This course contains a significant component in the use of computers.
CS 180 Programming in C++ (3)
An introduction to the C++ language using the UNIX operating system. The course emphasizes special features of C++ and their influence on program development. See department chair for course offering schedule. Prerequisite: a grade of C- or better in CS 110 or consent of instructor. This course contains a significant component in the use of computers.
CS 210 The Structure of Programming Languages (3)
An introductory study of language development and a survey of the major programming paradigms. Attention is paid to variable types, sequence control, recursive subprograms, concurrent execution, parameter passing and scope, and storage management. Offered in spring semester, even-numbered years, only. Prerequisites: a grade of C- or better in CS 111 and MA 150, or consent of instructor. This course contains a significant component in the use of computers.
CS 220 Data Structure and Algorithms (4)
An introduction to effective data structures and algorithms. Testing and evaluating data manipulation algorithms with respect to memory needs, complexity, and speed are emphasized. Offered fall semester only. Prerequisites: a grade of C- or better in CS 111 and MA 150 and placement in MA 181, or consent of instructor. This course contains a significant component in the use of computers.
CS 230 Computer Organization (3)
A course exploring how computers work, answering questions such as, “Why do computers use 0s and 1s?” and “What is inside that case and what do all those pieces do?” Offered spring semester only. Prerequisites: a grade of C- or better in CS 110. This course contains a significant component in the use of computers.
CS 310 Software Engineering (3)
The study of software analysis, design, evaluation, and maintenance techniques using UML and Java. Offered fall semester, even-numbered years, only. Prerequisite: a grade of C- or better in CS 220 or consent of instructor. This course contains a significant component in the use of computers. This course contains a significant amount of speech and oral presentations.
CS 320 Database Systems (3)
A study of design of relational databases using ER data modeling. Includes an exploration of modern database systems such as Oracle, and programming database applications using Java JDBC and tools such as Cold Fusion. Offered fall semester, odd-numbered years, only. Prerequisite: a grade of C- or better in CS 220 or consent of instructor. This course contains a significant component in the use of computers. This course contains a significant amount of speech and oral presentations.
CS 325 Networking (3)
An examination of how data gets from one computer to another. Networks are discussed in light of the seven-layer network model, from the physical connection up through the protocols required for two computer applications to understand each other. Networking software is examined to illustrate the principles of the course. Offered fall semester only. Prerequisite: a grade of C- or better in CS 111. This course contains a significant component in the use of computers. This course contains a significant amount of speech and oral presentations.
CS 350 Operating Systems (3)
A study of the major features of operating systems such as real and virtual memory, concurrent processing, disk storage techniques, resolving deadlocks, and protection. Offered spring semester only. Prerequisite: a grade of C- or better in CS 230 or consent of instructor. This course contains a significant component in the use of computers. This course contains a significant amount of speech and oral presentations.
CS 360 Intelligent and Agent-based Systems(3)
A survey of artificial intelligence algorithms including search heuristics for problem solving and game playing, logic, knowledge representation and reasoning, planning and navigation, machine learning, neural networks, natural language processing, robotics. Offered spring semester, even-numbered years, only. Prerequisite: a grade of C- or better in CS 220 or consent of instructor. This course contains a significant component in the use of computers. This course contains a significant amount of speech and oral presentations.
CS 370 Computer Forensics (3)
This is a capstone course in the Forensic Computing minor and the post-baccalaureate certificate. This course calls on the knowledge gained in the other minor/certificate courses and provides a final coverage of topics required for the International Society of Forensic Computer Examiners’ Certified Computer Examiner exam. Offered spring semesters beginning in 2009. Prerequisite: CS 120. Corequisites: CS 230 and CS 325. This course contains a significant component in the use of computers. This course contains a significant amount of speech and oral presentations.
CS 391A Topics in Computational Mathematics: Combinatorics (3)
This course will present a survey of modern combinatorics, a field that has grown rapidly in the last few years and which has extensive applications in Computer Science. Students will be expected to state and prove results about counting principles, equivalence relations and partitions, inclusion and exclusion, recurrence relations, generating functions, Latin squares, block designs, affine and projective planes, and the relationship between linear codes and designs. See department chair for course offering schedule. Prerequisite: permission of instructor. (Also listed as MA 391A.) This course contains a significant component in the use of computers.
CS 391B Topics in Mathematics: Numerical Analysis (3)
Introduces numerical methods for solving applied problems in analysis. Students will develop solutions (or approximate solutions) of mathematical equations that model real-world phenomena. The numerical routines will be implemented using Maple. Offered fall semester, odd-numbered years, only. Prerequisite: permission of instructor. (Also listed as MA 391B.) This course contains a significant component in the use of computers.
CS 391C Topics in Mathematics: Graph Theory (3)
This is an introduction to elementary graph theory and its applications in a wide variety of areas. Students should develop facility with mathematical proof, show how graphs are applicable to a wide variety of subjects, and solve applied problems. See department chair for course offering schedule. Prerequisite: permission of instructor. (Also listed as MA 391C.) This course contains a significant component in the use of computers.
CS 391D Topics in Computational Mathematics: Theory of Computation (3)
A study of the models of computation, formal languages, and measures of complexity. See department chair for course offering schedule. Prerequisites: a grade of C- or better in CS 111 and MA 150, or consent of instructor. (Also listed as MA 391D.) This course contains a significant component in the use of computers.
CS 400 Internship (3-6)
Advanced students may register for a field experience in the metropolitan area. The internship is monitored by a faculty member. Prerequisite: permission of the dean of Arts and Sciences. This course contains a significant component in the use of computers.
CS 421 Project (1-3)
This course is for the independent study of a particular area of Computer Science under the direction of a faculty member. Prerequisite: approval of department chair.
CS 433

Research (1-6)
A student in this course will conduct collaborative research (scholarly work leading to new knowledge) in computer science under the direction of a faculty member. Refer to the Marymount Academic Research Initiative (MARI) guidelines. Prerequisite: application and approval of department chair.

CS 500 Language Design (3)
Introduction to concepts of fundamental programming languages. Survey of the major programming paradigms and issues that are involved in the design and implementation of programming languages. Prerequisite: CS 210 or equivalent. This course contains a significant component in the use of computers.
CS 501A Java Certification (2)
Provides an advanced-level introduction to programming in Java to prepare students who have a solid expertise in structured programming and some knowledge of object-oriented design for the Sun Java Programmer Certification exam. Prerequisite: CS 111 or equivalent. This course contains a significant component in the use of computers.
CS 501B C++ (1)
Provides an advanced-level introduction to programming in C++ for students who have a solid expertise in structured programming and some knowledge of object-oriented design. Students will design C++ software systems using object-oriented concepts. Prerequisite: CS 111 or equivalent. This course contains a significant component in the use of computers.
CS 501C Perl (1)
Perl is a language in which programmers can develop software to do common tasks that are typically too heavy or portability-sensitive for the shell programming, and yet too weird, short-lived, or complicated to code in C or some other UNIX glue language. This course provides an advanced-level introduction to Perl for students having a sound knowledge of UNIX and operating systems concepts. The common features of Perl will be discussed, as well as the use of Perl for simple client/server applications. This course contains a significant component in the use of computers.
CS 501D Java Swing (1)
Provides an advanced-level introduction to the Java Swing library for building GUIs for students who are intermediate or advanced Java programmers. This course contains a significant component in the use of computers.
CS 501E Java Server Pages (1)
Provides an advanced-level introduction to Java Server Pages (JSP) for programming on the Web for students who are intermediate or advanced Java programmers. This course contains a significant component in the use of computers.
CS 501F C# (1)
Provides an advanced-level introduction to the programming language C# for students who are intermediate or advanced Java programmers. This course contains a significant component in the use of computers.
CS 501G ASP: Active Server Pages (1)
Provides an advanced-level introduction to Active Server Pages for programming on the Web for students who are intermediate or advanced programmers in any high-level programming language. This course contains a significant component in the use of computers.
CS 501H Cold Fusion (1)
Provides an advanced-level introduction to Cold Fusion to build three-tier database Web applications for students who are intermediate or advanced programmers in any high-level programming language and who have expertise with databases. This course contains a significant component in the use of computers.
CS 505 Design and Analysis of Algorithms (3)
Introduction to basic methods of design and analysis of algorithms. Topics covered include measures of time and space complexity, NP-complete problems, and determination of efficient algorithms for sorting and searching. Prerequisites: CS 220, MA 150, and MA 181 or equivalent. This course contains a significant component in the use of computers.
CS 515 Advanced Computer Architecture (3)
A survey of new developments in advanced computer architecture. After a brief review of the concepts underlying current architecture, a variety of approaches and techniques used in the design of advanced computer systems is examined. Prerequisite: CS 230 or equivalent. This course contains a significant component in the use of computers.
CS 520 Data Communications (3)
A survey of the complex technology surrounding data communications. The student selects appropriate communication lines, equipment, and software in constructing data communication systems. Prerequisite: CS 230 or equivalent. This course contains a significant component in the use of computers.
CS 525 Computer Networking (3)
Provides an introduction to issues in network architecture, particularly design of network protocols, analysis of their efficiency, and popular network standards. In addition, this course provides an introduction to network programming. It is recommended that students possess a knowledge of statistics, elementary differential calculus, and a structured programming language before attempting this course. Prerequisites: CS 220 and CS 230, or equivalents. This course contains a significant component in the use of computers.
CS 530 Software Engineering (3)
An overview of system and software engineering, software project planning, problem specification and analysis, system design techniques, UML programming languages and coding, system testing and maintenance, and software quality assurance. Prerequisite: CS 220 or equivalent. This course contains a significant component in the use of computers.
CS 535 Human Engineering Issues in Computer System Design (3)
Emphasizes the importance of human engineering issues in implementing successful computer-based systems. Prerequisite: CS 530. This course contains a significant component in the use of computers.
CS 550 Principles of Operating Systems (3)
Introduction to the major features of operating systems, such as concurrent processing, CPU scheduling, deadlocks, memory management, real and virtual memory, secondary storage management, and file management. Prerequisite: CS 220 or equivalent. This course contains a significant component in the use of computers.
CS 555 Theory and Applications of Artificial Intelligence (3)
A survey of artificial intelligence algorithms including search heuristics for problem solving and game playing, logic, knowledge representation and reasoning, planning and navigation, machine learning, neural networks, natural language processing, and robotics. Prerequisite: a grade of C- or better in CS 220 or consent of instructor. This course contains a significant component in the use of computers.
CS 565 Data Management Systems (3)
A study of the design of relational databases using ER data modeling. This course also explores modern database systems, such as Oracle, and programming database applications using Java JDBC and tools like Cold Fusion. Prerequisite: a grade of C- or better in CS 220 or consent of instructor. This course contains a significant component in the use of computers.
CS 570 Computer Security I (3)
A survey of topics in computer security, including computer security goals, security and privacy policies, network security, database security, wireless network security, physical security, risk assessment and management, cryptography, and introductory information policy and intellectual property law. This course integrates the teaching of computer security topics with an analysis of their ethical dimensions and laboratory demonstrations. Prerequisite: CS 525 or ISY 515. This course contains a significant component in the use of computers.
CS 571 Computer Security II (3)
A more advanced study of computer security, including the topics of authentication mechanisms; authorization mechanisms; security models; trusted computing; machine architecture security; operating system security; application security; inference and aggregation; network security protocols, such as IPSEC and SSL; and Web security. This course integrates the teaching of computer security topics with an analysis of their ethical dimensions and laboratory demonstrations. Prerequisite: CS 570. This course contains a significant component in the use of computers.
CS 600 Compiler Design and Implementation (3)
Analysis of the concepts of compiler design and the steps involved in compiler writing. Prerequisite: CS 220 or equivalent. This course contains a significant component in the use of computers.
CS 610 Graduate Research Seminar in Computer Science (3)
Preparation for the Master’s Thesis/Project and presentations. Exposure to current research in computer science and the professional means of communicating the results of research. Prerequisite: permission of advisor. This course contains a significant component in the use of computers.
CS 620 Distributed Computing (3)
The primary focus of this course is client/server and distributed architectures and distributed programming in Java. The course covers how heterogeneous components of a client/server system work together in various models. Prerequisites: CS 220 and CS 230 or equivalent. This course contains a significant component in the use of computers.
CS 625 Cryptography (3)
Presents an introduction to symmetric and asymmetric cryptography. It includes a discussion of the history of cryptography and cryptanalysis as well as the mathematical basis of, and algorithms for, modern ciphers such as AES, DES, RSA, and RC4. The topics of key exchange and management, digital signatures, secure hashes, and steganography are covered. Prerequisites: MA 182, CS 505, and CS 571. This course contains a significant component in the use of computers.
CS 670 Computer Network Defense (3)
Provides a hands-on introduction to defending computer networks against attacks such as viruses, worms, Trojan horses, denial-of-service attacks, password cracking, key loggers, buffer overflow attacks, and reconnaissance, such as sniffing, DNS, SNMP, scanning, fingerprinting, and war driving. This course integrates the teaching of computer security topics with an analysis of their ethical dimensions and laboratory demonstrations. Prerequisite: CS 571. This course contains a significant component in the use of computers.
CS 698 Master's Project (3-6)
Application of newly acquired knowledge to a significant practical problem in computer science. The results are communicated in writing and are critiqued by the faculty. Prerequisite: CS 610. This course contains a significant component in the use of computers.
CS 699 Master's Thesis (3-6)
This capstone course offers the student an opportunity to conduct original research into a topic of choice and draw on various aspects of previous studies. The results are communicated in writing and are critiqued by the faculty. Prerequisite: CS 610. This course contains a significant component in the use of computers.