2010-11 Course Descriptions
CS 111 Introduction to Computer Science(2-0-1), fall, spring, summer on demand. Introduces classic computational problems using logic and algorithms, but without programming. Emphasizes foundational ideas and terminology for further study of computer science. Topics include: numbers, sets, linear data structures, graphs, state diagrams and operations on these. Prerequisites: concurrent enrollment in MATH 124 or MATH 185.
CS 115 Introduction to Programming (3-0-3), fall, spring, summer on demand. 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: 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; MATH 227 or concurrent enrollment.
CS 220 Computer Organization (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 230 Object-Oriented Programming (3-0-3), fall. 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 315 Mobile Computing I (3-0-3), fall. Introduces the Development of applications for mobile computing and technology. Students learn to develop applications for mobile computing devices such as the iPhone and iPod Touch. Includes theory, concepts, and hands-on programming. Assumes a strong programming background. Prerequisite: CS 120, IT 220.
CS 316 Mobile Computing II (3-0-3), spring. Continues Mobile Computing I, developing more complex applications for mobile devices such as the iPhone and iPod Touch. Includes theory, concepts, and hands-on programming. Assumes a strong programming background. Prerequisite: CS 315.
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 130, IT 220.
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: two of CS 120, CS 130, IT 125.
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 130.
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 230.
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.
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, non-determinism, 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 230; CS 332.
CS 376 Software Testing and Quality Assurance (3-0-3), spring, even years. 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: IT 221.
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 least square problems. Approximation of eigenvalues. Selected algorithms to be solved using the computer. Prerequisites: CS 341; MATH 325. Same as MATH 442.
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 230.
CS 495 Senior Seminar (3-0-3), 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. For computer science majors; must be taken during the last spring semester before
graduation. Prerequisite: Senior standing. A writing-intensive course.
Wildcat Video Minute
Satisfy your curiosity about what it means to live and learn at ACU!
Apply to ACU