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(s): One of Pure Mathematics 30, Mathematics 30, Mathematics 0500, or [Applied Mathematics 30 and at least 75 percent 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.
Prerequisite(s): Computer Science 1620;
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.
Prerequisite(s): Computer Science 1620;
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(s): 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(s): 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.
Prerequisite(s): Computer Science 2610;
Computer Science 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(s): 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.
Prerequisite(s): Computer Science 1620;
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(s): 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.
Prerequisite(s): Computer Science 1620;
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 transformations. Curves and surfaces. Picture processing.
Prerequisite(s): 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(s): 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(s): 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(s): 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(s): 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(s): 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(s): 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.
Prerequisite(s): Computer Science 3620;
Computer Science 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.
Prerequisite(s): Computer Science 3620;
Computer Science 3630;
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.
Prerequisite(s): Computer Science 2690;
Computer Science 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(s): 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.