Expand AU Menu

Computer Science | Courses

Questions?

  • Computer Science
    202-885-2741
    Fax: 202-885-2723
    cs@american.edu
    Sports Center Annex, Room 108

Mailing Address

For current class offerings, times, and additional information, visit the Office of the Registrar.

 

Undergraduate Courses

CSC-100 Computers and Information (3)

A first course for studying computers and information. Provides a foundation for using computers in other courses and curricula for research, communication, and writing. Hands-on experience in productivity enhancement, software, hardware, systems development, uses of the Internet and World Wide Web, and future directions and trends for computers and information. Usually offered every term. Note: This course is not intended for Computer Science majors.

CSC-280 Introduction to Computer Science I (4)

Problem solving and algorithm development. Structured programming, basic data types, and canonical structures; arrays and subprograms; recursion. Social implications of computing. Elementary applications from business and science. Usually offered every term. Prerequisite: familiarity with using files, e-mail, and the World Wide Web.

CSC-281 Introduction to Computer Science II (3)

Continuation of problem solving and object-oriented programming. Emphasis on larger programs built from modules. Introduction to abstract data structures: stacks, queues, graphs, and trees and their implementations and associated algorithms. Elementary numerical methods.Usually offered every term. Prerequisite: CSC-280.

CSC-310 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 every fall. Prerequisite: completion of the College Writing and Writing Proficiency Requirement, and familiarity with spreadsheets, e-mail, and the World Wide Web.

CSC-330 Organization of Computer Systems (4)

Logical circuit design, integrated circuits and digital functions, data representation, register transfer operations and microprogramming, basic computer organization, the central processor, and arithmetic operations. Prerequisite: completion of the College Writing and Writing Proficiency Requirement and CSC-280.

CSC-350 Introduction to Discrete Structures (3)

Introduction to mathematical subjects required in computer science, such as graphs, sets and relations, logic, and recurrence. Prerequisite: completion of the College Writing and Writing Proficiency Requirement, MATH-15x, and CSC-280.

CSC-360 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. Meets with MATH-360. Usually offered alternate falls. Prerequisite: CSC-280, CSC-281, MATH-221, and MATH-222.

CSC-390 Independent ReadingCourse (1-6)

Prerequisite: permission of instructor and department chair.

CSC-432 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 physicalmodels. Overview of numerical integration algorithms in simulation. Introduction to difference equations and chaotic system behavior and simulation systems such as SIMULINK/MATLAB. Prerequisite: CSC-280, and MATH-211 or MATH-221.

CSC-435 Web Programming (3)

This course presents and applies the web programming languages (HTML, DHTML, Javascript,Coldfusion), tools, and techniques used to develop professional web sites. The course moves step-by-step through the processes involved in planning, designing, launching, and maintaining successful web sites, with an emphasis on teamwork. Prerequisite: completion of the College Writing and Writing Proficiency and CSC-280.

CSC-490 Independent Study Project (1-6)

Prerequisite: permission of instructor and department chair.

CSC-491 Internship (1-6)

Prerequisite: permission of instructor and department chair.

CSC-493 Computer Science Capstone Project (3)

May be repeated for credit. Students complete a semester-long design project related to one ormore areas of computer science. The focus is on the design process, documentation, and project presentation. Topics related to the professional practice of computer science, including careers, ethics, technical writing, and speaking, and contemporary issues in computer science are also covered. Usually offered every term. Prerequisite: CSC-280, CSC-281, and one other CSC course at the 300-level or above.

 

Graduate and Advanced Undergraduate Courses

CSC-510 Legal Issues in Computing (3)

Copyright, patent, contract, tort, antitrust, privacy, and telecommunications issues. Prerequisite: junior standing.

CSC-520 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. Usually offered alternate falls. Prerequisite: CSC-281.

CSC-521 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. Prerequisite: CSC-281.

CSC-535 User Interface Analysis and Design (3)

This course provides the technical aspects ofweb application development, as well as the conceptual issues that affect this technology. Students develop an independent web-based project based on available authoring tools.

CSC-540 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.

CSC-543 Object-Oriented Analysis and Design (3)

Astudy 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.

CSC-544 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. Prerequisite: CSC-281 or equivalent.

CSC-546 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. Usually offered once a year.

CSC-565 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. Usually offered alternate springs. Prerequisite: CSC-281.

CSC-568 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. Prerequisite: CSC-280.

CSC-570 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. Prerequisite: CSC-281.

CSC-589 Topics in Computer Science (3)

Topics vary by section, may be repeated for credit with different topic. Rotating topics include artificial intelligence programming, computer graphics, the history of computing, and neural networks.

CSC-590 Independent Reading Course (1-6)

Prerequisite: permission of instructor and department chair.

 

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-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 every spring. Prerequisite: familiarity with spreadsheets, e-mail, and the World Wide Web.

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-689 Topics in Computer Science (3)

Topics vary by section, may be repeated for credit with different topic. Rotating topics include design and analysis of algorithms, expert systems, client server computing, and computer network design and analysis.

CSC-690 Independent Study Project (1-6)

Prerequisite: permission of instructor and department chair.

CSC-691 Internship (1-6)

Prerequisite: permission of instructor and department chair.

CSC-694 Capstone Project (3)

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 credits hours of graduate study in computer science.

CSC-797 Master’s Thesis Research (1-6)

May be taken SP/UP only. Prerequisite: completion of 24 graduate credit hours and permission of department.