XII. Course Descriptions
Computing and Information Science
Department of Computing and Information Science
Note: Credit may be obtained for 1 of CIS*1000 or CIS*1200. Students with credit for MCS*2020 may not register in CIS*1000 or CIS*1200 Students who major or minor in Computing and Information Science may not receive credit for the following courses unless
taken to satisfy the requirements of another program: MCS*2020, MATH*1050.
CIS*1000 Introduction to Computer Applications S,F,W (3-2) [0.50] |
A survey of computer systems and software. An introduction to computer programming and data organization. An emphasis on using
application packages for personal and business use. The social impact of computing. Not recommended for students with previous
computer science background. Cannot be taken for credit by students taking a major or minor in Computing and Information Science.
|
Restriction(s): |
CIS*1200, MCS*2020, Not available to students registered in B.A.Sc. Program (Applied Human Nutrition major)
|
CIS*1200 Introduction to Computing F,W (3-2) [0.50] |
An introduction to computer hardware and software, data organization, problem-solving and programming. Exposure to application
packages for personal and business use. For students who wish a balance between programming and the use of software packages.
Cannot be taken for credit by students taking a major or minor in Computing and Information Science.
|
Restriction(s): |
MCS*2020, CIS*1000 |
CIS*1500 Introduction to Programming F,W (3-2) [0.50] |
Introductory problem-solving, programming and data organization techniques required for applications using a general purpose
programming language. Topics include control structures, data representation and manipulation, program logic, development
and testing. For students who require a good understanding of programming or are planning on taking additional specialist
Computing and Information Science courses. This is the entry point to all CIS programs. (Also offered in distance education
format.)
|
Restriction(s): |
CIS*1650 |
CIS*2030 Structure and Application of Microcomputers S,F (3-3) [0.50] |
Components of a computer system, including memories, CPU, buses, and input/output subsystems and interface hardware. Instruction
sets, addressing modes, assembly/machine language programming. Development of algorithms for data acquisition, display, and
process control.
|
Prerequisite(s): |
(CIS*1900 or CIS*1910), (CIS*2500 or CIS*2650)
|
CIS*2100 Scientific Computing and Applications Development S,F (3-2) [0.50] |
This course is intended to introduce the student to techniques in modern applications development using current technologies
and practices. The emphasis of the first part of the course ranges from building and maintaining WEB sites to search engines
and multimedia presentations. The second part of the course is concerned with building and maintaining simple databases as
needed for the management of scientific data. This is done in conjunction with packages for mathematical and statistical analysis,
and presentation techniques. Cannot be taken for credit by students taking a major or minor in Computing and Information Science.
|
Prerequisite(s): |
1 of CIS*1000, CIS*1200, CIS*1500 |
CIS*2430 Object Oriented Programming S,F (3-2) [0.50] |
Introduces the Object Oriented (OO) approach to programming and algorithm design. Topics will include the creation and use
of objects from class libraries, user defined objects, inheritance, modularity, generic code, components, collections and
containers, and an introduction to OO design methodologies.
|
Prerequisite(s): |
CIS*2500 |
CIS*2500 Intermediate Programming W (3-2) [0.50] |
How to interpret a program specification and implement it as reliable code. Experience with pointers, complex data types,
and important algorithms. Intermediate tools and techniques in problem-solving, programming and program testing.
|
Prerequisite(s): |
CIS*1500 |
Equate(s): |
CIS*2650 |
CIS*2520 Data Structures S,F (3-2) [0.50] |
Basic data structures: stacks, queues, lists, trees, hashing, search trees, and graphs. Their representation, uses, and algorithms
for their traversal and manipulation. The emphasis is on using these structures in implementations and assessing the relative
effectiveness of alternative implementations.
|
Prerequisite(s): |
(CIS*1910 or CIS*1900) or (ENGG*1500, ENGG*2410), CIS*2500 |
Equate(s): |
CIS*2420 |
CIS*2750 Software Systems Development and Integration W (3-2) [0.75] |
Techniques and tools used in the development of large software systems. Methods for organizing and constructing modular systems,
manipulating files, an introduction to interface design, and use of databases. Software tools for managing projects, database
connectivity, configuration management, and system application programmer interfaces.
|
Prerequisite(s): |
CIS*2430, CIS*2520 |
Restriction(s): |
CIS*2450 |
CIS*2910 Discrete Structures in Computing II S,F (3-2) [0.50] |
Introduces graph theory, combinatorics and other discrete structures used in computer science, including graph representations,
traversal and simple graph algorithms, trees, counting strategies, summations, and an introduction to finite probability,
recursion, and finite state machine models.
|
Prerequisite(s): |
CIS*1500, CIS*1910 |
Restriction(s): |
CIS*1900 |
CIS*3000 Social Implications of Computing F (4-0) [0.50] |
This course focuses on social, ethical, legal and managerial issues in the application of computer science to the information
technology industry. Through seminars and case studies, human issues confronting Computer Science professionals will be addressed.
|
Prerequisite(s): |
2.00 credits in CIS courses |
CIS*3110 Operating Systems W (3-1) [0.50] |
Operating Systems in theory and practice. Components in a system: scheduling and resource allocation; process management,
multi-programming, multi-tasking; I/O control and file systems; mechanisms for client-server computing. Examples from contemporary
operating systems.
|
Prerequisite(s): |
(CIS*2500 or CIS*2650). Recommended (CIS*2030 or ENGG*2410).
|
CIS*3120 Digital Systems S,W (3-2) [0.50] |
Boolean algebra, minimization of Boolean expressions. Design of combinational and sequential logic circuits. Memory design.
Control, ALU, bus design. Microprogramming and CPU design.
|
Prerequisite(s): |
CIS*2030 |
CIS*3210 Computer Networks F (3-1) [0.50] |
This course covers the high-level (protocol) oriented aspects of computer networks, specifically: application, session, transport
and network layers. It includes the internet, socket-level programming, multimedia and quality of service issues. The hardware
aspects (switches, LANs, modems, transmission paths) are covered at only a functional level.
|
Prerequisite(s): |
CIS*3110 |
Restriction(s): |
CIS*4200 |
CIS*3530 Data Base Systems and Concepts F (3-1) [0.50] |
Review of data organization and data management principles with the perspective of analyzing applications suitable for implementation
using a DBMS. Analysis of several data base models, query specification methods, and query processing techniques. Overview
of several related issues including concurrency control, security, integrity and recovery. Students are expected to demonstrate
concepts through project assignments.
|
Prerequisite(s): |
(CIS*2420 or CIS*2520), (CIS*2450 or CIS*2750)
|
CIS*3700 Introduction to Intelligent Systems W (3-1) [0.50] |
This course covers the core topics of Artificial Intelligence, namely: agents and environment, search, knowledge representation,
reasoning, and learning. The last 3 topics are covered using logic as the common formalism for coherence The course introduces
a broad range of basic concepts, terminology, and applications, in addition to providing some specific, widely applicable
methodologies.
|
Prerequisite(s): |
(CIS*3430 or CIS*3750), STAT*2040 |
Restriction(s): |
CIS*4750, CIS*4760 |
CIS*3750 System Analysis and Design in Applications F (3-2) [0.75] |
An introduction to the issues and techniques encountered in the design and construction of software systems. The theory and
models of software evolution. Topics include requirements and specifications, prototyping, design principles, object-oriented
analysis and design, standards, integration, risk analysis, testing and debugging.
|
Prerequisite(s): |
CIS*2750 |
Restriction(s): |
CIS*3430 |
CIS*3760 Software Engineering S,W (3-2) [0.75] |
Examination of the software engineering process and the production of reliable systems. Techniques for the design and development
of complex software. Topics include object-oriented analysis, design and modeling, software architectures, software reviews,
software quality, software engineering, ethics, maintenance and formal specifications.
|
Prerequisite(s): |
CIS*3530, CIS*3750 (CIS*3110 recommended )
|
Restriction(s): |
CIS*3200 |
CIS*4000 Applications of Computing Seminar F,W (0-6) [0.50] |
This capstone course of the B.Comp. program provides students an opportunity to combine their area of application with their
studies in computing via a course project and seminar series. Application areas discussed in any particular semester will
depend on areas of application selected by students. Students are required to present their work in a seminar and also to
participate in the critical analysis and review of the work of other students taking this course.
|
Prerequisite(s): |
Registration in semester 7 or higher of the B.Comp. Program and completion of a minimum of 2.50 credits in an Area of Application. |
CIS*4150 Software Reliability and Testing F (2-2) [0.50] |
This course serves as an introduction to systematic methods of testing and verification, covering a range of static and dynamic
techniques and their use within the software development process. Concepts such as defining necessary reliability, developing
operational profiles, techniques to improve and predict software reliability, preparing and executing tests, black box testing,
white box testing, unit testing, system testing, and integration testing will be explained.
|
Prerequisite(s): |
CIS*3200 or CIS*3760 |
CIS*4210 Telecommunications W (3-1) [0.50] |
This course covers the low-level and the hardware-oriented aspects of computer communications, specifically the physical,
link, and network layers. It includes basic telecommunication technology, local area networks, low level protocols, switching
technologies, wireless and mobile networking, data and stream compression, and error coding. (Offered in odd-numbered years.)
|
Prerequisite(s): |
CIS*3210 |
Restriction(s): |
CIS*4200 |
CIS*4300 Human Computer Interaction F (2-2) [0.50] |
Methods for user interface software design, including interface representations and testing. Evaluation and design of sample
application systems. Impacts of computer-based information systems on individuals and organizations. Implementation and testing
tools. Planning of learning stages and design of assistance subsystems. (Offered in odd-numbered years and may be offered
in even-numbered years.)
|
Prerequisite(s): |
CIS*3110, (CIS*3430 or CIS*3750)
|
CIS*4450 Special Topics in Information Science U (3-1) [0.50] |
A variety of advanced topics mainly from areas within general information processing. Subject areas discussed in any particular
semester will depend on the interests of the students and the instructor. Students should check with the Department of Computing
and Information Science to determine what topic will be offered during specific semesters and which prerequisites, if any,
are appropriate.
|
Restriction(s): |
Instructors consent required. |
CIS*4500 Special Topics in Computing Science U (3-1) [0.50] |
A variety of advanced topics within Computing Science. Subject areas discussed in any particular semester will depend upon
the interests of both the students and the instructor. Students should check with the Department of Computing and Information
Science to determine what topic will be offered during specific semesters and which prerequisites, if any, are appropriate.
|
Restriction(s): |
Instructor consent required. |
CIS*4650 Compilers W (3-1) [0.50] |
This course is a detailed study of the compilation process. Topics include interpreters, overall design implementation of
a compiler, techniques for parsing, building and manipulating intermediate representations of a program, implementation of
important features, code generation and optimization.
|
Prerequisite(s): |
(CIS*2030 or IPS*2010), CIS*3110, CIS*3620 |
Restriction(s): |
CIS*3650 |
CIS*4720 Image Processing and Vision W (3-1) [0.50] |
This course is an introduction to the process of image processing. Emphasis is placed on topics such as image enhancement,
segmentation morphological analysis, texture analysis, visualization and image transformations. Applications of image processing
in medicine, forensics, food and security are surveyed. (Offered in odd-numbered years.)
|
Prerequisite(s): |
(CIS*2450 or CIS*2750), CIS*3110, STAT*2040 (CIS*3700 recommended)
|
Restriction(s): |
CIS*4760 |
CIS*4730 Pattern Recognition W (3-1) [0.50] |
This course introduces fundamental concepts, theories and algorithms for pattern recognition, which are used in areas including
computer vision, signal processing, speech recognition and linguistics. Major themes include statistical pattern classification,
supervised and unsupervised learning, feature selection and extraction, clustering, image classification, and syntactical
pattern recognition. (Offered in even-numbered years.) (First offering Winter 2008)
|
Prerequisite(s): |
(CIS*2450 or CIS*2750), CIS*3110, STAT*2040 (CIS*3700 recommended)
|
Restriction(s): |
CIS*4760 |
CIS*4800 Computer Graphics W (3-1) [0.50] |
Introduction to computer graphics. Topics include graphics programming concepts, geometrical transformations, viewing 3-D
projections, raster graphics, sculptured surfaces, visible surface determination, image processing and other special topics.
Practical issues will be covered by assignment using currently available graphics equipment. (Offered in even-numbered years.)
|
Prerequisite(s): |
CIS*3110, (CIS*3430 or CIS*3750)
|
CIS*4820 Game Programming W (3-1) [0.50] |
This course will focus on the components found in modern 3-D game engines. It will emphasize the algorithms and data structures
required to create real-time computer graphics, sound and network communications. (Offered in odd-numbered years.)
|
Prerequisite(s): |
CIS*3110, (CIS*3430 or CIS*3750)
|
CIS*4900 Computer Science Project S,F,W (0-6) [0.50] |
Planning, developing and writing a research proposal under individual faculty supervision. The course, in continuation with
CIS*4910 provides senior undergraduates an opportunity to pursue an independent course of study. The topic selected will be determined
by agreement between the student and the faculty member with expertise in the area.
|
Prerequisite(s): |
7.00 credits in CIS |
Restriction(s): |
Instructor consent required. |
CIS*4910 Computer Science Thesis S,F,W (0-6) [0.50] |
This course is a continuation of CIS*4900. The student will conduct and write an undergraduate thesis under the individual supervision of a faculty member. In addition
the student is required to present his/her work in a seminar and also participate in the critical analysis and review of the
work of other students taking this course.
|
Prerequisite(s): |
CIS*4900 |
Restriction(s): |
Instructor consent required. |