This repository, along with two others, contains the code I wrote for the labs of Systems Programming (Winter 2022) at Dal, imported from Dal GitLab.
As a second-year course, this course is notorious among CS students at Dal and is regarded as one of the most challenging courses. In the semester prior to my enrollment, the average grade for this course was an F. Even in the semester I took it, about half of the students dropped out. Almost everyone I know in CS has dropped it at least once, typically taking 2-3 attempts to complete this required course.
However, I was able to achieve an A+ in this course, with 💯 in all the labs.
One of the main reasons why this course is so hard is its lab component 😈
Each week, we were required to write code in C based on the instructions provided by the lead TA. We had to learn everything on our own and complete the code according to the given requirements. The assessment was based on CI/CD pipelines that automatically checked if the output results and expected values matched. To receive a full grade, all jobs in the pipelines had to pass, and any failure would result in a grade of 0. Some tests had thousands of expected values that needed to be matched, and even if 99.99% matched, it would still be graded as 0, with no partial grading. The labs accounted for 45% of the total course grade, with a total of 10 labs.
Even though all my friends hate this course (and our lead TA), I love it. It has made me a better programmer than I was. I chose to import this repository from Dal GitLab and store it here because I might not have access to Dal GitLab after graduation. However, I wanted to commemorate this meaningful experience. Looking back in a few years and seeing the code I wrote as a young and inexperienced programmer, along with the tough yet enjoyable learning process I went through, will surely be fascinating.
The repository represents a weekly lab.
CI/
: Folder containing the pipeline scripts and test cases used for evaluationLab8/
: My implementation of the lab assignment in C.gitlab-ci.yml
: CI/CD pipeline for assessments using automated build and testInstruction.md
: Detailed instruction provided by the lead TA
Code/files written by me in this lab: Lab8/