XII. Course Descriptions
Computing and Information Science
School of Computer Science
Note: Credit may be obtained for 1 of 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: MATH*1050.
CIS*1000 Introduction to Computer Applications S,F,W (3-2) [0.50] |
This course provides a survey of computer systems and software, including an introduction to computer programming, data organization
and the social impact of computing. The course emphasizes application packages for personal and business use.
|
Offering(s): |
Offered through Distance Education format only. |
Restriction(s): |
CIS*1200, Not available to students registered in BASC:AHN, BCOMP degree or a CIS minor.
|
Department(s): |
School of Computer Science |
CIS*1050 Web Design and Development S,W (0-0) [0.50] |
An introduction to the basics of designing and developing a website. It examines the basic concepts, technologies, issues
and techniques required to develop and maintain websites. The course is suitable for students with no previous programming
experience.
|
Offering(s): |
Offered through Distance Education format only. |
Department(s): |
School of Computer Science |
CIS*1200 Introduction to Computing F,W (3-2) [0.50] |
This course covers an introduction to computer hardware and software, data organization, problem-solving and programming.
The course includes exposure to application packages for personal and business use and is intended forstudents who wish a
balance between programming and the use of software packages.
|
Offering(s): |
Offered through Distance Education format only. |
Restriction(s): |
CIS*1000 Not available to students registered in a BCOMP degree or a CIS minor.
|
Department(s): |
School of Computer Science |
CIS*1300 Programming F (3-2) [0.50] |
This course examines the applied and conceptual aspects of programming. Topics may include data and control structures, program
design, problem solving and algorithm design, operating systems concepts, and fundamental programming skills. This course
is intended for students who plan to take later CIS courses. If your degree does not require further CIS courses consider
CIS*1500 Introduction to Programming.
|
Restriction(s): |
CIS*1500 This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations. See department for more information.
|
Department(s): |
School of Computer Science |
CIS*1250 Software Design I F (3-2) [0.50] |
This is an introductory course which involves a general overview of design and problem solving as it is practiced in different
disciplines. The course will include an examination of the qualities of software as the end product of the design process.
It will include a study of the pervasiveness of software, and the platform specific considerations. The course has an applied
focus and will involve software design and development experiences in teams, a literacy component, and the use of software
development tools.
|
Restriction(s): |
Restricted to students in BCOMP:CS and BCOMP:CS:C with 2.50 or fewer credits and to students in BCOMP:SENG and BCOMP:SENG:C |
Department(s): |
School of Computer Science |
CIS*1500 Introduction to Programming F,W (3-1) [0.50] |
This course introduces 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. This course is intended for students who do not intend to enroll in further CIS courses. If your degree requires
further CIS courses, CIS*1300, is required.
|
Offering(s): |
Also offered through Distance Education format. |
Restriction(s): |
CIS*1300 Not available to students registered in a BCOMP degree, a CIS minor, BENG:CENG or BENG:ESC.
|
Department(s): |
School of Computer Science |
CIS*1910 Discrete Structures in Computing I F (3-2) [0.50] |
This course is an introduction to discrete structures and formal methodologies used in computer science, including Boolean
algebra, propositional logic, predicate logic, proof techniques, set theory, equivalence relations, order relations, and functions.
|
Department(s): |
School of Computer Science |
CIS*2030 Structure and Application of Microcomputers F (3-3) [0.50] |
This course examines the components of a computer system, including memories, CPU, buses, and input/output subsystems and
interface hardware. Programming of these systems is studied, including instruction sets, addressing modes, assembly/machine
language programming, development of algorithms for data acquisition, display, and process control.
|
Prerequisite(s): |
CIS*1910, CIS*2500 |
Department(s): |
School of Computer Science |
CIS*2050 Computers and Society S (3-0) [0.50] |
Students in this course will investigate and study the social impacts of computing technology. The course will provide a brief
introduction to ethics and the history of computing and the Internet. Additional content will focus on areas in which computers
and information technology are having an impact on individuals and society including privacy, safety, freedom of speech, intellectual
property, work, distribution of wealth, and the environment. This course is intended for students in any discipline.
|
Offering(s): |
Last offering - Summer 2019 Offered through Distance Education format only. |
Restriction(s): |
CIS*3000 This course may not be taken for credit by students in the BCOMP:SENG majors.
|
Department(s): |
School of Computer Science |
CIS*2170 User Interface Design W (3-2) [0.75] |
This course is a practical introduction to the area of user interface construction. Topics include user interface components
and their application, best practices for user interface design, approaches to prototyping, and techniques for assessing interface
suitability.
|
Prerequisite(s): |
1 of CIS*1200, CIS*1300, CIS*1500 |
Department(s): |
School of Computer Science |
CIS*2250 Software Design II W (3-2) [0.50] |
This course focuses on the process of software design. Best practices for code development and review will be the examined.
The software development process and tools to support this will be studied along with methods for project management. The
course has an applied focus and will involve software design and development experiences in teams, a literacy component, and
the use of software development tools.
|
Prerequisite(s): |
CIS*1250, CIS*1300 |
Restriction(s): |
Restricted to BCOMP:SENG majors. |
Department(s): |
School of Computer Science |
CIS*2430 Object Oriented Programming F (3-2) [0.50] |
This course 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 |
Department(s): |
School of Computer Science |
CIS*2460 Modelling of Computer Systems F (3-2) [0.50] |
This course examines discrete simulation based on event queues and random number generation. Methods for generating input
data, measuring and evaluating results using standard statistical tests are studied. Topics covered will include model calibration
and validation, and algebraic, probabilistic and simple queuing models of software and hardware operation.
|
Prerequisite(s): |
CIS*2500, STAT*2040 |
Department(s): |
School of Computer Science |
CIS*2500 Intermediate Programming W (3-2) [0.50] |
In this course students learn to interpret a program specification and implement it as reliable code, as they gain experience
with pointers, complex data types, important algorithms, intermediate tools and techniques in problem solving, programming,
and program testing.
|
Prerequisite(s): |
CIS*1300 |
Department(s): |
School of Computer Science |
CIS*2520 Data Structures F (3-2) [0.50] |
This course is a study of basic data structures, such as lists, stacks, queues, trees, and tables. Topics which will be examined
include abstract data types, sequential and linked representations, and an introduction to algorithm analysis; various traversal,
search, insertion, removal, and sorting algorithms.
|
Prerequisite(s): |
CIS*2500, (1 of CIS*1910, ENGG*1500, MATH*2000)
|
Department(s): |
School of Computer Science |
CIS*2750 Software Systems Development and Integration W (3-2) [0.75] |
This course introduces techniques and tools used in the development of large software systems. Students learn methods for
organizing and constructing modular systems, manipulating files, introductory interface design, and use of databases. Software
tools for managing projects, database connectivity, configuration management, and system application programmer interfaces
are also covered.
|
Prerequisite(s): |
CIS*2430, CIS*2520 |
Department(s): |
School of Computer Science |
CIS*3050 Systems Programming F (3-1) [0.50] |
This course will familiarize students with system level interface tools and their common applications. The purpose, function,
design and use of these tools will be explored, allowing students to determine where and when these tools are useful in software
development projects. Tools examined in the course include loadable libraries, file system locking, signals, pipes, asynchronous
reading/writing to files and memory, file system sockets, shared memory models, and hardware device properties and control.
|
Prerequisite(s): |
CIS*3110 |
Department(s): |
School of Computer Science |
CIS*3090 Parallel Programming F (3-1) [0.50] |
This course examines the current techniques for design and development of parallel programs targeted for platforms ranging
from multicore computers to high-performance clusters, with and without shared memory. It includes theoretical models for,
and hardware effects on, parallel computation, the definitions of speedup, scalability, and data- versus task-parallel approaches.
The course will also examine strategies for achieving speedup based on controlling granularity, resource contention, idle
time, threading overhead, work allocation, and data localization.
|
Prerequisite(s): |
(CIS*2030 or ENGG*3640), CIS*3110 |
Department(s): |
School of Computer Science |
CIS*3110 Operating Systems I W (3-1) [0.50] |
This course covers operating systems in theory and practice by focusing on the components in a system: scheduling, resource
allocation, process management, multi-programming, multi-tasking, I/O control, file systems, and mechanisms for client-server
computing using examples from contemporary operating systems.
|
Prerequisite(s): |
CIS*2520, (CIS*2030 or ENGG*2410).
|
Department(s): |
School of Computer Science |
CIS*3120 Digital Systems I W (3-2) [0.50] |
This course examines 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*1910, CIS*2500 |
Department(s): |
School of Computer Science |
CIS*3150 Theory of Computation F (3-0) [0.50] |
This course explores the theory of computation including automata theory, Turing machines and their variants, formal languages,
parsing, the Halting problem, undecidability, and NP-completeness.
|
Prerequisite(s): |
CIS*2750, CIS*3490 |
Department(s): |
School of Computer Science |
CIS*3190 Software for Legacy Systems W (0-0) [0.50] |
This course is an introduction to legacy software systems used in business, manufacturing, and engineering. Topics include
COBOL programming, mainframe systems, and integration of legacy systems with contemporary computing systems.
|
Offering(s): |
Offered through Distance Education format only. |
Prerequisite(s): |
CIS*2500 or work experience in a related field.
|
Department(s): |
School of Computer Science |
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 only covered at a functional level.
|
Prerequisite(s): |
CIS*3110 |
Department(s): |
School of Computer Science |
CIS*3250 Software Design III F (3-3) [0.50] |
This course will examine the historical development of design methodologies and working with legacy systems. It will include
an examination of programming paradigms and trends in software design from the past and present. The course has an applied
focus and will involve software design and development experiences in teams, a literacy component, and the use of software
development tools.
|
Prerequisite(s): |
CIS*2250, CIS*2500 |
Department(s): |
School of Computer Science |
CIS*3260 Software Design IV F (3-3) [0.50] |
This course is a study of software architectures and system design methodologies. This will include advanced techniques for
project management and experience evaluating software tools. The course has an applied focus and will involve software design
and development experiences in teams, a literacy component, and the use of software development tools.
|
Prerequisite(s): |
CIS*2750, CIS*3250, CIS*3760 |
Department(s): |
School of Computer Science |
CIS*3530 Data Base Systems and Concepts F (3-1) [0.50] |
This course is a study of data organization and data management principles with the perspective of analyzing applications
suitable for implementation using a DBMS. This will include an 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 will demonstrate concepts through project assignments.
|
Prerequisite(s): |
CIS*2520 |
Department(s): |
School of Computer Science |
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 three 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*3750 or CIS*3760), (CIS*2460 or STAT*2040)
|
Department(s): |
School of Computer Science |
CIS*3750 System Analysis and Design in Applications F,W (3-2) [0.75] |
This course is an introduction to the issues and techniques encountered in the design and construction of software systems,
focusing on 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 |
Department(s): |
School of Computer Science |
CIS*3760 Software Engineering F,W (3-2) [0.75] |
This course is an examination of the software engineering process, the production of reliable systems and 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*3750 |
Department(s): |
School of Computer Science |
CIS*4010 Cloud Computing W (3-0) [0.50] |
This course introduces students to fundamentals of cloud computing and software development for cloud platforms. It covers
topics such as virtualization, architecture of cloud systems, programming for the cloud, resource management, as well as privacy
and security issues.
|
Prerequisite(s): |
CIS*3110 |
Department(s): |
School of Computer Science |
CIS*4020 Data Science F (3-1) [0.50] |
Data Science focuses on extracting the important relations in data. The course is intended as a survey of the discipline and
focuses on applied computational methods for data analysis. Topics include algorithms, computational and machine learning
methods, software tools, and modeling, as they apply to the analysis of and discovery in big data.
|
Offering(s): |
Offered in odd-numbered years. |
Prerequisite(s): |
CIS*2750, MATH*1160, STAT*2040 |
Department(s): |
School of Computer Science |
CIS*4030 Mobile Computing W (3-0) [0.50] |
This course introduces students to mobile computing and mobile application development. It examines mobile technology, application
development, user interaction, data storage, and software tools.
|
Prerequisite(s): |
CIS*2030, CIS*2750, CIS*3110 |
Department(s): |
School of Computer Science |
CIS*4050 Digital Systems II F (3-1) [0.50] |
This course examines central processor architectures, control and microprogramming, memory systems, special architectures,
underlying support for special architectures, architectures suitable for very large scale integration.
|
Offering(s): |
Offered in even-numbered years. |
Prerequisite(s): |
CIS*3110, CIS*3120 |
Department(s): |
School of Computer Science |
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*3750 or CIS*3760 |
Department(s): |
School of Computer Science |
CIS*4250 Software Design V W (0-6) [0.50] |
This is a capstone course which applies the knowledge gained from the previous Software Design courses to a large team project.
The course has an applied focus and will involve software design and development experiences in teams, a literacy component,
and the use of software development tools.
|
Prerequisite(s): |
CIS*2750, CIS*3260 |
Department(s): |
School of Computer Science |
CIS*4300 Human Computer Interaction F (2-2) [0.50] |
This course examines the methods for user interface software design, including interface representations and testing. Topics
which will be studied include the evaluation and design of sample application systems, impacts of computer-based information
systems on individuals and organizations, implementation and testing tools, and planning of learning stages and design of
assistance subsystems.
|
Prerequisite(s): |
CIS*3110, (CIS*3750 or CIS*3760)
|
Department(s): |
School of Computer Science |
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 School of Computer
Science to determine what topic will be offered during specific semesters and which prerequisites, if any, are appropriate.
|
Restriction(s): |
Instructor consent required. |
Department(s): |
School of Computer Science |
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 School of Computer Science to determine
what topic will be offered during specific semesters and which prerequisites, if any, are appropriate.
|
Restriction(s): |
Instructor consent required. |
Department(s): |
School of Computer Science |
CIS*4510 Computer Security Foundations F (3-2) [0.50] |
This course covers basic concepts and practices in computer and network security. This includes topics such as fundamental
concepts of computer security, network security, threat landscape, threat intelligence and attack methods, ethical hacking
concepts and other hacking techniques, security technology and security policies, and cloud security.
|
Prerequisite(s): |
CIS*3210 |
Restriction(s): |
CIS*4110 |
Department(s): |
School of Computer Science |
CIS*4520 Introduction to Crytography W (3-2) [0.50] |
This course is an introduction to the foundations of modern cryptography, with an eye toward practical applications. Topics
covered include classical systems, information theory, mathematical background material, symmetric and asymmetric crypto-systems
and their cryptanalysis, hash functions and message authentication (MAC), provable security, key-exchange and management,
authentication and digital signatures. Importance of learning Cryptography in Digital Forensics will also be discussed
|
Prerequisite(s): |
CIS*3490 |
Restriction(s): |
CIS*4110 |
Department(s): |
School of Computer Science |
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, CIS*3110, CIS*3150 |
Department(s): |
School of Computer Science |
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.
|
Offering(s): |
Offered in odd-numbered years. |
Prerequisite(s): |
CIS*2750, CIS*3110, (CIS*2460 or STAT*2040)
|
Department(s): |
School of Computer Science |
CIS*4800 Computer Graphics W (3-1) [0.50] |
This course is an 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.
|
Offering(s): |
Offered in even-numbered years. |
Prerequisite(s): |
CIS*3110, (CIS*3750 or CIS*3760)
|
Department(s): |
School of Computer Science |
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.
|
Offering(s): |
Offered in odd-numbered years. |
Prerequisite(s): |
CIS*3110, (CIS*3750 or CIS*3760)
|
Department(s): |
School of Computer Science |
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. |
Department(s): |
School of Computer Science |
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. |
Department(s): |
School of Computer Science |