Computing Science Minor

Daniel vanHeyst

WHAT IS COMPUTING SCIENCE?
Through lectures and laboratory work students gain competence in the most current programming languages, database design, software engineering, numerical computing and modelling. Core skills, such as critical thinking, problem-solving and algorithm analysis are developed giving graduates a competitive edge in the world of computing science.

WHAT KINDS OF COMPUTING SCIENCE DEGREES DOES KING’S OFFER?

Available As A Major For:
4-Year Bachelor of Science

Available As A Minor For:
B.A. B.Com., B.Mus., 4-Year B.Sc.

Courses Available Include: (for full course descriptions, see the registry pages here)
studies in: programming languages, computer architecture, networks and data structures

CMPT 250 - Introduction to Computing Science
CMPT 260 - Web-Application Design
CMPT 270 - Data Structures
CMPT 300 - Introduction to Programming and Problem-Solving
CMPT 305 - Object-Oriented Programming
CMPT 310 - Database Management Systems
CMPT 315 - Real Time Animation and Game Design
CMPT 320 - Software Engineering
CMPT 330 - Concepts of Operating Systems
CMPT 340 - Programming Language Concepts
CMPT 350 - Computer Architecture
CMPT 355 - Introduction to Computer Forensics
CMPT 360 - Discrete Mathematics
CMPT 370 - Algorithm Analysis
CMPT 399 - Special Topics in Computing Science
CMPT 400 - Computer Networks
CMPT 405 - Software Testing and Security
CMPT 415 - Advanced Database Management Systems
CMPT 420 - Numerical Analysis
CMPT 430 - Theory Of Computing
CMPT 440 - Computer Modelling
CMPT 450 - Image Processing and Embedded Images
CMPT 470 - Perspectives in Computing Science
CMPT 480 - Practicum I
CMPT 481 - Practicum II
CMPT 496 - Research in Computing Science
CMPT 499 - Directed Studies in Computing Science

Related Links

Course Schedule | Computing Science Department |

Introduction to Computing Science, Every Year, Fall 3(3-2-0)
An overview of computing concepts and technologies. Topics include: the history of computing, computing hardware, operating systems, application software, networks, and a discussion of the role of computing and information technologies in society.
Web-Application Design, Every Year, Fall 3(3-0-3)
This course includes description of Internet technologies, patterns, frameworks and best practices in the design and development of modern Web-application. The overall architecture of Internet applications will be examined. Students will use a current Internet development platform to create real-world Internet applications, involving client-side and server-side scripting, data security and dynamic connectivity. The social issues related to Internet applications will be discussed.
Data Structures, Every Year, Winter 3(3-0-3)
The objective of this course is to introduce the basic concepts of programming data structures, including how to select and design data structures that are appropriate for particular applications. Topics include stacks, queues, lists, trees, search trees, graphs, and sets. This course provides a mixture of theoretical knowledge and practical experience. The study of data structures and algorithms is carried out within an object-oriented framework. The Java programming language is used.
Introduction to Programming and Problem-Solving, Every Year, Winter 3(3-0-3)
An introduction to programming and a high-level, objectoriented programming language. Emphasis will be on programming as a problem-solving process which includes analysis, design, coding, testing, implementation and maintenance. Topics include: structured programming, modular design, data objects, variables, assignment, selection, iteration, procedures and functions, arrays and records. Object-oriented programming will be introduced. This course is open to first year students in the Computing Science program.
Prerequisites: CMPT 250.
Object-Oriented Programming, Every Year, Winter 3(3-0-3)
This course will further develop object-oriented analysis, design and programming. Topics include: objects, classes, methods, messages, parameters, inheritance, encapsulation, polymorphism, reuse, algorithmic construction and distributed systems.
Prerequisites: CMPT 300.
Database Management Systems (formerly CMPT 410), 2009-10, Fall 3(3-0-3)
A study of the structures and implementations of database management systems. Topics include: data models, normal forms for data relations, data description languages and query facilities.
Prerequisite: CMPT300.
Real Time Animation and Game Design, Every Year, Winter 3(3-0-3)
The objective of this course is to introduce the programming tools and techniques for creating interactive games and virtual reality simulations, and will focus primarily on programming aspects, including event loops and execution threads, rendering and animation in 3D, and multi-user games and networking. Other topics will include the history of computer/video game technology, game genres and design principles, and the social impact of games.
Prerequisite: CMPT300.
Software Engineering, 2009-10, Winter 3(3-2-0)
This course is designed for students to work in groups on suitable projects to familiarize them with software engineering principles. This course will concentrate on Unified Software Development and Use Cases. Topics include: requirements specification, functional and object-oriented design, verification and maintenance, environments and engineering tools, the software lifecycle, human-computer interface, social and ethical issues.
Prerequisites: CMPT 301, 305.
Concepts of Operating Systems, 2009-10, Fall 3(3-0-3)
An overview of the major concepts of operating systems. Students will be introduced to some of the major operating systems through lectures and laboratory exercises. Topics include: operating system functions, system structure, memory management, correctness, scheduling, concurrent process coordination, secondary storage and file systems.
Prerequisites: CMPT 301.
Programming Language Concepts, 2008-09, Fall 3(3-2-0)
This course will survey the major types of programming languages. Topics include: programming language paradigms (imperative, logic, functional and object-oriented), parameter passing, control structures, data types and typing mechanisms, binding rules.
Prerequisites: CMPT 301.
Computer Architecture, 2008-09, Fall 3(3-0-3)
A study of the basic principles and issues of computer organization and architecture. Topics include: the Von Neumann architecture, CISC and RISC architectures, one and two pass assemblers, loaders and linkers, macro-processors, compilers, interpreters and operating systems.
Prerequisites: CMPT 300.
Introduction to Computer Forensics, 2012-13, Winter 3(3-0-3)
Introduction to the basics of computer forensics, utilizing analytical and investigative techniques to identify, preserve, extract or collect, examine and interpret stored electronic information.
Prerequisites: CMPT 300.
Discrete Mathematics, 2009-10, Winter 3(3-0-0)
An introduction to formal logical reasoning and mathematical theory in computing science. Topics include: fundamental logic, set theory, induction, relations and functions, languages, the principle of inclusion and exclusion, generating functions and recurrence. Same as MATH 360.
Prerequisites: CMPT 300
Algorithm Analysis, 2009-10, Winter 3 (3-0-3)
Introduction to algorithm analysis, asymptotic notation, and different types of algorithmic techniques (divide and conquer, greedy methods, dynamic programming, backtracking and local search methods), fundamental algorithms for searching and sorting, merging, hashing and graphing. Analysis techniques to estimate program efficiency will also be considered.
Prerequisites: CMPT 270
Special Topics in Computing Science, Every Year, Winter 3(3-0-0)
A course on a topic or figure of special interest to a member of the computing science faculty and offered on a non-recurring basis.
Prerequisites: CMPT 250; some topics may have more specific prerequisites.
Computer Networks, 2009-10, Winter 3(3-0-3)
An overview of the field of computer networking. Topics include architecture, layering, multiplexing, addressing and address mapping, routing, naming, network software development, distributed systems, security and the Internet.
Prerequisites: CMPT 330.
Software Testing and Security, 2011-12, Winter 3(3-0-3)
This course addresses problems and solutions for long-term software maintenance and evolution, and for large-scale, long-lived software systems. Topics include software engineering techniques for large-scale projects, commercial-grade software testing of complex projects, legacy software systems, software evolution, software maintenance, re-use and programming efficiencies, computer sytems and security from a development perspective. The social and professional issues that arise in the context of software engineering will be discussed.
Prerequisites: CMPT 305
Advanced Database Management Systems, 2012-13, Fall 3(3-0-3)
This course introduces advanced concepts associated with the design of databases, such as denormalization, query optimization, indexes, transaction processing and stored procedures, and database triggers. Data warehousing, data mining, distributed database topics, security and administration issues will also be discussed. The labs will examine features of the Oracle database, and will culminate in a final project.
Prerequisites: CMPT 310
Numerical Analysis, 2008-09, Fall 3(3-0-2)
An introduction to numerical computation. Topics include computer arithmetic, root approximation, interpolation, numerical integration, applications to differential equations, and error analysis. Same as MATH 420.
Prerequisites: CMPT 300, MATH 205, MATH 221.
Theory Of Computing, 2008-09, Winter 3(3-0-0)
An introduction into advanced topics in the theory of computation. Topics include: models of computers including finite automata and Turing machines, computability, computational complexity, basics of formal languages.
Prerequisites: Twelve credits in computing science at the 300-level; one of which must be CMPT 340 or 360.
Computer Modelling 2008-09, Winter 3(3-0-3)
An introduction to the use of computer modelling. This course will emphasize the usefulness and limitations of computer simulations and modelling in drawing inferences. Projects will be taken from a variety of topics and will be coordinated with faculty from other disciplines. Students who do not have the necessary prerequisites but can demonstrate a sufficient mathematical proficiency and computing competency can obtain consent from the instructor to enrol in this course.
Prerequisites: CMPT 420.
Image Processing and Embedded Images, 2012-13, Winter 3(3-0-3)
This course introduces the topic of image processing, including a mathematical approach to understanding the technical aspect of how an image can be created, viewed and modified. Utilizing an image processing toolbox various images will be analyzed using standard algorithms, noisy or degraded images restored and enhanced for improved intelligibility, shapes and textures will be analyzed, and features of images will be embedded or extracted.
Prerequisites: CMPT 420
Perspectives in Computing Science, Every Year, Fall 3(0-3-0)
A senior level seminar course dealing with special topics in computing. Particular attention will be paid to computer applications, social impacts, ethical and legal issues, worldview perspectives and potential future developments in computing.
Prerequisites: Twelve credits in computing science at the 300-level and consent of instructor.
Practicum I, Every Year, 3(130 hours)
This is a placement of 10 hours per week in a commercial, industrial or non-profit setting under the supervision of a computing professional. One of CMPT 480 and 481 must be in the non-profit sector. The intern will be expected to maintain a reflective journal and complete a summary paper.
Prerequisites: Twelve credits in computing science at the 300-level and consent of instructor.
Practicum II, Every Year, 3(130 hours)
The second practicum placement. The requirements for this course are the same as for CMPT 480.
Prerequisites: CMPT 480 and consent of instructor.
Research in Computing Science, Every Year, 3(0-1-3)
An independent project in computing science, designed in consultation with the instructor. This project may be either a software development project or a computing literature research project. Before work commences, the student is required to submit a detailed proposal. Upon completion of the project, the results are presented in the form of either a fully documented program or a research paper, and a seminar.
Prerequisites: Twelve credits in computing science at the 300-level and consent of instructor.
Directed Studies in Computing Science, Every Year, 1 to 3 (varies)
An opportunity to do advanced study of a special topic of particular interest to a student. Students work with a member of the computing science faculty. Students must apply in advance to a member of the computing science faculty.
Prerequisites: Six credits in computing science at the 300-level, and consent of instructor.