Dominic Petrut

Student

uOttawa

I'm Dominic Petrut, a bilingual third year Computer Science and Mathematics student at the University of Ottawa, with a 9.91 CGPA.

Projects

E-Hotel

A full-stack hotel booking application where users can browse, search, and book hotel rooms. Features include room filtering, availability checking, and booking management. Built using Java and Apache Tomcat for the backend, with a MySQL database. The frontend is simple, developped using basic HTML, CSS and Javascript.

Java SQL HTML/CSS

Personal Portfolio Website

A personal portfolio website built using Astro. The website has a clean, minimalist design, that is inteded to run smoothly on both desktop and mobile devices.

Astro Tailwind CSS JavaScript

Defenition and Propreties of Groups. Arithmetic Modulo n, permutations, cyclic groups. Cosets and Lagrange's theormem. Normal subgroups, homomorphisms, quotien groups, isomorphism theorems.

Propreties of the real numbers. Supremum and infimum, lim sup and lim inf. Sequences and convergence. The topology of Rn. Compactness, Heine-Borel. Continuity and Uniform Continuity. Derivatives, the Riemann integral, the fundamental theorem of calculus, improper integrals. Sequences and series of functions, uniform convergence. Fourier series.

Vector spaces, direct sums and complement of subspaces, linear maps, representation of linear maps by matrices, dual spaces, transpose mappings, multilinear mappings, determinants, inner products, orthogonal projections, the Gram-Schmidt algorithm. Eigenvalues and eigenvectors, diagonalization of symmetric matrices. Symmetric forms and Hermitian forms. Spectral Theorem. Isometries. The emphasis of this course is on proving all results.

Derivatives as linear maps, the chain rule. The Clairaut-Schwarz theorem. Taylor's theorem. Implicit function theorem and the invertible function theorem. Extrema, critical points. Lagrange multipliers. Double and triple integrals, Fubini's theorem, polar, spherical and cylindrical coordinates. Change of variables. Line integrals, Green's theorem. Parametric surfaces and surface integrals. Curl and Stokes's theorem, existence of potentials. Divergence and Gauss's theorem. Applications.

Propositional logic, proofs. Induction, invariants and state machines. Number theory. Modular arithmetic. Sums and asymptotics. Reccurences. Counting. Directed graphs, undirected graphs and connectivity. Ramsey numbers.

Probability axioms and their consequences. Conditional probability and independence. Random variables, distributions and densities, moments, sampling distributions. Weak law of large numbers, sums of independent random variables, moment generating functions, convergence concepts, the central limit theorem.

Introduction to the theory of statistical inference. Parametric point and interval estimation. Maximum likelihood estimation. Properties of estimators. Principles of hypothesis testing. Confidence intervals and tests for means and proportions (one and two sample). Introduction to linear models. Use of statistical software. ANOVA and Chi-square tests. (Formerly MAT2375)

Presentation of the major programming paradigms: Object-oriented, imperative, procedural, functional and logical programming. Solving the stable-matching problem with the Gale-Shapley algorithm in Java, Go, Prolog and Scheme. Note: course was taken in french.

The concept of abstract data types. Simple methods of complexity analysis. Trees. The search problem: balanced trees, binary-trees, hashing. Sorting. Graphs and simple graph algorithms: traversal, minimum spanning tree. Strings and pattern matching.

Principles of software engineering: requirments, design and testing. Review of object orientation. UML Class diagram and state machines. Design Patters, MVC. Testing with Junit. Advanced Java features. Multi-threaded programming, non-determinism.

Fundamental database concepts. Entity-Relationship modeling. Relational algebra and relational calculus. Relational databases. Database definition and manipulation using SQL. Embedded SQL. Functional dependencies and normalization. Introduction to physical database design. Indexing and Hashing. Design and implementation of a database application in a team project (I built the term project by myself).

Design a digital computer to execute a given instruction set. Design of digital computers. Register transfer and microoperations. Designing the instruction set, CPU and CPU control. Basic machine language programming. Using pipelines for CPU design. Designing the memory unit. Designing Input-Output subsystem.