Education
- 2023-2028 | (Currently: Year 3)
Bachelor of Computing: CO-OP Computer Science
University of Guelph
- 2019-2023
High School Diploma
École Secondaire Catholique de Paincourt
Notable Courses
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.