COMPUTER SCIENCE

COMPUTER SCIENCE

COMPUTER SCIENCE 1000
Introduction to Computer Science

Credit hours: 3.0
Contact hours per week: 3-2-0

Overview of computer technology. The concept of software. Introduction to word processing, spreadsheets, electronic mail, database management, graphics and other applications. Problem solving using the computer. Social issues in computing.

Substantially Similar: Management 2060.

Note: This course may NOT be included among the 16 courses required for a Computer Science or Mathematics major in Arts and Science.

COMPUTER SCIENCE 1620
Fundamentals of Programming I

Credit hours: 3.0
Contact hours per week: 3-1-1

The concept of an algorithm. Fundamentals of programming concepts in an Object-Oriented context: classes, objects and methods. Modular design. Arrays and files. Techniques for constructing elegant and robust programs.

Prerequisite: Mathematics 30 or Pure Mathematics 30, Mathematics 0500, or Applied Mathematics 30 and at least 75% standing in Athabasca University's Mathematics 101.

COMPUTER SCIENCE 2610
Introduction to Digital Systems

Credit hours: 3.0
Contact hours per week: 3-0-0

Digital circuit design principles for small, medium and large scale integrated circuit building blocks. Switching theory, finite state machines and introductory register-level transfer design.

Prerequisites: Computer Science 1620 and Mathematics 1410.

COMPUTER SCIENCE 2620
Fundamentals of Programming II

Credit hours: 3.0
Contact hours per week: 3-1-1

Recursion. Abstract Data Types: lists, stacks, queues, binary trees. Algorithms for searching and sorting. Programming in an Object-Oriented environment: inheritance, polymorphism, generic programming.

Prerequisites: Computer Science 1620 and Mathematics 1410.

COMPUTER SCIENCE 2660
File Processing

Credit hours: 3.0
Contact hours per week: 3-1-1

Sequential file processing. Sorting and merging files. Relative file processing. Random access, hashing and indexing. Indexed sequential file processing. Multi-list and inverted file organization.

Prerequisite: Computer Science 2620.

COMPUTER SCIENCE 2690
Systems Programming

Credit hours: 3.0
Contact hours per week: 3-1-1

Contemporary ideas and techniques in system programming using the C language. Using and implementing software tools: filters, pipelines, sorts, text patterns and others. Programming at the shell level.

Prerequisite: Computer Science 2620.

COMPUTER SCIENCE 3615
Computer Architecture

Credit hours: 3.0
Contact hours per week: 3-0-0

Register-level transfer design. Constructions of the basic subsystems of computers (control unit, arithmetic and logic unit, data path, memory, input/output). Assembly of subsystems into basic computer architecture. Performance enhancement techniques.

Prerequisites: Computer Science 2610 and 2620.

COMPUTER SCIENCE 3620
Data Structures and Algorithms

Credit hours: 3.0
Contact hours per week: 3-0-0

Abstract data types: stacks, queues, lists, trees, search trees, graphs, sets. Algorithm analysis. Algorithm techniques: divide and conquer, greedy, dynamic programming. Algorithms for searching and sorting, merging, hashing and graph algorithms.

Prerequisite: Computer Science 2620.

COMPUTER SCIENCE 3630
Theoretical Foundations of Computing

Credit hours: 3.0
Contact hours per week: 3-0-0

Recursive functions, Turing machines and effective computability. Church's thesis. Formal grammars, regular languages and context-free languages. Finite state automata, push-down automata and their equivalence to languages. The Chomsky hierarchy.

Prerequisites: Computer Science 1620 and Mathematics 2000.

COMPUTER SCIENCE 3660
Introduction to Database Systems

Credit hours: 3.0
Contact hours per week: 3-0-0

Physical data organization. Logical representations of data records. Data models. Database design and normal forms. Database control. Studies of some popular database management systems.

Prerequisite: Computer Science 2660.

Substantially Similar: Management 3830; Management 3831 (prior to 2006/2007).

COMPUTER SCIENCE 3670
Numerical Methods

Credit hours: 3.0
Contact hours per week: 3-0-0

Accuracy and errors in numerical calculations. Finite differences and interpolation. Numerical differentiation and integration. Curve fitting. Solution of linear and non-linear systems of equations. Numerical solution of differential equations.

Prerequisites: Computer Science 1620 and Mathematics 2560.

COMPUTER SCIENCE 3710
Computer Graphics

Credit hours: 3.0
Contact hours per week: 3-0-0

Overview of a computer graphics system. Output primitives, display algorithms, graphics data structures. Two-dimensional and three-dimensional graphic trans-formations. Curves and surfaces. Picture processing.

Prerequisite: Computer Science 2620.

COMPUTER SCIENCE 3720
Introduction to Software Engineering

Credit hours: 3.0
Contact hours per week: 3-0-0

System life cycle and methodologies, estimating and planning, requirements gathering and specification, system external design, system internal design, development and implementation, testing, operation and maintenance, quality assurance.

Prerequisite: Computer Science 2620.

COMPUTER SCIENCE 3730
Cryptography

Credit hours: 3.0
Contact hours per week: 3-0-0

Classical cryptosystems, substitution ciphers, permutation ciphers; Shannon's information theory, entropy, Huffman codes, perfect secrecy; the Data Encryption Standard, cryptosystem; public key cryptosystems, the RSA cryptosystem; digital signatures.

Prerequisite: Computer Science 2620.

COMPUTER SCIENCE 3740
Programming Languages

Credit hours: 3.0
Contact hours per week: 3-0-0

A comparison of programming languages and their implementations. One language from each of the following families: functional, declarative/logic, Object-Oriented. Topics selected from: garbage collection, heap management, procedural languages, historical developments.

Prerequisite: Computer Science 2620.

COMPUTER SCIENCE 3750
Artificial Intelligence

Credit hours: 3.0
Contact hours per week: 3-0-0

Introduction to Lisp and Prolog. Fundamental approaches to the problems in artificial intelligence. Topics selected from problem solving, game playing, pattern recognition, knowledge representation, expert systems, heuristic programming, theorem proving, natural language understanding and computer vision.

Prerequisite: Computer Science 3740.

COMPUTER SCIENCE 3780
Data Communications and Networking

Credit hours: 3.0
Contact hours per week: 3-0-0

OSI model for data communication, data encoding and transmission techniques, data link control, circuit switching, packet switching and local area networks.

Prerequisite: Computer Science 2620.

COMPUTER SCIENCE 3782
Internetworking

Credit hours: 3.0
Contact hours per week: 3-0-0

Protocols, architectures and software for internetworking, TCP/IP protocols, routing protocols and algorithm, network architectures, distributed systems, ATM, traffic management and applications.

Prerequisite: Computer Science 3780.

COMPUTER SCIENCE 3850
Topics in Computer Science

Credit hours: 3.0
Contact hours per week: 3-0-0

Topics will be selected in the semester prior to the semester of offering on the basis of student and faculty interest.

COMPUTER SCIENCE 4600
Compiler Design

Credit hours: 3.0
Contact hours per week: 3-0-0

Lexical and syntax analysis. Top-down and bottom-up parsing. Syntax-directed definition, semantics, and code generation.

Prerequisites: Computer Science 3620 and 3630.

Recommended background: Computer Science 3740.

COMPUTER SCIENCE 4625
Design and Analysis of Advanced Algorithms

Credit hours: 3.0
Contact hours per week: 3-0-0

Mathematics for the analysis of algorithms. Models of computation. Advanced algorithms. NP-completeness. Topics chosen from: probabilistic algorithms, parallel algorithms, complexity classes.

Prerequisites: Computer Science 3620, 3630 and Mathematics 2865.

COMPUTER SCIENCE 4650
Operating Systems

Credit hours: 3.0
Contact hours per week: 3-0-0

Structure and evaluation of operating systems. Multi-programming and multi-processing. Dynamic procedure activation. Concurrency control. Memory, processor and device management.

Prerequisites: Computer Science 2690 and 3615.

COMPUTER SCIENCE 4660
Database Management Systems

Credit hours: 3.0
Contact hours per week: 3-0-0

Query translation and optimization techniques. Transaction. Recovery. Concurrency control. Database integrity. Distributed database systems. New data models. Intelligent database systems.

Prerequisite: Computer Science 3660.

COMPUTER SCIENCE 4850
Topics in Computer Science

Credit hours: 3.0
Contact hours per week: 3-0-0

Topics will be selected in the semester prior to the semester of offering on the basis of student and faculty interest.