Javascript is currently not supported, or is disabled by this browser. Please enable Javascript for full functionality.

   
    May 04, 2024  
American University Catalog 2019-2020 
    
American University Catalog 2019-2020 [ARCHIVED CATALOG]

Course Descriptions


 

Computer Science (Graduate Courses)

  
  • CSC-600 Simulation (3)


    Design and implementation of simulation systems. Covers discrete-event, stochastic simulations with examples chosen from a variety of fields. At least one simulation language is studied in detail.
  
  • CSC-604 Advanced Introduction to Coding for the Arts and Humanities (3)


    In this course students learn the fundamentals of programming with an emphasis on application. Students learn about variables, functions, control structures, and object-oriented programming while making use of software libraries to create interactive graphical experiences, data visualizations, databases, and other projects. Note: No credit toward computer science graduate program.
  
  • CSC-610 Introduction to Geographic Information Systems (3)


    A geographic information system (GIS) is a system of hardware, software, data, people, organizations, and institutional arrangements for collecting, storing, analyzing, and disseminating information about areas of the earth. This course provides an introduction to GIS, GIS software, and GIS applications. Usually Offered: spring. Note: Familiarity with spreadsheets, e-mail, and the World Wide Web required.
  
  • CSC-620 Algorithms and Data Structures (3)


    Design and analysis of efficient algorithms. Implementation and manipulation of data structures, including linked lists, stacks, queues, trees, and graphs. Memory management. Internal and external searching and sorting. Crosslist: CSC-420 .
  
  • CSC-621 Design and Organization of Programming Languages (3)


    Study of desirable features and specifications of programming languages by investigation of data types, control structures, data flow, and run-time behavior of several languages, such as Prolog, Smalltalk, LISP, Ada, etc. At least one non-procedural language is studied in detail. Elements of compiling and interpreting. Crosslist: CSC-421 .
  
  • CSC-632 Introduction to Simulation and Modeling (3)


    Design, implementation, and analysis of simulation models for dynamic continuous systems. Emphasis on continuous physical systems and analysis of their dynamic behavior from deterministic physical models. Overview of numerical integration algorithms in simulation. Introduction to difference equations and chaotic system behavior and simulation systems such as SIMULINK/MATLAB. Crosslist: CSC-432 . Usually Offered: spring. Grading: A-F only.
  
  • CSC-634 Database Management Systems (3)


    Examination of database management systems, distributed systems, evaluation and selection of computer systems, privacy and security, and performance evaluation. This course provides a fundamental exposure to relational architecture through exercises in Microsoft Access and Oracle 8, including an introduction to SQL. Crosslist: CSC-434 .
  
  • CSC-636 Advanced Database Management Systems (3)


    Advanced query capabilities and procedural constructs are described using SQL and PL/SQL. The theoretical foundation for using these capabilities is presented. Performance issues are discussed including indexing, key definitions, and data constraints. The role of application development in ease of use, query optimization, and system performance is discussed.
  
  • CSC-637 Database Administration (3)


    Database administration subjects including space allocation, recovery, security, configuration management, and performance tuning are discussed. Administration capabilities are presented using a real environment. Recovery issues include commit and rollback capabilities, check points, and data logs. Physical design and implementation constraints are addressed.
  
  • CSC-640 Computer System Organization and Programming (3)


    Investigation of the structure of a modern computing system. Alternative computer organizations are discussed so that students may appreciate the range of possible design choices. Assembly, linking, and loading are presented in detail. The relation between system software and computer organization is discussed. Crosslist: CSC-440 .
  
  • CSC-643 Object-Oriented Analysis and Design (3)


    A study of object-oriented concepts and their use in systems development. This course analyzes abstractions called objects and develops analysis-level models of systems using objects. The properties of these object models are discussed and methods for systematic development of the models are studied. The translations of the analysis-level models into system design is performed to understand how systems can be realized in software implementations. Crosslist: CSC-443 .
  
  • CSC-644 Object-Oriented Programming (3)


    Advanced use of an object-oriented programming language in the implementation of object-oriented systems. The language is studied in depth to see how advanced concepts are realized in the language, and is used to produce example systems. Emphasis is placed on the most recent advanced features. Crosslist: CSC-444 .
  
  • CSC-646 Introduction to Computer Networks (3)


    An introduction to the basic concepts of computer networks. The architecture of data communication systems, the seven-layer model of a network, and the physical, data link, network, transport, and session layers are explored. Protocol algorithms are considered for the implementation of the various network layers. Crosslist: CSC-446 . Usually Offered: fall.
  
  • CSC-647 Introduction to Cybersecurity (3)


    Cybersecurity is the field of computer science pertaining to the protection of software, host systems, and networks. This course covers a number of important topics including cryptography, software security, operating system security, network security, web security, and malware analysis. Crosslist: CSC-447 . Usually Offered: fall.
  
  • CSC-648 Network Security (3)


    Protecting data during transmission over the internet is one of the most important tasks for companies and governments delivering online services. A good network security system helps organizations safeguard proprietary information against attacks. This course covers security protocols and applications in local, global, and wireless networks; packet-level communication security systems; authentication and key-exchange protocols; intrusion detection systems and firewalls; secure network applications and denial-of-service attacks. Crosslist: CSC-448 . Usually Offered: spring. Recommendation: CSC-646 .
  
  • CSC-649 Secure Software Development (3)


    This course teaches the design and implementation of secure software by introducing students to the security principles of the software development lifecycle. The course familiarizes students with the characteristics of secure software and how to attain a secure design through a number of practices such as risk analysis, threat modeling, cryptography, and defensive coding. Students learn to develop secure software as well as to test their design. Web and mobile applications security are also considered. Crosslist: CSC-449 .
  
  • CSC-650 Software Engineering (3)


    This course presents techniques and tools in software design and development and applies them to the design and implementation of a large software system. The discussion includes the software life cycle; analysis, design, implementation, testing and debugging; maintenance and documentation; software reliability, portability, and expandability; and user interface. Crosslist: CSC-450 . Usually Offered: spring. Grading: A-F only.
  
  • CSC-660 Tools of Scientific Computing (3)


    Designed to teach scientific rigor in the use of computers and/or computational tools. Techniques from mathematics are introduced which lead to efficient algorithm design, algorithm analysis, data classification, data manipulation, and scientific computation. Includes data types, induction, recursion, sorting, searching, summation, optimization, asymptotic analysis, basic number theory, discrete probability, and parallel computing. Crosslist: CSC-460 MATH-460 , and MATH-660 . Usually Offered: fall. Grading: A-F only. Permission: department.
  
  • CSC-665 Operating Systems (3)


    Historical background. Operating system functions and concepts: processes; processor allocation; memory management; virtual memory; I/O and files; protection; and design and implementation. Several existing operating systems are discussed. A group project to design and implement a small operating system is usually required. Crosslist: CSC-465 .
  
  • CSC-668 Artificial Intelligence (3)


    Application of computers to tasks usually thought to require human intelligence, such as game playing, problem solving, learning, pattern recognition, natural language understanding, and expert systems. Crosslist: CSC-468 .
  
  • CSC-670 Game Programming (3)


    This course introduces students to design and production-oriented aspects of game development as well as technical and programming skills. Technical topics include key game algorithms, physical simulation, artificial intelligence, and interface design. Crosslist: CSC-470 . Usually Offered: fall. Grading: A-F only. Permission: instructor. Note: Previous course work in computer science and programming experience is required.
  
  • CSC-676 Computer Vision (3)


    This course provides an introduction to computer vision, including fundamentals of image formation, camera imaging geometry, feature detection and matching, stereo, motion estimation and tracking, image classification, scene understanding, and deep learning with neural networks. Crosslist: CSC-476 . Usually Offered: spring. Grading: A-F only.
  
  • CSC-680 Introduction to Data Mining (3)


    This course presents the main machine learning algorithms and evaluation methods developed to date in an intuitive way suitable for a non-specialized audience. It also introduces current research developments in the field and initiates students to the solving of applied programs in an innovative way, using existing machine learning tools. Crosslist: CSC-480 . Usually Offered: spring. Grading: A-F only.
  
  • CSC-681 Machine Learning for Cybersecurity (3)


    Machine learning for cybersecurity is the field of computer science pertaining to the protection of software, host systems, and networks using machine learning techniques. This course covers a number of important topics including a general introduction to machine learning and cybersecurity, an in-depth study of the machine learning and deep-learning techniques best suited for cybersecurity, and an examination of malware analysis and network traffic analysis. Crosslist: CSC-481 . Usually Offered: spring.
  
  • CSC-689 Topics in Computer Science (3)


    Topics vary by section. Rotating topics include design and analysis of algorithms, expert systems, client server computing, and computer network design and analysis. Repeatable for credit with different topic.
  
  • CSC-690 Independent Study Project (1-6)


    Permission: instructor and department chair.
  
  • CSC-691 Internship (1-6)


    Permission: instructor and department chair.
  
  • CSC-694 Capstone Project (1-6)


    With guidance from their advisor and the project class coordinator, students select an application area in computer science where an open-ended problem can be identified. Students research the literature and current domain solutions in the application area. Projects are documented and defended. Prerequisite: completion of minimum of 24 credit hours of graduate study in computer science.
  
  • CSC-696 Selected Topics: Non-Recurring (1-6)


    Topics vary by section. Repeatable for credit with different topic.
  
  • CSC-797 Master’s Thesis Research (1-6)


    Grading: SP/UP only. Prerequisite: completion of 24 graduate credit hours. Permission: department.