Faculty of Arts and Science
Introduction to Computer Science
Credit hours: 3.00
Contact hours per week: 3-2-0
Overview of computer technology and computer science. Hardware and the concept of software. Introduction to common applications. Problem solving using the computer. Social issues in computing.
Lib Ed Req:Science
Note:This course may NOT be included among the courses required for a Computer Science or Mathematics major in Arts and Science.
Fundamentals of Programming I
Credit hours: 3.00
Contact hours per week: 3-1.5-0
Introduction to problem-solving and algorithms. Machine representation of data. Implementation of algorithms in a programming language. Fundamentals of programming concepts including branching and loops. Top-down programming and modular design. Arrays. Records. Techniques for constructing elegant and robust programs.
Prerequisite(s):One of Mathematics 30-1, Mathematics 30-2, Pure Mathematics 30, Mathematics 0500, Mathematics 0520, admission to the Post-Diploma B.Sc. in Agricultural Studies, or admission to the Post-Diploma B.Sc. in Geography, with a Concentration in Geographical Information Science
Lib Ed Req:Science
Discrete Structures
Credit hours: 3.00
Contact hours per week: 3-0-1
Introduction to proofs. Algorithms and complexity. Divisibility and modular arithmetic. Matrix algebra. Counting. Discrete probability. Graphs and trees.
Prerequisite(s):One of Mathematics 30-1, Mathematics 30-2, Pure Mathematics 30, Mathematics 0500, Mathematics 0520, or admission to the Post-Diploma B.Sc. in Computer Science
Lib Ed Req:Science
Introduction to Digital Systems
Credit hours: 3.00
Contact hours per week: 3-2-0
Review of number systems. Boolean algebra and simplification of Boolean functions. Combinational circuits. Sequential circuits. Registers and counters.
Prerequisite(s):Computer Science 1620 AND
One of Computer Science 1820 or Mathematics 1410
Lib Ed Req:Science
Fundamentals of Programming II
Credit hours: 3.00
Contact hours per week: 3-1.5-0
Introduction to object-oriented programming techniques: classes, objects, and methods. Generic programming. Recursion. Abstract data types: lists, stacks, queues, priority queues, binary trees. Algorithms for searching and sorting, and algorithm analysis.
Prerequisite(s):Computer Science 1620 AND
One of Computer Science 1820 or Mathematics 1410
Lib Ed Req:Science
Practical Software Development
Credit hours: 3.00
Contact hours per week: 3-2-0
Advanced object-oriented techniques including inheritance and polymorphism. Introduction to object-oriented design. Error detection and handling. Testing. Correctness and efficiency of programs. Collaborative software project. Version control. UNIX programming tools and scripting languages.
Prerequisite(s):One of Computer Science 2620 or admission to the Post-Diploma B.Sc. in Computer Science
Lib Ed Req:Science
Practical Problem Solving in Computer Science
Credit hours: 3.00
Contact hours per week: 1.5-1.5-0
A study of problem solving techniques including divide and conquer, dynamic programming, greedy algorithms, search and backtracking, heuristics for hard problems. The techniques will be applied for programming solutions to small but challenging problems from a variety of areas, including arithmetic and algebra, number theory, graph theory, combinatorics, geometry, strings.
Prerequisite(s):Computer Science 3620 AND
Application to the Department of Mathematics and Computer Science
Lib Ed Req:Science
Note:The course is intended for students who enjoy solving programming contest problems and will serve as preparation for the ACM International Collegiate Programming Contest.
Computer Architecture
Credit hours: 3.00
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 AND
Computer Science 2620
OR
Admission to the Post-Diploma B.Sc. in Computer Science
Lib Ed Req:Science
Data Structures and Algorithms
Credit hours: 3.00
Contact hours per week: 3-0-0
Efficient algorithm design and algorithm analysis. Abstract data types and data structures. Algorithm design and problem-solving techniques for sorting problems, tree-based problems and graph-based problems.
Prerequisite(s):Computer Science 1820 AND
One of Computer Science 2620 or admission to the Post-Diploma B.Sc. in Computer Science
Lib Ed Req:Science
Theoretical Foundations of Computing
Credit hours: 3.00
Contact hours per week: 3-0-0
Computation as strings and languages. Regular languages, finite state automata and their equivalence. Formal Grammars. Context-free languages, push-down automata and their equivalence. Recursive languages and recursively enumerable languages. Turing machines and effective computability. Church's thesis. The Chomsky hierarchy.
Prerequisite(s):One of Computer Science 1620 or admission to the Post-Diploma B.Sc. in Computer Science AND
Mathematics 2000
Lib Ed Req:Science
Operating Systems
Credit hours: 3.00
Contact hours per week: 3-0-0
Overview of operating systems: history, functionality, design issues. Operating system principles and structures. Concurrency: process state, context switches, mutual exclusion, semaphores, deadlock. Scheduling: preemption, schedules, processes and threads. Memory management: swapping, paging, segmentation, placement and replacement algorithms.
Prerequisite(s):Computer Science 2720 AND
Computer Science 3615
Lib Ed Req:Science
Introduction to Database Systems
Credit hours: 3.00
Contact hours per week: 3-0-0
Fundamental concepts of database management: modelling, design and implementation. The languages and facilities provided by database management systems, and system implementation techniques.
Prerequisite(s):One of Computer Science 2620 or admission to the Post-Diploma B.Sc. in Computer Science AND
One of Computer Science 1820 or Mathematics 2000
Recommended Background:
Computer Science 2720
Lib Ed Req:Science
Computer Graphics
Credit hours: 3.00
Contact hours per week: 3-0-0
Two- and three-dimensional geometric transformations. Viewing and projection principles. Object representation and simple lighting. Hidden line and surface removal, clipping. Surface Representations: Bezier and Spline methods. Texture mapping. Graphics pipeline programming.
Prerequisite(s):One of Computer Science 2620 or admission to the Post-Diploma B.Sc. in Computer Science
Lib Ed Req:Science
Introduction to Software Engineering
Credit hours: 3.00
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 2720
Lib Ed Req:Science
Cryptography
Credit hours: 3.00
Contact hours per week: 3-0-0
Classical ciphers, substitution ciphers, permutation ciphers. Shannon's information theory, entropy, Huffman codes, perfect secrecy and the one-time pad. Symmetric-key ciphers: block and stream ciphers. Public-key cryptosystems. Key distribution. Message authentication and digital signatures.
Prerequisite(s):One of Computer Science 2620 or admission to the Post-Diploma B.Sc. in Computer Science AND
Mathematics 2000
Lib Ed Req:Science
Programming Languages
Credit hours: 3.00
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):One of Computer Science 2620 or admission to the Post-Diploma B.Sc. in Computer Science AND
Mathematics 2000
Lib Ed Req:Science
Artificial Intelligence
Credit hours: 3.00
Contact hours per week: 3-0-0
Problem-solving in artificial intelligence. Knowledge representation and reasoning. Selected topics from uncertainty, probabilistic reasoning, planning and robotics, learning techniques, pattern recognition, natural language processing, and computer vision.
Prerequisite(s):One of Computer Science 2620 or admission to the Post-Diploma B.Sc. in Computer Science
Recommended Background:
One of Computer Science 1820 or Mathematics 2000
Lib Ed Req:Science
Human-Computer Interaction
Credit hours: 3.00
Contact hours per week: 3-0-0
Characteristics of humans in the context of user interfaces. Design principles and methodologies. Interface evaluation with and without user involvement. Development of graphical user interfaces. Applications of human-computer interaction in program design.
Prerequisite(s):Computer Science 2720
Lib Ed Req:Science
Data Communications and Networking
Credit hours: 3.00
Contact hours per week: 3-2-0
Layered network design. Data encoding and transmission. Data link protocols, network protocols, and network applications. OSI and TCP/IP models.
Prerequisite(s):One of Computer Science 2620 or admission to the Post-Diploma B.Sc. in Computer Science
Lib Ed Req:Science
Studies in Algorithms (Series)
Credit hours: 3.00
Contact hours per week: 3-0-0
Advanced topics in algorithms. Subjects may include, but are not limited to, discrete and continuous optimization, computational geometry, computational mathematics.
Prerequisite(s):Fourth-year standing (a minimum of 90.0 credit hours) AND
Additional Prerequisites will be specified (including any recommended background) for individual offerings
Lib Ed Req:Science
Studies in Systems (Series)
Credit hours: 3.00
Contact hours per week: 3-0-0
Advanced topics in the design of systems. Subjects may include, but are not limited to, database systems, computer networks, operating systems, topics related to circuit design, compilers and compilation techniques, parallel and distributed systems.
Prerequisite(s):Fourth-year standing (a minimum of 90.0 credit hours) AND
Additional prerequisites will be specified (including any recommended background) for individual offerings
Lib Ed Req:Science
Studies in Computational Intelligence (Series)
Credit hours: 3.00
Contact hours per week: 3-0-0
Advanced topics in computational intelligence. Subjects may include, but are not limited to, artificial intelligence, data mining, image processing, audio processing, natural language processing, human-computer interaction, bioinformatics, computer vision, machine learning.
Prerequisite(s):Fourth-year standing (a minimum of 90.0 credit hours) AND
Additional prerequisites will be specified (including any recommended background) for individual offerings
Lib Ed Req:Science
Compiler Design
Credit hours: 3.00
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 AND
Computer Science 3630
Recommended Background:
Computer Science 3740
Lib Ed Req:Science
Design and Analysis of Advanced Algorithms
Credit hours: 3.00
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 AND
Computer Science 3630
Lib Ed Req:Science
Database Management Systems
Credit hours: 3.00
Contact hours per week: 3-0-0
Systems issues and requirements related to the maintenance and the integrity of the data such as data storage, querying, and transaction management.
Prerequisite(s):Computer Science 3660
Lib Ed Req:Science
Distributed Systems
Credit hours: 3.00
Contact hours per week: 3-0-0
Distributed computing environments. Interprocess communication. Distributed file systems. Synchronization. Protection and security.
Prerequisite(s):Computer Science 3655 AND
Computer Science 3780
Lib Ed Req:Science
Undergraduate Thesis
Credit hours: 6.00
Contact hours per week: Variable
This is a challenging, work-intensive, research-oriented course in which students will conduct fieldwork, text, library-based or empirical research, submit a report in the form of an Undergraduate Thesis which will be made publicly available, and report orally on the work. In consultation with their Thesis Supervisor, students will define a research problem and formulate a research plan.
Prerequisite(s):Fourth-year standing (a minimum of 90.0 credit hours) AND
A minimum GPA of 3.70 calculated on all completed University of Lethbridge courses or calculated on all University of Lethbridge and transferable courses taken within the terms containing the last 20 courses (60.0 credit hours), whichever is higher
Note:Contact hours will vary. Students should be aware that this course involves regular contact with the Thesis Supervisor as well as considerable independent work.