A code repository and study notes for the UBCx Software Development MicroMasters course: How to Code - Complex Data
Welcome to this repository, a treasure trove featuring meticulously documented code files and in-depth study notes, handpicked to capture the content taught in How to Code: Complex Data. This collection stands as a testament to my successful completion of this course, showcasing the progression from fundamental techniques covered in How to Code: Simple Data to the sophisticated nuances of complex data and control structures. This repository is not just a compilation of knowledge but a living proof of dedication and accomplishment.
Although the installation of this repository is not required, it offers a convenient way to access and utilize its content on your local machine. All the study notes and code files are easily accessible and can be read directly through GitHub. However, if you'd rather have a local setup, follow the steps outlined below for a seamless installation process:
-
Download Racket: If you haven't installed Racket yet, download and install it from the official Racket website.
-
Clone or Download the Repository:
- If you have Git installed, clone this repository to your local machine using the following command:
git clone https://github.com/squxq/How-to-Code-Complex-Data.git
- If you don't have Git installed:
- Click on the "Code" button above, and then select "Download ZIP."
- Extract the downloaded ZIP file to a location of your choice.
- If you have Git installed, clone this repository to your local machine using the following command:
-
Navigate to the Repository Folder: Change your directory to the location of the repository folder:
cd How-to-Code-Complex-Data
You are welcome to browse and utilize this repository, whether you're seeking a quick reference, enhancing your understanding, or embarking on a deeper exploration of How to Code: Complex Data.
If you are currently enrolled in the How to Code: Complex Data course, it is encouraged to use this repository responsibly. Please be mindful of academic integrity and adhere to the policies of your educational institution. The resources provided here are intended to complement your learning experience; they are not meant to take the place of official course materials.
It's crucial to note that the study notes presented here are a reflection of my personal understanding of the course material. While their goal is to provide a thorough understanding of the fundamental concepts covered, they may not capture every detail. As such, consider them supplementary materials rather than a substitute for the official course documentation or textbooks.
This repository is organized to provide a hierarchical, structural and intuitive arrangement of its content for easy navigation, optimal accessibility and understanding. Here's an overview of the main directories and files:
- /modules: This directory contains a comprehensive collection of code files and study notes corresponding to the various modules covered in the course. Each module is organized into its own subdirectory.
- /week-xx: Each subdirectory, like this one comprises the following elements:
- NOTES.md: This markdown file contains study notes specific to the module.
- /lecture-folder: Each module subdirectory includes lecture folders housing essential lecture materials, such as files and images. If the lecture had a corresponding problem set, you'll find individual files within these folders, each addressing a specific problem.
- /week-xx: Each subdirectory, like this one comprises the following elements:
- /final-project: This directory holds the files related to the final project of the course.
- part-01.rkt: The Racket file for the first part of the final project - design of a social network similar to Twitter called Chirper.
- part-02.rkt: The Racket file for the second part of the final project - design of a program to automate the creation of teaching assistant schedules.
- NOTES.md: A consolidated markdown file that serves as a central hub for accessing study notes from the entire course. It's a comprehensive document resulting from the grouping of individual module notes and the final project.
Note on Racket File Organization: The Racket files in the entire repository are, predominantly available in two versions: one with images (.rkt) optimized for enhanced readability in DrRacket, and another without images (.no-image.rkt) designed for compatibility with other text editors and GitHub. This dual-organization ensures flexibility in accessing and understanding the code based on the user's preferred development environment. For an optimal viewing experience and to take full advantage of the included features, it is recommended to read the .rkt files when using DrRacket.
I would like to express my sincere gratitude to Professor Gregor Kiczales, Erika Thompson and the entire How to Code Team, for their invaluable guidance throughout the course and their tireless efforts in creating a dynamic and engaging learning environment.
This repository is licensed under the MIT License. You are welcome to use, modify, and distribute the code in this repository, keeping in mind the license terms, but please provide attribution by linking back to this repository.