Computing and Information Science (CIS)

CIS*1050  Web Design and Development  Winter and Summer  [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.  
Restriction(s): This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations.  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*1200  Introduction to Computing  Fall and Winter  [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 for students who wish for 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  
Location(s): Guelph  
CIS*1250  Software Design I  Fall Only  (LEC: 3, LAB: 2)  [0.50]  
This is an introductory course that 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.SENG and BCOMP.SENG:C  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*1300  Programming  Fall Only  (LEC: 3, LAB: 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  
Location(s): Guelph  
CIS*1500  Introduction to Programming  Fall and Winter  (LEC: 3, LAB: 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.
Restriction(s): CIS*1300. Not available to students registered in a BCOMP degree, a CIS minor, BENG.CENG or BENG.ESC. This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations.Department(s):School of Computer Science  
Location(s): Guelph  
CIS*1910  Discrete Structures in Computing I  Fall Only  (LEC: 3, LAB: 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.
Restriction(s): This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations.  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*2030  Structure and Application of Microcomputers  Fall Only  (LEC: 3, LAB: 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  
Location(s): Guelph  
CIS*2170  User Interface Design  Winter Only  (LEC: 3, LAB: 2)  [0.50]  
This course is a practical introduction to the area of user interface design. 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  
Restriction(s): This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations.  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*2250  Software Design II  Fall Only  (LEC: 3, LAB: 2)  [0.50]  
This course focuses on evaluating software designs and tools, emphasizing usability, functionality, and ethical considerations. Students will apply best practices in software design, development, and peer code review within collaborative team settings. Static modeling techniques and project management tools are used to support effective communication and design documentation. Students will evaluate software designs with a focus on usability and functionality, ensuring that design choices meet user needs and system goals.
Prerequisite(s): CIS*1250, CIS*2500  
Restriction(s): Restricted to BCOMP.SENG majors.  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*2430  Object Oriented Programming  Fall Only  (LEC: 3, LAB: 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  
Location(s): Guelph  
CIS*2500  Intermediate Programming  Winter Only  (LEC: 3, LAB: 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  
Restriction(s): This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*2520  Data Structures  Fall Only  (LEC: 3, LAB: 2)  [0.50]  
This course is a study of basic data structures, such as lists, stacks, queues, trees, and tables. Topics that 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 or ENGG*1420), (1 of CIS*1910, ENGG*1500, MATH*2000)  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*2750  Software Systems Development and Integration  Winter and Summer  (LEC: 3, LAB: 2)  [0.50]  
This course introduces the development and integration of modular software systems with an emphasis on meeting specifications. Students will explore data storage solutions, quality assurance, and systematic testing techniques using modern frameworks and tools. The course also teaches skills needed for integrating software components written in multiple programming languages to create cohesive systems.
Prerequisite(s): CIS*2520, (CIS*2430 or ENGG*1420)  
Restriction(s): This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations.  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*2910  Discrete Structures in Computing II  Winter Only  (LEC: 3, LAB: 2)  [0.50]  
This course is a further introduction to discrete structures and formal methodologies used in computer science, including sequences, summations, recursion, combinatorics, discrete probability, and graph theory.
Prerequisite(s): (CIS*1300 or ENGG*1410), (CIS*1910 or ENGG*1500)  
Restriction(s): This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations.  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*3000  Social Implications of Computing  Fall Only  (LEC: 4)  [0.50]  
This course explores the social, ethical, and legal dimensions of modern computing. Through seminars, case studies, and critical discussions, students will examine the human impact of computing technologies and the responsibilities of professionals in computer science and software engineering.
Prerequisite(s): 4.00 credits in CIS  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*3050  Systems Programming  Fall Only  (LEC: 3, LAB: 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*2750, CIS*3110  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*3090  Parallel Programming  Fall Only  (LEC: 3, LAB: 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  
Location(s): Guelph  
CIS*3110  Operating Systems I  Winter and Summer  (LEC: 3, LAB: 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  
Location(s): Guelph  
CIS*3120  Digital Systems I  Winter Only  (LEC: 3, LAB: 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  
Location(s): Guelph  
CIS*3130  System Modeling and Simulation  Fall Only  (LEC: 3, LAB: 2)  [0.50]  
This course examines discrete simulation based on event queues and random number generation. The topics covered include discrete-event simulation models, random number generators, generating random variates and processes, input modeling, model verification and validation. Application areas such as manufacturing, services, and computing are highlighted.
Prerequisite(s): CIS*2500, STAT*2040  
Restriction(s): CIS*2460  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*3150  Theory of Computation  Fall Only  (LEC: 3)  [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*3490  
Restriction(s): This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*3190  Software for Legacy Systems  Winter Only  [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  
Location(s): Guelph  
CIS*3210  Computer Networks  Fall Only  (LEC: 3, LAB: 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  
Location(s): Guelph  
CIS*3250  Software Design III  Fall Only  (LEC: 3, LAB: 3)  [0.50]  
This course focuses on the maintenance and evolution of software systems, emphasizing dynamic modeling techniques to document software behaviour and guide system changes. Students will engage in reverse engineering, release planning, and change management processes. Collaboration and teamwork are integral to the course. The use of version control is explored as a support for collaboration and software evolution.
Prerequisite(s): CIS*2250, CIS*2500  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*3260  Software Design IV  Fall Only  (LEC: 3, LAB: 3)  [0.50]  
This course explores advanced software architectures, design patterns, and modeling methodologies to create scalable and maintainable systems. Students will analyze trade-offs in architectural decisions, evaluate tools and frameworks, and collaborate on documenting and implementing software designs. Additionally, students will develop skills in implementing designs created by others. Advanced project management techniques support effective planning and execution of complex designs.
Prerequisite(s): CIS*2750, CIS*3250, CIS*3760  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*3490  Analysis and Design of Computer Algorithms  Winter and Summer  (LEC: 3, LAB: 2)  [0.50]  
The design and analysis of efficient computer algorithms are studied. Topics that will be studied include: standard methodologies, asymptotic behaviour, optimality, lower bounds, implementation considerations, graph algorithms, matrix computations (e.g. Strassen's method), NP-completeness.
Prerequisite(s): [CIS*1910 or (CIS*2910 and ENGG*1500)], CIS*2520  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*3530  Database Systems and Concepts  Fall Only  (LEC: 3, LAB: 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 database models, query specification methods, and query processing techniques. An overview of several related issues, including concurrency control, security, integrity, and recovery, will also be provided. Students will demonstrate concepts through project assignments.
Prerequisite(s): CIS*2520  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*3700  Introduction to Intelligent Systems  Winter Only  (LEC: 3, LAB: 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*3490, MATH*1160, STAT*2040  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*3750  System Analysis and Design in Applications  Fall and Winter  (LEC: 3, LAB: 2)  [0.50]  
This course prepares students for advanced software engineering by emphasizing system analysis, requirements gathering, and design. Students will develop structured models, practice test-driven development, and engage in team-based projects. The course introduces ethical considerations and societal impacts in software development, laying the foundation for collaborative work in complex systems.
Prerequisite(s): 9.00 credits including CIS*2750  
Restriction(s): This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations.  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*3760  Software Engineering  Fall and Winter  (LEC: 3, LAB: 2)  [0.50]  
This course provides a comprehensive overview of the software engineering process, focusing on Agile methodologies, structured modeling, and DevOps practices. Students will engage in the design, implementation, testing, and deployment of complex systems, integrating modern tools, automated testing, and collaborative techniques to enhance software quality and reliability.
Prerequisite(s): CIS*2750, CIS*3110, (CIS*3250 or CIS*3750)  
Restriction(s): This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations.  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*4010  Cloud Computing  Winter Only  (LEC: 3)  [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  
Location(s): Guelph  
CIS*4020  Data Science  Fall Only  (LEC: 3, LAB: 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  
Location(s): Guelph  
CIS*4030  Mobile Computing  Winter Only  (LEC: 3)  [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*3110, (CIS*3250 or CIS*3750)  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*4150  Software Reliability and Testing  Fall Only  (LEC: 2, LAB: 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, functional testing, structural testing, unit testing, system testing, and integration testing will be explained.
Prerequisite(s): 1 of CIS*3250, CIS*3750, ENGG*4450  
Restriction(s): This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations.  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*4250  Software Design V  Winter Only  (LAB: 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*3260  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*4300  Human Computer Interaction  Fall Only  (LEC: 2, LAB: 2)  [0.50]  
This course examines the methods for user interface software design, including interface representations and testing. Topics that 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, (1 of CIS*3750, CIS*3760, ENGG*4450)  
Restriction(s): This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations.  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*4450  Special Topics in Information Science  Unspecified  (LEC: 3, LAB: 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  
Location(s): Guelph  
CIS*4500  Special Topics in Computing Science  Unspecified  (LEC: 3, LAB: 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  
Location(s): Guelph  
CIS*4510  Computer Security Foundations  Fall Only  (LEC: 3, LAB: 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  
Location(s): Guelph  
CIS*4520  Introduction to Cryptography  Winter Only  (LEC: 3, LAB: 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  
Location(s): Guelph  
CIS*4650  Compilers  Winter Only  (LEC: 3, LAB: 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  
Restriction(s): This is a Priority Access Course. Enrolment may be restricted to particular programs or specializations.  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*4720  Image Processing and Vision  Winter Only  (LEC: 3, LAB: 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, STAT*2040  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*4780  Computational Intelligence  Winter Only  (LEC: 3, LAB: 1)  [0.50]  
This course introduces concepts of soft computing: modelling uncertainty, granular computing, neurocomputing, evolutionary computing, probabilistic computing and soft computing for software engineering.
Offering(s): Offered in odd-numbered years.  
Prerequisite(s): CIS*3700 or (CIS*3490, MATH*1210, STAT*2050)  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*4800  Computer Graphics  Winter Only  (LEC: 3, LAB: 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, MATH*1160, (CIS*3250 or CIS*3750)  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*4820  Game Programming  Winter Only  (LEC: 3, LAB: 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*3250 or CIS*3750)  
Department(s): School of Computer Science  
Location(s): Guelph  
CIS*4900  Computer Science Project  Summer, Fall, and Winter  (LAB: 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  
Location(s): Guelph  
CIS*4910  Computer Science Thesis  Summer, Fall, and Winter  (LAB: 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 their 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  
Location(s): Guelph