Computer Science
Computer Science 1000
Introduction to Computer ScienceCredit hours: 3.0Contact hours per week: 3-2-0Overview 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 2060Note: 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 ICredit hours: 3.0Contact hours per week: 3-1-1The 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 SystemsCredit hours: 3.0Contact hours per week: 3-0-0Digital 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 1410Computer Science 2620
Fundamentals of Programming IICredit hours: 3.0Contact hours per week: 3-1-1Recursion. 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 1410Computer Science 2660
File ProcessingCredit hours: 3.0Contact hours per week: 3-1-1Sequential 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 2620Computer Science 2690
Systems ProgrammingCredit hours: 3.0Contact hours per week: 3-1-1Contemporary 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 2620Computer Science 3615
Computer ArchitectureCredit hours: 3.0Contact hours per week: 3-0-0Register-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 2620Computer Science 3620
Data Structures and AlgorithmsCredit hours: 3.0Contact hours per week: 3-0-0Abstract 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 2620Computer Science 3630
Theoretical Foundations of ComputingCredit hours: 3.0Contact hours per week: 3-0-0Recursive 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 2000Computer Science 3660
Introduction to Database SystemsCredit hours: 3.0Contact hours per week: 3-0-0Physical 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 2660Substantially Similar: Management 3830; Management 3831 (prior to 2006/2007)Computer Science 3670
Numerical MethodsCredit hours: 3.0Contact hours per week: 3-0-0Accuracy 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 2560Computer Science 3710
Computer GraphicsCredit hours: 3.0Contact hours per week: 3-0-0Overview 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 2620Computer Science 3720
Introduction to Software EngineeringCredit hours: 3.0Contact hours per week: 3-0-0System 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 2620Computer Science 3730
CryptographyCredit hours: 3.0Contact hours per week: 3-0-0Classical 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 2620Computer Science 3740
Programming LanguagesCredit hours: 3.0Contact hours per week: 3-0-0A 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 2620Computer Science 3750
Artificial IntelligenceCredit hours: 3.0Contact hours per week: 3-0-0Introduction 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 3740Computer Science 3780
Data Communications and NetworkingCredit hours: 3.0Contact hours per week: 3-0-0OSI model for data communication, data encoding and transmission techniques, data link control, circuit switching, packet switching and local area networks.Prerequisite(s): Computer Science 2620Computer Science 3782
InternetworkingCredit hours: 3.0Contact hours per week: 3-0-0Protocols, 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 3780Computer Science 3850
Topics in Computer ScienceCredit hours: 3.0Contact hours per week: 3-0-0Topics will be selected in the semester prior to the semester of offering on the basis of student and faculty interest.Computer Science 4600
Compiler DesignCredit hours: 3.0Contact hours per week: 3-0-0Lexical and syntax analysis. Top-down and bottom-up parsing. Syntax-directed definition, semantics, and code generation.Prerequisite(s): Computer Science 3620;
Computer Science 3630Recommended Background: Computer Science 3740Computer Science 4625
Design and Analysis of Advanced AlgorithmsCredit hours: 3.0Contact hours per week: 3-0-0Mathematics 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 2865Computer Science 4650
Operating SystemsCredit hours: 3.0Contact hours per week: 3-0-0Structure 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 3615Computer Science 4660
Database Management SystemsCredit hours: 3.0Contact hours per week: 3-0-0Query translation and optimization techniques. Transaction. Recovery. Concurrency control. Database integrity. Distributed database systems. New data models. Intelligent database systems.Prerequisite(s): Computer Science 3660Computer Science 4850
Topics in Computer ScienceCredit hours: 3.0Contact hours per week: 3-0-0Topics will be selected in the semester prior to the semester of offering on the basis of student and faculty interest.