Quick Course Search

Augustana Faculty - Computing Science

In order to see more information about any course, simply click on it!

This view does not contain classes that have not been offered in the past 2 years. If you want to view those classes click here:
All Courses

AUCSC111 Introduction to Computational Thinking and Problem Solving Course Page

Description: An introduction to computational thinking, problem solving, and the fundamental ideas of computing science through programming in a scripting language (such as Python or Ruby). Topics include algorithms, abstraction, and modelling; the syntax and semantics of a high-level language; fundamental programming concepts and data structures, including simple containers (arrays, lists, strings, dictionaries); basic software development methods and tools; documentation and style; introduction to object-oriented programming; exceptions and error handling; graphical user interfaces and event-driven programming; recursion; introduction to algorithm analysis and run-time efficiency. Prerequisite: Mathematics 30-1. Note: Credit may be obtained for only one of AUCSC 111 and AUCSC 120.

AUCSC112 Data Structures and Algorithms Course Page

Description: An introduction to object-oriented design and programming in Java; algorithm analysis; data structures and container classes (lists, stacks, queues, priority queues, maps, dictionaries), their implementations (arrays, linked lists, heaps, hash tables), and associated algorithms (insertion, removal, iterators, sorting, retrieval); introduction to recursion. Prerequisite: AUCSC 111 or 120. Corequisite: AUMAT 110 or 111 or 116 and 120. Note: Credit may be obtained for only one of AUCSC 112 and AUCSC 210.

AUCSC220 Software Engineering I Course Page

Description: Software engineering paradigms, requirements specification, iterative software development, object-oriented design patterns, visual modelling with UML, software architecture; testing, verification and maintenance; software development environments and software engineering tools; societal implications such as the cost of failure and professional responsibilities. Prerequisite: AUCSC 112 or 210.

AUCSC250 Computer Organization and Architecture I Course Page

Description: Introduction to computer systems as multilevel machines. Topics include data representation; the organization and execution cycle of Von Neumann machines; assembly-level programming, addressing modes, control flow, procedure calls, input/output, interrupts, caching; finite state machines, Boolean algebra, logic gates, and digital circuits. Prerequisite: AUCSC 112 or 120.

AUCSC310 Algorithm Design and Analysis Course Page

Description: Trees, binary trees, search trees, their implementation, traversal, and search and update operations. Introduction to graph theory; data structures for the representation of graphs, digraphs, and networks, and their associated algorithms (traversal, connected components, topological sorting, minimum-spanning trees, shortest paths, transitive closure). Dynamic equivalence relations and union-find sets; amortized analysis. String matching. Algorithm design techniques (divide-and-conquer, dynamic programming, the greedy method). Merge-sort and the analysis of divide-and-conquer algorithms with recurrence relations; bucket-sort, ratix-sort, and the lower bound on sorting; comparison of sorting algorithms. Prerequisites: AUCSC 112 or 210 and AUMAT 250.

AUCSC320 Software Engineering II Course Page

Description: Detailed study of software development processes, life cycles, and tools, especially object-oriented methods. Team work is emphasized in the completion of a large software project, from problem definition through to maintenance. Prerequisite: AUCSC 220.

AUCSC330 Database Management Systems I Course Page

Description: Introduction to current database management systems in theory and practice. Topics include relational database design (including entity-relationship modelling, relational schema, and normal forms); relational algebra, use of a query language (typically SQL) and other components of a current database management system; overview of database system architecture, file structures (including B-tree indices), query processing, and transaction management; new directions. Prerequisites: AUCSC 112 or 210, and AUMAT 250.

AUCSC340 Numerical Methods Course Page

Description: Computer arithmetic and errors, solution of systems of linear equations, root finding, interpolation, numerical quadrature, and numerical solutions of ordinary differential equations. Applications from physics are included. Prerequisites: AUMAT 120, Corequisite: AUMAT 211; or consent of the instructor. Note: Credit may be obtained for only one of AUCSC 340, AUMAT 340, AUPHY 340.

AUCSC350 Computer Organization and Architecture II Course Page

Description: Architecture of historical and contemporary computer systems, including CPU chips and buses, memory, secondary memory devices, and I/O interfaces. Performance enhancement techniques, including prefetching, pipelining, caching, branch prediction, out-of-order and speculative execution, explicit parallelism, and predication are discussed. The course also includes the data path and control logic at the microarchitecture level; error detection and correction; floating-point number representation and calculation; fast arithmetic circuits; instruction sets and formats; and an overview of alternative and parallel architectures, including RISC/CISC, SIMD/MIMD, shared memory and message passing architectures. Prerequisite: AUCSC 250.

AUCSC355 Networks and Security Course Page

Description: Introduction to computer communication networks and network security. Physical and architectural elements and information layers of a communication network, including communication protocols, network elements, switching and routing, local area networks, and wireless networks. Authentication, cryptography, firewalls, intrusion detection, and communication security, including wireless security. Prerequisite: AUCSC 250. Corequisite: AUCSC 380

AUCSC370 Programming Languages Course Page

Description: Principles of language design, abstraction, syntax and parsing, operational semantics (declaration, allocation, evaluation, run-time environment, typing, activation), and programming language paradigms (procedural, object-oriented, functional, logic programming). Prerequisites: AUCSC 112 or 210, and AUMAT 250. Corequisite: AUCSC 250.

AUCSC380 Operating Systems Concepts Course Page

Description: Operating system functions, concurrent process coordination, scheduling and deadlocks, memory manage­ment and virtual memory, secondary storage management and file systems, protection. Prerequisites: AUCSC 250.

AUCSC395 Directed Study I Course Page

Description: Intensive study of a specific area of Computing Science as defined by the student and a supervising instructor, including completion of a software project in the selected area. Prerequisite: *9 of senior-level Computing Science. Notes: Admission to AUCSC 395 normally requires a minimum GPA of 3.0 in Computing Science. An "Application for Individual Study" must be completed and approved before registration in the course.

AUCSC398 Selected Topics in Computing Science Course Page

Description: Advanced study of a selected topic in computing science. The focus and content of each course offering are determined by student and faculty interests, and vary from year to year. Prerequisites: At least third-year standing or consent of the instructor; previous course(s) in Computing Science as determined by the instructor.

AUCSC401 Professional Practicum I Course Page

Description: A four-month work experience placement focused on gaining practical experience in software development and/or information systems, and an appreciation of the demands and responsibilities of the computing profession. Upon completion of the work experience term, the student must submit a report to the Department which summarizes, evaluates, and reflects on the work performed and the knowledge and experience gained during the placement. Prerequisites: At least *18 in Computing Science, third-year standing, and consent of the Department. Note: Participation in the practicum is by application only, and is restricted to Computing Science majors.

AUCSC402 Professional Practicum II Course Page

Description: A four-month work experience placement focused on gaining practical experience in software development and/or information systems, and an appreciation of the demands and responsibilities of the computing profession. Upon completion of the work experience term, the student must submit a report to the Department which summarizes, evaluates, and reflects on the work performed and the knowledge and experience gained during the placement. Prerequisites: AUCSC 401 and consent of the Department. Note: Participation in the practicum is by application only, and is restricted to Computing Science majors.

AUCSC415 Automata, Algorithms and Complexity Course Page

Description: Models of computers, including finite automata and Turing machines, basics of formal languages, compatibility, algorithm optimality, complexity classes (p, NP, NPcomplete, EXP, PSPACE, etc.), probabilistic algorithms, approximation algorithms, number-theoretic and other selected algorithms, including selection and order statistics. Prerequisites: AUCSC 310. Notes: This course may not be taken for credit if credit has previously been received for AUCSC 315, 410, or AUMAT 355.

AUCSC450 Parallel and Distributed Computing Course Page

Description: Parallel architectures, programming language constructs for parallel computing, parallel algorithms and complexity. Message-passing, remote procedure call, and shared-memory models. Synchronization and data coherence. Load balancing and scheduling. Appropriate applications. Prerequisites: AUCSC 350.

AUCSC460 Artificial Intelligence Course Page

Description: Survey of concepts and applications of artificial intelligence, including knowledge representation, state-space search, heuristic search, expert systems and shells, natural language processing, propositional logic, learning and cognitive models, vision; implementation using an AI language (LISP or PROLOG). Prerequisites: AUCSC 370 and AUMAT 250.

AUCSC490 Social and Ethical Issues for Computing Professionals Course Page

Description: Historical and social context of computing; the social and ethical responsibilities of the computing professional; the risks and liabilities that can accompany a computing application; intellectual property. The course includes extensive writing assignments and oral presentations. Prerequisite: At least *18 in Computing Science, including AUCSC 220 or 330; at least third-year standing.

AUCSC495 Directed Study II Course Page

Description: Intensive study of a specific area of Computing Science as defined by the student and a supervising instructor, including completion of a software project in the selected area. Prerequisite: *9 in Computing Science at the 300 level. Notes: Admission to AUCSC 495 normally requires a minimum GPA of 3.0 in Computing Science. An "Application for Individual Study" must be completed and approved before registration in the course.