Course Search
CP0100 |
Introductory Keyboarding
This course introduces students to computer hardware and the Windows operating system. The focus is on touch keyboarding to master alphabetic, numeric, and information copy.
|
CP0101 |
Advanced Keyboarding
Students will continue to develop keyboarding skills by practicing touch keying. Emphasis will be placed on speed building while maintaining accuracy. In addition, students will be introduced to: the basics of word processing in order to create and format simple documents; the tools and methods used to obtain information from the internet; and email as a personal and business communication tool.
|
CP0105 |
Computer Application I
Beyond continuing to improve keyboarding skill, this overview course introduces principles and practices common in several software applications. Practical projects include document preparation, formatting, revision and storage.
|
CP0110 |
Computer Applications II
This course includes not only advanced software applications but also the study of terminology and concepts related to computer hardware and software. Features and capabilities of computers will be assessed in relation to specific user needs.
|
CS1010 |
Introduction to Computing
This course provides an overview of computing science concepts for students with little or no programming background. Topics include representation of data, machine architecture, operating system concepts, properties of algorithms and computational problems, syntax of a high-level procedural programming language, basic data types and control structures. Students do introductory programming in this course.
|
CS1140 |
Introduction to Computing Science
An introduction to Computing Science in which you learn to solve simple problems by writing small computer programs in JAVA. This course presents a high-level object-oriented computing model based on objects as well as primitive data types, control structures and methods. It will be limited to basic elementary algorithms and techniques for constructing elegant and robust solutions to simple problems. The laboratories will offer you the opportunity to translate concepts presented in lectures into interesting application programs.
|
CS1150 |
Elementary Data Structures
The course provides a review of programming principles (specification, implementation and testing), and an extension of object-oriented concepts from CS1140 including data abstraction, modular program construction and program reuse. The emphasis is on dynamic data structures (eg. lists, string, stacks, queues, tables), and their associated algorithms (eg. recursion, traversal, sorting, searching, hashing).
|
CS2000 |
Data Communications and Networking
This course provides an introduction to computer communications and computer networks. Topics will include communication hardware and software, protocols, local area and wide area networks, and network management.
|
CS2010 |
Practical Programming Methodology
This course introduces you to the principles, methods, tools, and practices of a professional programmer working in a rich programming environment. The lectures focus on the fundamental principles of programming methodology based on abstract data types and their implementations. The laboratories offer an intensive apprenticeship opportunity for the aspiring software developer. You will use the programming languages C and C++ and software development tools supported by the Microsoft Windows and UNIX programming environment.
|
CS2020 |
Technology Tools for Teaching and Learning
This course will provide education students with the basic skills for using the most common information technology tools currently applied in schools. The types of tools include Internet tools, digital media processing, multimedia/hypermedia presentations, spreadsheets, and databases. The course offers a number of advanced modules dealing with more complex topics in these areas plus additional tools such as those for editing digital video and sound.
|
CS2040 |
Algorithms I
The first course of a two course sequence on algorithm design and analysis stream, with the emphasis on the fundamentals such as searching, sorting and graph algorithms. Examples include divide and conquer, dynamic programming, greedy method, backtracking, and local search methods. Analysis techniques will be developed to aid in judging program efficiency.
|
CS2050 |
Network Systems, Management and Security
This course will be of interest to students who want to learn how to implement, manage and troubleshoot network and server environments. Students will learn how to create and maintain network resources and develop network security policies and procedures. Topics will include network architectures and protocols (including wireless), network operating systems, Internet services, networking components (including network adapters, repeaters, hubs, switches, bridges, routers, gateways, firewalls and proxy servers), network virus protection, network backup and restoration, Windows and Linux management security.
|
CS2100 |
Computer Game Studies
This course will act as a comprehensive introduction to the concepts and issues in new media technologies with an emphasis on computer games. Students will gain an appreciation of the broad range of perspectives which new media and games encompass, including graphics realism and aesthetics, culture, sociology, psychology, philosophy and literary studies. Ultimately, these will converge on discussions relating to current game designs and development, as well as visioning directions and medium for the next generation of games.
|
CS2210 |
Introduction to PC Hardware and Systems Configuration
This course introduces the fundamentals of PC hardware. Students will open up machines, install devices such as hard drives, I/O cards, video cards as well as memory, CD/DVD ROM drives, install operating systems, explore a variety of different software packages, attach communications equipment and supporting software. Topics include system hardware (e.g. motherboards, processors, storage devices, memory), device drivers, operating systems (e.g. Windows, Linux), troubleshooting and maintenance of LAN (lLocal Area Network)-based PC, etc.
|
CS2290 |
Computer Organization and Architecture I
General introduction to number representation, architecture and organization concepts of von Neumann machines, assemble level programming, exception handling, peripheral programming, floating point computations and memory management.
|
CS2720 |
Formal Systems and Logic in Computing Science
An introductory course to present the tools of set theory, logic and induction, and their use in the practice of reasoning about algorithms and programs. Basic set theory. The notion of a function. Counting. Propositional and predicate logic and their proof system will be studied. Inductive definitions and proofs by induction will be covered along with program specification and correctness.
|
CS2910 |
Introduction to File and Database Management
The course includes basic concepts in computer data organization and information processing; hardware, physical organization, and access methods for fine storage; file I/O; introduction to database systems.
|
CS3010 |
User Interfaces
Formerly CT2020 This course is an introduction to the theory, design and programming of modern user interfaces. Topics will include: human factors; interaction design; usability; software development with graphical user interfaces (GUI) for computers, game consoles and mobile devices; input and output devices (including game controllers).
|
CS3060 |
Introduction to Image Processing
Formerly CT3060 Introduction, history, and applications; scanning and quantization; visual perception; output devices; pattern recognition; feature extraction; decision theory; classification rules; data representation and formats; image enhancement and restoration; edge detection; segmentation and texture; correlation and registration.
|
CS3100 |
Computer Game Studies
This course will act as a comprehensive introduction to the concepts and issues in new media technologies with an emphasis on computer games. Students will gain an appreciation of the broad range of perspectives which new media and games encompass, including graphics realism and aesthetics, culture, sociology, psychology, philosophy and literary studies. Students will be expected to work in small groups to develop several small and one intermediate length games using commercial game engines.
|
CS3110 |
Introduction to Computer Graphics
Formerly CT3110 Graphical input and output devices; segments; interactive input techniques; user interface design; windowing and clipping; 2D and 3D transformation; 3D modelling and viewing; hidden-line and hidden-surface removal.
|
CS3120 |
Experimental Robotics
Formerly CT3120 A project-based course dealing with the design and implementation of behaviour-based robots to accomplish specific tasks. Students work in groups and are introduced to concepts in sensor technologies, sensor data processing, motion control, embedded system design, real-time programming and behaviour arbitration.
|
CS3130 |
Telecommunications and Computers
Formerly CT3130 Introduction to computer communication networks. Digital data and voice transmission. Protocols for error and flow control, media access for LANs and MANs, routing and condition control, interconnection of networks. Introduction to recent advances in networks.
|
CS3220 |
Introduction to Artificial Intelligence
This course introduces the underlying concepts and essential techniques of Artificial Intelligence (AI). Topics cover core concepts in AI, such as intelligent agents, heuristic and adversarial search, game playing, knowledge representation and reasoning, making decisions, and machine learning fundamentals. The techniques and technologies mastered in this course will provide the foundational knowledge to design and implement various AI-based solutions to solve real-world problems across practice areas.
|
CS3290 |
Computer Organization and Architecture II
Digital circuits, combinational systems, memory, register transfer, control logic design, CPU design, and advanced topics on micro-architectures.
|
CS3610 |
Software Engineering
This course focuses on the principles and knowledge of software engineering. It covers the approaches taken in developing large programming projects, including requirements analysis, specification, design (e.g., top-down modularization), coding (e.g., structured programming), debugging and testing, maintenance, and thorough documentation.
|
CS3790 |
Operating Systems
Formerly CT3790 You will be introduced to concepts and features commonly found in operating systems. Class discussion will concentrate on traditional operating system topics (processes, memory management, file systems, input/output) as well as distributed operating system topics (communication, synchronization, and distributed file systems). UNIX will be studied as an example of traditional and distributed operating systems.
|
CS3860 |
Programming Paradigms
A comparison of programming languages and their implementations. 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, typing mechanisms, binding rules, heap management, procedural languages, historical developments.
|
CS3990 |
Web Based Internet Technology
This course introduces students to various aspects of Internet and web technologies such as HTML/XHTML, CSS, XML, and JavaScript/Java through research and project related assignments. The exact topics covered in this course will be at the discretion of the instructor.
|
CS3995 |
Selected Topics in Computing Science
Formerly CT3995 The content of this course will include topics and issues which are currently of interest to the general computing community.
|
CS4040 |
Theory of Computation
An introduction into advanced topics in the theory of computation. Topics include: basics of formal languages, models of computers, regular expressions, deterministic and nondeterministic finite automata, computability and computational complexity.
|
CS4060 |
Image Processing and Computer Vision
Introduction to image processing and visual perception. The course will explore topics such as: data representation and formats; image enhancement and restoration; edge detection; segmentation and texture; correlation and registration. These fundamentals will then be applied to the analysis of images by using pattern recognition; feature extraction and detection; object tracking, decision theory; classification rules.
|
CS4120 |
Experimental Robotics
A project-based course dealing with the design and implementation of behaviour-based robots to accomplish specific tasks. Students work in groups and are introduced to concepts in sensor technologies, sensor data processing, motion control, embedded system design, real-time programming and behaviour arbitration.
|
CS4320 |
Data Science
This course focuses on the fundamentals of Data Science methods to extract nontrivial, previously unknown, and potentially useful information from databases. It covers data exploration and preparation, data visualization, and computing with data using machine learning algorithms for tasks such as classification, clustering, and outlier detection in structured datasets, along with model evaluation techniques.
|
CS4800 |
Summer Work Integrated Learning
This course is intended to be taken during the summer between Year 3 and Year 4. The student will be expected to be working full time for a minimum of 12 weeks. The course will require a summative evaluation by the employer, as well the student needs to maintain a logbook of work activities undertaken and a post-employment presentation to supervising faculty
|
CS4995 |
Selected Topics in Computing Science
The content of this course will include topics and issues which are currently of interest to the general computing community.
|
CS4996 |
Capstone Project
The purpose of this course is to gain some understanding of how modern software is developed and deployed. Students will work in teams to complete a project of their own choosing but must first receive approval from the instructor. Student teams will be expected to successfully navigate their project through all phases of the software lifecycle. Reports and presentations will be expected at various stages of the project development.
|