This repository contains all of my university coding assignments and labs, organized by course and year. The assignments cover a wide range of topics, programming languages, and tools.
- COMP105 - Haskell:
- Assignments and projects utilizing the Haskell programming language to solve various problems, emphasizing functional programming concepts.
- COMP108 - Data Structures and Algorithms:
- Coursework focusing on the implementation and analysis of fundamental data structures (e.g., linked lists, trees, graphs) and algorithms (e.g., sorting, searching).
- COMP122 - Object-Oriented Programming (OOP):
- Assignments centered around principles and practices of object-oriented programming, including classes, inheritance, polymorphism, and design patterns.
- COMP124 - Computer Systems (Assembly):
- Projects and assignments involving low-level programming using assembly language to understand computer architecture and system-level programming.
- COMP201 - Software Engineering I:
- Initial coursework in software engineering principles, covering software development methodologies, project management, and software design.
- COMP202 - Complexity of Algorithms:
- Projects related to the analysis of algorithm complexity, including time and space complexity, Big O notation, and optimization techniques.
- COMP207 - Database Development:
- Assignments on database design, development, and management using SQL and MySQL workbench.
- COMP211 - Computer Networks:
- Networking assignments and projects, focusing on network protocols, architecture, and communication models.
- COMP232 - Cyber Security:
- Coursework focused on cybersecurity principles, including threat modeling, encryption, secure coding practices, and network security.
- COMP281 - Principles of C and Memory Management:
- C programming assignments with an emphasis on memory management, pointers, and low-level programming.
- COMP282 - Advanced Object-Oriented Concepts:
- Advanced topics in object-oriented programming, including design patterns, advanced inheritance concepts, and best practices.
- COMP228 - App Development:
- Projects involving the development of applications, potentially including mobile or web apps, emphasizing user experience and modern development frameworks.
- COMP315 - Cloud Computing for E-Commerce:
- Assignments focused on building a dynamic and reactive e-commerce front-end website. The coursework involves:
- JavaScript for Data Cleaning: Implementing a set of functions to perform data cleaning operations on a dataset, showcasing proficiency in JavaScript.
- TypeScript and React for E-Commerce Front-End: Expanding a provided skeleton program to develop a dynamic and reactive e-commerce front-end website using TypeScript and React, enhancing user experience and responsiveness.
- Assignments focused on building a dynamic and reactive e-commerce front-end website. The coursework involves:
- COMP319 - Software Engineering II:
- Design a class structure for a Space Invaders game, implementing object-oriented techniques and patterns such as Factory, Chain of Responsibility, Singleton, Open-Closed Principle, and Single Responsibility Principle. The implementation includes creating a model-only version of the game without rendering or gameplay, focusing on design quality.
- COMP329 - Autonomous Mobile Robotics:
- Implement obstacle avoidance algorithms (Bug 1 and Bug 2) for a robot to navigate from a start location to an end location within a specified environment. The project includes developing a robot controller, avoiding obstacles dynamically, tracking travel distance, and documenting the approach and performance in a report.