Félix
 
Mainville
.

Education

  • University of Guelph logo
    2023-2028 | (Currently: Year 3)

    Bachelor of Computing: CO-OP Computer Science

    University of Guelph

  • École Secondaire Catholique de Paincourt logo
    2019-2023

    High School Diploma

    École Secondaire Catholique de Paincourt

Notable Courses

CIS1300

Programming I

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.

CIS2500

Intermediate Programming

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.

CIS1910

Discrete Structures in Computing I

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.

CIS2910

Discrete Structures in Computing II

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.

CIS1050

Web Design and Development (Elective)

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.

CIS2030

Structure and Application of Microcomputers

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.

CIS2520

Data Structures

This course is a study of basic data structures, such as lists, stacks, queues, trees, and tables. Topics that are examined include abstract data types, sequential and linked representations, and an introduction to algorithm analysis; various traversal, search, insertion, removal, and sorting algorithms.

CIS2430

Object Oriented Programming

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.

CIS2750

Software Systems Development and Integration

This course introduces techniques and tools used in the development of large interactive software systems. Students learn methods for constructing modules in different programming languages, developing software to specifications, organizing and constructing modular systems, and working with permanent data storage. Students also explore introductory database management tools.

CIS3110

Operating Systems

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.

CIS3490

Analysis and Design of Computer Algorithms

The design and analysis of efficient computer algorithms are studied. Topics include: standard methodologies, asymptotic behaviour, optimality, lower bounds, implementation considerations, graph algorithms, matrix computations (e.g. Strassens method), NP-completeness.