2008-09 Course DescriptionsCS - Computer Science
School of Information Technology and Computing (SITC)
CS 105 Personal Computing (3-2-3), fall, spring. Personal computing emphasizing the interrelation of hardware with software on microcomputers. Includes instruction in the use of word processing, spreadsheet, database management, and communications programs. Laboratory graded and credited with course. For majors other than computer science, information technology, information systems, and mathematics.
CS 110 Computers and Society (3-0-3), fall, spring. An introduction to the computer as an information organizing and manipulating tool and to its responsible use. Familiarity with word processors and web browsers is assumed.
CS 115 Introduction to Programming (3-0-3), TBA. An introduction to programming, problem solving, and logic using a task-driven language such as Visual Basic. Topics include: sequence and sequential files, decision procedures and control flow, variables and constants, arrays, arithmetic operations and functions, data structure concepts, simple algorithm design, and debugging strategies. Laboratory graded and credited with course. A student may not receive credit for this course after receiving credit for CS 120.
CS 120 Programming I (3-0-3), fall, spring. Programming, debugging, and small program development in a statically typed procedural language. Topics include sequential, selective, and iterative control flow, modularity, simple data types, arrays, formatted input and output and text file processing. Prerequisite: CS 115.
CS 130 Programming II and Data Structures (3-0-3), fall, spring. An introduction to programming emphasizing implementation details such as pointers, array and data structure physical memory layout, stack conventions for function calls, string manipulation, heaps, allocation, object construction including canonical object form for C++, and portability. The primary language is C++, with substantial reference to C, and assembly language. Prerequisite: CS 120.
CS 220 Computer Organization and Single-User Systems (3-0-3), fall, spring. An introduction to machine organization covering digital circuits, functional units, caches, virtual memory, devices, the interrupt mechanism, and bus arbitration in the context of a single-user system. Prerequisite: CS 130.
CS 221 Fundamentals of Networking and Data Communications (3-1-3), fall, spring. A first course in data communications and networking. Topics include: IP networks and services, comparative network configurations and communications protocols, function and purpose of physical network components, resource sharing, client-server systems, administrative issues and tools, and industry standards. Provides initial training towards professional network certification. Laboratory graded and credited with course. Same as IT 221. Prerequisites: CS 115 and 120.
CS 230 Object-Oriented Programming (3-0-3), TBA. Principles and concepts of programming under the object-oriented paradigm using a language such as C++ or Java. Topics include: data abstraction and problem decomposition, information hiding, encapsulation, inheritance, polymorphism, templates, exception/event handling, multi-threading, concurrency, debugging, graphical user interfaces, and documentation. Emphasis on satisfying user specifications in application development. Prerequisite: CS 130.
CS 320 Database Programming and Design (3-0-3), spring. Database theory with an emphasis on relational databases. Include data representation, relations, base tables, indexes, SQL, relational algebra, and relational calculus. Exercises will be done on a state-or-the-art relational database. Prerequisite: CS 115.
CS 330 The Human-Computer Interface (3-0-3), fall, odd years. Introduction to both the programmatic and psychological considerations surrounding shaping the computer tool to the user. The course will cover the details of implementing a graphical user interface, and how to make the interface as user-friendly as possible. Prerequisites: CS 115; two of CS 120, CS 130, IT 125; and 60 earned hours.
CS 332 Design and Analysis of Algorithms (3-0-3), fall. Design and scientific and mathematical study of algorithms. Analytic and experimental performance determination. Includes searching and sorting, trees, graphs, asymptotic (e.g., big-O) performance bounds, and the halting problem. Prerequisites: CS 115, 120, 130; MATH 227.
CS 341 Numerical Methods (3-0-3), fall, even years. Survey of elementary numerical methods used in scientific computing applications. Topics include computer representation of integer and real numbers, sequences, series approximations, finite differences, interpolation, curve fitting, numerical differentiation and integration, and roots of a single non-linear equation. Selected algorithms to be solved using the computer. Programming experience required. Prerequisite: MATH 186. Same as MATH 341.
CS 352 Programming Languages (3-0-3), fall. Students will improve their understanding of languages, increase their vocabulary of useful programming constructs, and be able to learn or design a language more easily. Prerequisites: CS 120 and 220.
CS 356 Operating Systems (3-0-3), spring, odd years. Topics include dynamic procedure activation, system structure, evaluation, memory and process management, and recovery procedures. Prerequisites: CS 220 and CS/IT 221.
CS 365 Theory of Computation (3-0-3), spring, even years. Introduction to formal languages and automata, computability, and complexity. Topics include the DFAs, CFGs, pumping lemmas, Turing machines, the Church-Turing Thesis, nondeterminism, and NP-completeness. Prerequisites: CS 220 and 332.
CS 374 Software Engineering (3-0-3), fall. A study of the development of large scale software systems. Includes an overview of currently used analysis and design methodologies, including both structured and object-oriented paradigms. Projects will afford practical experience in the development of interpersonal communication skills needed for team software development. Prerequisite: CS 332.
CS 376 Software Testing and Quality Assurance (3-0-3), TBA. A study of software quality assurance and the software testing process, including methods, techniques and tools. Topics include: formal review techniques, verification and validation, black box testing, integration testing, acceptance testing, regression testing, performance testing, stress testing and testing of object-oriented software. Also presents an introduction to automated testing software. Prerequisite: CS 374.
CS 381 Computer Graphics (3-0-3), spring, odd years. A study of 2D and 3D rendering algorithms and representations, including homogeneous coordinate systems and their attendant transformations. Includes study of light and color and a survey of photo-realistic 3D rendering techniques. Prerequisites: CS 220, MATH 325.
CS 420 Networks and Distributed Computing (3-0-3), fall, odd years. A survey of the concepts and theory of networks and distributed data processing. Topics include data communications principles, network architectures and topology, distributed databases, client server computing, congestion control, distributed processing, message passing systems, shared memory, distributed objects, process scheduling and coordination, resource sharing, deadlock, interrupt handlers, and web-centric computing in the context of a multi-user system. Prerequisites: CS 220, 221, and 332.
CS 442 Numerical Analysis (3-0-3), spring, odd years. Solution of linear systems of equations by direct and iterative methods, matrix inversion, and evaluation of determinants. Matrix solution of leastsquare problems. Approximation of eigenvalues. Selected algorithms to be solved using the computer. Prerequisites: CS 341; MATH 325. Same as MATH 442.
CS 455 Principles of Compiler Design (3-0-3), fall, odd years. A formal treatment of programming language translation and compiler design concepts. Emphasis is on scanners, parsers, and translation. Prerequisites: CS 332, 352.
CS 467 Introduction to Artificial Intelligence (3-0-3), fall. Survey of the search, reasoning, control, learning, and knowledge representation principles underpinning intelligent systems such as games, theorem provers, expert systems, neural networks, planning, machine learning, and natural language. Prerequisite: CS 332.
CS 474 Object-Oriented Design (3-0-3), spring. Systematic object-oriented design. Topics include interface design, design patterns, and the implementation of a medium-sized application. Prerequisite: CS 332.
CS 495 Computer Science Senior Seminar (2-0-2), spring. Supervised study of selected topics in the field of computer science that are not normally or not often available as part of the regular course offerings. A comprehensive term project is normally required. A writing-intensive course. For computer science majors; must be taken during the last spring semester before graduation.
Satisfy your curiosity about what it means to live and learn at ACU!
Apply to ACU