ā¹ļø Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 1.2 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://medium.com/@linda_lang/my-honest-utm-cs-course-review-de20d6fcae8b |
| Last Crawled | 2026-03-09 14:13:15 (1 month ago) |
| First Indexed | not set |
| HTTP Status Code | 200 |
| Meta Title | My Honest UTM CS Course Review & Tips | by Linda | Medium |
| Meta Description | My Honest UTM CS Course Review & Tips While enjoying my break after a busy semester, It is time to chill a little bit after another second-semester storm hits me (haha! I actually miss school). Here ⦠|
| Meta Canonical | null |
| Boilerpipe Text | 9 min read
Dec 28, 2024
--
Press enter or click to view image in full size
UTM is always so beautifulā¦
While enjoying my break after a busy semester, It is time to chill a little bit after another second-semester storm hits me (haha! I actually miss school).
Here comes my honest UTM CS course review - of course, donāt totally trust me on thisā¦
I will start with my first-year courses and move to the third year. I will also share some personal tips on surviving my courses and university life.
A little background about me: I am currently a third-year Computer Science Specialist studying at the University of Toronto Mississauga :)
First Year
How I felt about first yearā¦
I took CSC108 and CSC148 during first year, as both courses were prerequisites for the Computer Science program. The first semester was fun for me, but the second semester was stressful as I was worried a lot about making POST (check
website
for more info).
CSC108 (Introduction to Computer Programming)
The course assumed that you donāt have any knowledge of programming, and began with the foundation of Python, but very fast pace (I remember we went into for loop in the second or third week). Overall, This course was really fun, and I met one of my best friends in the course.
CSC148 (Introduction to Computer Science)
The second semester was much tougher for me. CSC148 was more difficult for me even though I had some foundations in programming. You will learn a lot more on fundamental programming concepts such as OOP and different data structures like arrays, linked lists, hashmaps, trees, runtime complexity, etc. CSC148 was tough but It helped me to grasp a solid foundation in programming and understand If I truly want to pursue CS in the future.
My tips/thoughts for the first year:
Learn some programming before your first year starts
If you are free over the summer before your first year, consider learning basic Python programming on Udemy, YouTube, and any platform you want. This will give you a good foundation going into CSC108 and better prepare you for CSC148 to make POST. For CSC148, I recommend looking through some data structure implementation (array, linked list, hashmap).
The above tip is not true for everyone. I know some people who didnāt have any experience in programming still did well in the course and made it to POST. I tend to be a slow learner, so I know I have to dedicate a lot of time to understand the course contents.
In summary ā make sure you know your pace.
Having good preparation over the summer will help you do better in the first-year CS courses.
2.
Consider Backup Plans
If you are concerned about making it to POST,
I highly recommend you take MAT223 (Linear Algebra)
in the second semester so you can apply for the
Statistics
program , and then attempt CSC148 in the second year (use
SAC
to override your GPA
) if needed. You can also consider
GIS major
(some GIS courses can fulfill CS credit) or
Math major
as they are both good combination with CS.
3.
Give your Best Shot
Make sure you are on time with your assignment and understand all the concepts clearly. CSC148 was the course I realized that I needed to be accountable for my studying and make sure that I understood the lectures well.
This might sound cliche, but this is a lesson that always keeps with me: If you want something so badly, you need to keep pushing yourself to achieve what you want in your life.
Give your best shot, donāt give up. A bad assignment or a midterm will not ruin your chance of making it to POST (I did horribly on my midtermā¦).
I understand you might feel stressed and uncertain about POST, but just keep pushing yourself and give your best shot. Not till the finish line you never know how far you can get, but
the knowledge, grit, and persistence you have gained along the way are amazing lessons that will carry you along your university journey.
Second Year
Press enter or click to view image in full size
Feels like a breezeā¦
The second year was busy but more of a breeze after surviving the first year. My mind has shifted from survival mode to a learning mode. My second-year CS courses consisted of
CSC207 (Software Design), CSC236 (Theory of Computation), CSC258 (Computer Architecture), CSC209 (System Programming), and CSC263 (Data Structure and Analysis)
.
CSC207 (Software Design)
CSC207 was chill for me. The course covered important OOP concepts, Java programming, UML, Design Patterns, and Git. We also had the opportunity to work in a team of 4 to create a Java game project. My favorite part was learning how to structure our code using Design Patterns (observer pattern, factory pattern, etc). Overall, this course was the easiest CS course for me in my second year, and it was super practical and fun to learn.
CSC236 (Theory of Computation)
CSC236 was not too fun for me :/ Partially because I was not the strongest in the theoretical side of CS. CSC236 was a continuation of
MAT102 (Intro to Mathematical Proof)
+ CS theory, with focus on induction, recurrence, and later Finite State Machines. I did terribly in my midterm (worth 30%), but I was able to recover my grade since there were a lot of worksheet bonuses. If you enjoy math + CS theory, this might be an interesting course for you.
CSC258 (Computer Architecture)
In CSC258, I learned about computer architecture through an online stimulation program (I remember we used
Ripes
). The course was practical as it will help you to understand the hardware side of Computer Science such as CPU execution phases. There were a lot of readings, and also a project that we needed to write in compiler code. Overall, I think the course was manageable as long as you keep up with the lecture content.
CSC209 (Software Tools and Systems Programming)
CSC209 was super practical for me. I learned basic C programming and other interesting topics such as processes, system calls, signals, and Linux commands. There were also some cool projects to work on such as building our own terminal. I would not say course was easy as C programming was difficult to grasp initially, but I learned a lot from it.
CSC263 (Data Structure and Analysis)
In CSC263, you will learn more advanced CS topics such as heap, amortized analysis, Minimum Spanning Tree, and some graph algorithms such as Kruscal and Primās algorithm. There were some fun topics to learn and good for preparing for coding interviews. Since I am not the strongest in theory, I would say this is probably the most difficult CS course I took for my second year.
My tips/thoughts for the Second year:
Learn & Relax
My tips for the second year were to try to relax and do your best in the courses. You should not care too much about grades anymore. Just focus on learning, thinking about what courses you like the most, and consider your career interest.
2.
Applying for an internship/preparing for an interview
Consider taking 4 courses in the winter semester to apply for an internship and prepare for interviews. There are plenty of resources on
CLNX
and you can book resume critiques and networking sessions to prepare you for interviews and career goals. Thinking about crafting your resume, and having experience in interviews will set you up for second year and future job opportunities.
Third Year (First semester)
Roaller coaster emotionā¦lol
5 courses + work ā it has been a crazy semester for me, though I enjoyed the CS courses a lot :)
This semester I took
CSC347 (Information Security), CSC369 (Intro to Operating Systems), CSC384 (Intro to Artificial Inteligence), CSC373(Algorithm Design & Analysis)
, and a Statistic course.
I gained a lot of knowledge by taking 4 CS courses, which further helped to determine what career path I would like to pursue in the future (probably security-related!). If you have the capacity, consider taking 4 courses that will be good for preparing for job interviews and health.
CSC347 (Information Security)
One of my favorite courses this semester! The course had no final and was super practical and fun to learn. You will gain a lot of exposure to various tools and do some hacks such as buffer overruns, smash the stack, SQL injection, and the CIA principles. I highly recommend you take it if you like to explore security, and you like to learn multiple things simultaneously.
CSC369 (Operating System)
My second favorite course this semester! This is a continuation of CSC209. The first 4 weeks are a recap of CSC209, later you will learn about synchronization, file system, disk reliability, etc. The assignments were challenging but super practical and great to put on a resume for job interviews. I highly recommend you taking this course as it is one of the most important courses for your CS degree.
CSC384 (Intro to Artificial Inteligence)
CSC384 was more of a theoretical course consisting of interesting topics such as tree search, minimax, ARC, and probability. It was not an easy course (assignments are code-heavy), but manageable if you kept up with the lecture content. It is also good to learn some AI concepts since it is a hot topic now.
CSC373(Algorithm Design & Analysis)
CSC373 had some interesting topics. This is a continuation of CSC263. It was a practical course combining some Leetcode questions and fun topics to learn such as greedy algorithms, dynamic programming, flow networks, and P vs NP problems.
My tips/thoughts for the Third year:
First of all, I am not going take 5 courses again :/
Time Management
Time management has became crucial for me. Third year I started to focus on managing my time better. Besides managing school and work, I also improved my learn strategies, which has improved my grades a lot. It was tough for sure, but I feel accomplished in surviving this semester.
2.
Prioritize Health
This year I have neglected my health a lot, and I can feel the exhaustion during the break. This semester I stopped exercising, drank way too much coffee, and slept late at night, and I felt worse both physically and mentally.
Small habits matter. So no matter how stressed you are about courses and other personal issues, do not compromise your health, because having good health is what makes us feel good. This is something that I am still working on, but I hope I focus more on my wellness for the new year, and you should too!
3.
Making Hard Choices
This year I also have to make some hard decisions in choosing things I wanted to do versus my commitments. I had to make some sacrifices such as spending less time with friends(I hang out with my friend in class!) to take responsibility for my commitment.
This is probably one of the most important lesson that I realized in this semester:
I cannot have everything I want in life
. Even though sometimes I still feel sad about giving up some awesome opportunities, I know it is good for me.
I know that making these tough choices, choosing the thing that matters to me the most will help me to achieve what I want to accomplish in my life.
Close up
Press enter or click to view image in full size
Create Your Life
Excitement, anger, disappointment, confusion, and hope ā I do feel more lost this semester. I donāt know what is best for me, and sometimes I doubt myself if I am taking the right path in my journey.
Whether you are an incoming UTM CS student, or in your first year, second year, third year, or you are going to graduate, Here is one of my favorite quotes from
Life of Riza
that I want to share with all of you.
This video reminds me that It is okay to feel lost, but just to keep exploring what you want in your life because:
You have to take risks. It is the only way to find out who you are, and what you want to do with your time on earth.
And even if we fail, what better way is there to live?
Citation:
SpongeDivers Music. āSpongeBob Music: Hawaiian Breeze (Remastered).ā
YouTube
, YouTube,
www.youtube.com/watch?v=fJNov9JApC4.
āHappy and Sad at the Same Time.ā
PicturePunches
,
www.picturepunches.com/meme/313692.
Parra, Oscar. āA First-Generation Studentās Computer Science Survival Story.ā
LinkedIn
, 9 Mar. 2018,
www.linkedin.com/pulse/first-generation-students-computer-science-survival-story-oscar-parra/.
Oldham, Paige. ā10 Steps to Create Your Amazing Life.ā
Simple Mindfulness
, 5 May 2018,
www.simplemindfulness.com/amazing-life/.
āFor Those Waiting for Life to Happen.ā
YouTube
, Life of Riza,
www.youtube.com/watch?v=ij84DoCEmdI. |
| Markdown | [Sitemap](https://medium.com/sitemap/sitemap.xml)
[Open in app](https://play.google.com/store/apps/details?id=com.medium.reader&referrer=utm_source%3DmobileNavBar&source=post_page---top_nav_layout_nav-----------------------------------------)
Sign up
[Sign in](https://medium.com/m/signin?operation=login&redirect=https%3A%2F%2Fmedium.com%2F%40linda_lang%2Fmy-honest-utm-cs-course-review-de20d6fcae8b&source=post_page---top_nav_layout_nav-----------------------global_nav------------------)
[Medium Logo](https://medium.com/?source=post_page---top_nav_layout_nav-----------------------------------------)
Get app
[Write](https://medium.com/m/signin?operation=register&redirect=https%3A%2F%2Fmedium.com%2Fnew-story&source=---top_nav_layout_nav-----------------------new_post_topnav------------------)
[Search](https://medium.com/search?source=post_page---top_nav_layout_nav-----------------------------------------)
Sign up
[Sign in](https://medium.com/m/signin?operation=login&redirect=https%3A%2F%2Fmedium.com%2F%40linda_lang%2Fmy-honest-utm-cs-course-review-de20d6fcae8b&source=post_page---top_nav_layout_nav-----------------------global_nav------------------)

# My Honest UTM CS Course Review & Tips
[](https://medium.com/@linda_lang?source=post_page---byline--de20d6fcae8b---------------------------------------)
[Linda](https://medium.com/@linda_lang?source=post_page---byline--de20d6fcae8b---------------------------------------)
9 min read
Ā·
Dec 28, 2024
\--
Listen
Share
Press enter or click to view image in full size
![]()
UTM is always so beautifulā¦
While enjoying my break after a busy semester, It is time to chill a little bit after another second-semester storm hits me (haha! I actually miss school).
Here comes my honest UTM CS course review - of course, donāt totally trust me on thisā¦
I will start with my first-year courses and move to the third year. I will also share some personal tips on surviving my courses and university life.
A little background about me: I am currently a third-year Computer Science Specialist studying at the University of Toronto Mississauga :)
## **First Year**
![]()
How I felt about first yearā¦
I took CSC108 and CSC148 during first year, as both courses were prerequisites for the Computer Science program. The first semester was fun for me, but the second semester was stressful as I was worried a lot about making POST (check [website](https://www.utm.utoronto.ca/math-cs-stats/undergraduate-students/programs/computer-science) for more info).
### CSC108 (Introduction to Computer Programming)
The course assumed that you donāt have any knowledge of programming, and began with the foundation of Python, but very fast pace (I remember we went into for loop in the second or third week). Overall, This course was really fun, and I met one of my best friends in the course.
### CSC148 (Introduction to Computer Science)
The second semester was much tougher for me. CSC148 was more difficult for me even though I had some foundations in programming. You will learn a lot more on fundamental programming concepts such as OOP and different data structures like arrays, linked lists, hashmaps, trees, runtime complexity, etc. CSC148 was tough but It helped me to grasp a solid foundation in programming and understand If I truly want to pursue CS in the future.
### My tips/thoughts for the first year:
1. **Learn some programming before your first year starts**
If you are free over the summer before your first year, consider learning basic Python programming on Udemy, YouTube, and any platform you want. This will give you a good foundation going into CSC108 and better prepare you for CSC148 to make POST. For CSC148, I recommend looking through some data structure implementation (array, linked list, hashmap).
The above tip is not true for everyone. I know some people who didnāt have any experience in programming still did well in the course and made it to POST. I tend to be a slow learner, so I know I have to dedicate a lot of time to understand the course contents.
**In summary ā make sure you know your pace.** Having good preparation over the summer will help you do better in the first-year CS courses.
2\. **Consider Backup Plans**
If you are concerned about making it to POST, **I highly recommend you take MAT223 (Linear Algebra)** in the second semester so you can apply for the [**Statistics**](https://utm.calendar.utoronto.ca/section/Statistics,-Applied) program , and then attempt CSC148 in the second year (use [**SAC**](https://www.utm.utoronto.ca/registrar/enrolment/manage/sac) **to override your GPA**) if needed. You can also consider [GIS major](https://www.utm.utoronto.ca/geography/undergraduate/geographical-information-systems/gis-major-science) (some GIS courses can fulfill CS credit) or [Math major](https://utm.calendar.utoronto.ca/section/Mathematical-Sciences) as they are both good combination with CS.
3\. **Give your Best Shot**
Make sure you are on time with your assignment and understand all the concepts clearly. CSC148 was the course I realized that I needed to be accountable for my studying and make sure that I understood the lectures well.
This might sound cliche, but this is a lesson that always keeps with me: If you want something so badly, you need to keep pushing yourself to achieve what you want in your life.
Give your best shot, donāt give up. A bad assignment or a midterm will not ruin your chance of making it to POST (I did horribly on my midtermā¦).
I understand you might feel stressed and uncertain about POST, but just keep pushing yourself and give your best shot. Not till the finish line you never know how far you can get, but **the knowledge, grit, and persistence you have gained along the way are amazing lessons that will carry you along your university journey.**
## Second Year
Press enter or click to view image in full size
![]()
Feels like a breezeā¦
The second year was busy but more of a breeze after surviving the first year. My mind has shifted from survival mode to a learning mode. My second-year CS courses consisted of **CSC207 (Software Design), CSC236 (Theory of Computation), CSC258 (Computer Architecture), CSC209 (System Programming), and CSC263 (Data Structure and Analysis)**.
### CSC207 (Software Design)
CSC207 was chill for me. The course covered important OOP concepts, Java programming, UML, Design Patterns, and Git. We also had the opportunity to work in a team of 4 to create a Java game project. My favorite part was learning how to structure our code using Design Patterns (observer pattern, factory pattern, etc). Overall, this course was the easiest CS course for me in my second year, and it was super practical and fun to learn.
### CSC236 (Theory of Computation)
CSC236 was not too fun for me :/ Partially because I was not the strongest in the theoretical side of CS. CSC236 was a continuation of [**MAT102 (Intro to Mathematical Proof)**](https://utm.calendar.utoronto.ca/course/mat102h5) \+ CS theory, with focus on induction, recurrence, and later Finite State Machines. I did terribly in my midterm (worth 30%), but I was able to recover my grade since there were a lot of worksheet bonuses. If you enjoy math + CS theory, this might be an interesting course for you.
### CSC258 (Computer Architecture)
In CSC258, I learned about computer architecture through an online stimulation program (I remember we used **Ripes**). The course was practical as it will help you to understand the hardware side of Computer Science such as CPU execution phases. There were a lot of readings, and also a project that we needed to write in compiler code. Overall, I think the course was manageable as long as you keep up with the lecture content.
### CSC209 (Software Tools and Systems Programming)
CSC209 was super practical for me. I learned basic C programming and other interesting topics such as processes, system calls, signals, and Linux commands. There were also some cool projects to work on such as building our own terminal. I would not say course was easy as C programming was difficult to grasp initially, but I learned a lot from it.
### CSC263 (Data Structure and Analysis)
In CSC263, you will learn more advanced CS topics such as heap, amortized analysis, Minimum Spanning Tree, and some graph algorithms such as Kruscal and Primās algorithm. There were some fun topics to learn and good for preparing for coding interviews. Since I am not the strongest in theory, I would say this is probably the most difficult CS course I took for my second year.
### My tips/thoughts for the Second year:
1. **Learn & Relax**
My tips for the second year were to try to relax and do your best in the courses. You should not care too much about grades anymore. Just focus on learning, thinking about what courses you like the most, and consider your career interest.
2\. **Applying for an internship/preparing for an interview**
Consider taking 4 courses in the winter semester to apply for an internship and prepare for interviews. There are plenty of resources on [CLNX](https://clnx.utoronto.ca/home.htm) and you can book resume critiques and networking sessions to prepare you for interviews and career goals. Thinking about crafting your resume, and having experience in interviews will set you up for second year and future job opportunities.
## **Third Year (First semester)**
![]()
Roaller coaster emotionā¦lol
5 courses + work ā it has been a crazy semester for me, though I enjoyed the CS courses a lot :)
This semester I took **CSC347 (Information Security), CSC369 (Intro to Operating Systems), CSC384 (Intro to Artificial Inteligence), CSC373(Algorithm Design & Analysis)**, and a Statistic course.
I gained a lot of knowledge by taking 4 CS courses, which further helped to determine what career path I would like to pursue in the future (probably security-related!). If you have the capacity, consider taking 4 courses that will be good for preparing for job interviews and health.
### CSC347 (Information Security)
One of my favorite courses this semester! The course had no final and was super practical and fun to learn. You will gain a lot of exposure to various tools and do some hacks such as buffer overruns, smash the stack, SQL injection, and the CIA principles. I highly recommend you take it if you like to explore security, and you like to learn multiple things simultaneously.
### CSC369 (Operating System)
My second favorite course this semester! This is a continuation of CSC209. The first 4 weeks are a recap of CSC209, later you will learn about synchronization, file system, disk reliability, etc. The assignments were challenging but super practical and great to put on a resume for job interviews. I highly recommend you taking this course as it is one of the most important courses for your CS degree.
### CSC384 (Intro to Artificial Inteligence)
CSC384 was more of a theoretical course consisting of interesting topics such as tree search, minimax, ARC, and probability. It was not an easy course (assignments are code-heavy), but manageable if you kept up with the lecture content. It is also good to learn some AI concepts since it is a hot topic now.
### CSC373(Algorithm Design & Analysis)
CSC373 had some interesting topics. This is a continuation of CSC263. It was a practical course combining some Leetcode questions and fun topics to learn such as greedy algorithms, dynamic programming, flow networks, and P vs NP problems.
### My tips/thoughts for the Third year:
First of all, I am not going take 5 courses again :/
1. **Time Management**
Time management has became crucial for me. Third year I started to focus on managing my time better. Besides managing school and work, I also improved my learn strategies, which has improved my grades a lot. It was tough for sure, but I feel accomplished in surviving this semester.
2\. **Prioritize Health**
This year I have neglected my health a lot, and I can feel the exhaustion during the break. This semester I stopped exercising, drank way too much coffee, and slept late at night, and I felt worse both physically and mentally.
Small habits matter. So no matter how stressed you are about courses and other personal issues, do not compromise your health, because having good health is what makes us feel good. This is something that I am still working on, but I hope I focus more on my wellness for the new year, and you should too\!
3\. **Making Hard Choices**
This year I also have to make some hard decisions in choosing things I wanted to do versus my commitments. I had to make some sacrifices such as spending less time with friends(I hang out with my friend in class!) to take responsibility for my commitment.
This is probably one of the most important lesson that I realized in this semester: *I cannot have everything I want in life*. Even though sometimes I still feel sad about giving up some awesome opportunities, I know it is good for me.
I know that making these tough choices, choosing the thing that matters to me the most will help me to achieve what I want to accomplish in my life.
## **Close up**
Press enter or click to view image in full size
![]()
[Create Your Life](https://www.simplemindfulness.com/amazing-life/)
Excitement, anger, disappointment, confusion, and hope ā I do feel more lost this semester. I donāt know what is best for me, and sometimes I doubt myself if I am taking the right path in my journey.
Whether you are an incoming UTM CS student, or in your first year, second year, third year, or you are going to graduate, Here is one of my favorite quotes from [*Life of Riza*](https://www.youtube.com/watch?v=ij84DoCEmdI&t=67s) that I want to share with all of you.
This video reminds me that It is okay to feel lost, but just to keep exploring what you want in your life because:
> *You have to take risks. It is the only way to find out who you are, and what you want to do with your time on earth.*
>
> *And even if we fail, what better way is there to live?*
## Citation:
SpongeDivers Music. āSpongeBob Music: Hawaiian Breeze (Remastered).ā *YouTube*, YouTube, [www.youtube.com/watch?v=fJNov9JApC4.](http://www.youtube.com/watch?v=fJNov9JApC4.)
āHappy and Sad at the Same Time.ā *PicturePunches*, [www.picturepunches.com/meme/313692.](http://www.picturepunches.com/meme/313692.)
Parra, Oscar. āA First-Generation Studentās Computer Science Survival Story.ā *LinkedIn*, 9 Mar. 2018, [www.linkedin.com/pulse/first-generation-students-computer-science-survival-story-oscar-parra/.](http://www.linkedin.com/pulse/first-generation-students-computer-science-survival-story-oscar-parra/)
Oldham, Paige. ā10 Steps to Create Your Amazing Life.ā *Simple Mindfulness*, 5 May 2018, [www.simplemindfulness.com/amazing-life/.](http://www.simplemindfulness.com/amazing-life/)
āFor Those Waiting for Life to Happen.ā *YouTube*, Life of Riza, [www.youtube.com/watch?v=ij84DoCEmdI.](http://www.youtube.com/watch?v=ij84DoCEmdI.)
[University Of Toronto](https://medium.com/tag/university-of-toronto?source=post_page-----de20d6fcae8b---------------------------------------)
[Life Lessons](https://medium.com/tag/life-lessons?source=post_page-----de20d6fcae8b---------------------------------------)
[Wellbeing](https://medium.com/tag/wellbeing?source=post_page-----de20d6fcae8b---------------------------------------)
[University Life](https://medium.com/tag/university-life?source=post_page-----de20d6fcae8b---------------------------------------)
\--
\--
[](https://medium.com/@linda_lang?source=post_page---post_author_info--de20d6fcae8b---------------------------------------)
[](https://medium.com/@linda_lang?source=post_page---post_author_info--de20d6fcae8b---------------------------------------)
[Written by Linda](https://medium.com/@linda_lang?source=post_page---post_author_info--de20d6fcae8b---------------------------------------)
[9 followers](https://medium.com/@linda_lang/followers?source=post_page---post_author_info--de20d6fcae8b---------------------------------------)
Ā·[4 following](https://medium.com/@linda_lang/following?source=post_page---post_author_info--de20d6fcae8b---------------------------------------)
Explorer of random stuff in life š
## No responses yet
[Help](https://help.medium.com/hc/en-us?source=post_page-----de20d6fcae8b---------------------------------------)
[Status](https://status.medium.com/?source=post_page-----de20d6fcae8b---------------------------------------)
[About](https://medium.com/about?autoplay=1&source=post_page-----de20d6fcae8b---------------------------------------)
[Careers](https://medium.com/jobs-at-medium/work-at-medium-959d1a85284e?source=post_page-----de20d6fcae8b---------------------------------------)
[Press](mailto:pressinquiries@medium.com)
[Blog](https://blog.medium.com/?source=post_page-----de20d6fcae8b---------------------------------------)
[Privacy](https://policy.medium.com/medium-privacy-policy-f03bf92035c9?source=post_page-----de20d6fcae8b---------------------------------------)
[Rules](https://policy.medium.com/medium-rules-30e5502c4eb4?source=post_page-----de20d6fcae8b---------------------------------------)
[Terms](https://policy.medium.com/medium-terms-of-service-9db0094a1e0f?source=post_page-----de20d6fcae8b---------------------------------------)
[Text to speech](https://speechify.com/medium?source=post_page-----de20d6fcae8b---------------------------------------) |
| Readable Markdown | [](https://medium.com/@linda_lang?source=post_page---byline--de20d6fcae8b---------------------------------------)
9 min read Dec 28, 2024
\--
Press enter or click to view image in full size
UTM is always so beautifulā¦
While enjoying my break after a busy semester, It is time to chill a little bit after another second-semester storm hits me (haha! I actually miss school).
Here comes my honest UTM CS course review - of course, donāt totally trust me on thisā¦
I will start with my first-year courses and move to the third year. I will also share some personal tips on surviving my courses and university life.
A little background about me: I am currently a third-year Computer Science Specialist studying at the University of Toronto Mississauga :)
## **First Year**
How I felt about first yearā¦
I took CSC108 and CSC148 during first year, as both courses were prerequisites for the Computer Science program. The first semester was fun for me, but the second semester was stressful as I was worried a lot about making POST (check [website](https://www.utm.utoronto.ca/math-cs-stats/undergraduate-students/programs/computer-science) for more info).
### CSC108 (Introduction to Computer Programming)
The course assumed that you donāt have any knowledge of programming, and began with the foundation of Python, but very fast pace (I remember we went into for loop in the second or third week). Overall, This course was really fun, and I met one of my best friends in the course.
### CSC148 (Introduction to Computer Science)
The second semester was much tougher for me. CSC148 was more difficult for me even though I had some foundations in programming. You will learn a lot more on fundamental programming concepts such as OOP and different data structures like arrays, linked lists, hashmaps, trees, runtime complexity, etc. CSC148 was tough but It helped me to grasp a solid foundation in programming and understand If I truly want to pursue CS in the future.
### My tips/thoughts for the first year:
1. **Learn some programming before your first year starts**
If you are free over the summer before your first year, consider learning basic Python programming on Udemy, YouTube, and any platform you want. This will give you a good foundation going into CSC108 and better prepare you for CSC148 to make POST. For CSC148, I recommend looking through some data structure implementation (array, linked list, hashmap).
The above tip is not true for everyone. I know some people who didnāt have any experience in programming still did well in the course and made it to POST. I tend to be a slow learner, so I know I have to dedicate a lot of time to understand the course contents.
**In summary ā make sure you know your pace.** Having good preparation over the summer will help you do better in the first-year CS courses.
2\. **Consider Backup Plans**
If you are concerned about making it to POST, **I highly recommend you take MAT223 (Linear Algebra)** in the second semester so you can apply for the [**Statistics**](https://utm.calendar.utoronto.ca/section/Statistics,-Applied) program , and then attempt CSC148 in the second year (use [**SAC**](https://www.utm.utoronto.ca/registrar/enrolment/manage/sac) **to override your GPA**) if needed. You can also consider [GIS major](https://www.utm.utoronto.ca/geography/undergraduate/geographical-information-systems/gis-major-science) (some GIS courses can fulfill CS credit) or [Math major](https://utm.calendar.utoronto.ca/section/Mathematical-Sciences) as they are both good combination with CS.
3\. **Give your Best Shot**
Make sure you are on time with your assignment and understand all the concepts clearly. CSC148 was the course I realized that I needed to be accountable for my studying and make sure that I understood the lectures well.
This might sound cliche, but this is a lesson that always keeps with me: If you want something so badly, you need to keep pushing yourself to achieve what you want in your life.
Give your best shot, donāt give up. A bad assignment or a midterm will not ruin your chance of making it to POST (I did horribly on my midtermā¦).
I understand you might feel stressed and uncertain about POST, but just keep pushing yourself and give your best shot. Not till the finish line you never know how far you can get, but **the knowledge, grit, and persistence you have gained along the way are amazing lessons that will carry you along your university journey.**
## Second Year
Press enter or click to view image in full size
Feels like a breezeā¦
The second year was busy but more of a breeze after surviving the first year. My mind has shifted from survival mode to a learning mode. My second-year CS courses consisted of **CSC207 (Software Design), CSC236 (Theory of Computation), CSC258 (Computer Architecture), CSC209 (System Programming), and CSC263 (Data Structure and Analysis)**.
### CSC207 (Software Design)
CSC207 was chill for me. The course covered important OOP concepts, Java programming, UML, Design Patterns, and Git. We also had the opportunity to work in a team of 4 to create a Java game project. My favorite part was learning how to structure our code using Design Patterns (observer pattern, factory pattern, etc). Overall, this course was the easiest CS course for me in my second year, and it was super practical and fun to learn.
### CSC236 (Theory of Computation)
CSC236 was not too fun for me :/ Partially because I was not the strongest in the theoretical side of CS. CSC236 was a continuation of [**MAT102 (Intro to Mathematical Proof)**](https://utm.calendar.utoronto.ca/course/mat102h5) \+ CS theory, with focus on induction, recurrence, and later Finite State Machines. I did terribly in my midterm (worth 30%), but I was able to recover my grade since there were a lot of worksheet bonuses. If you enjoy math + CS theory, this might be an interesting course for you.
### CSC258 (Computer Architecture)
In CSC258, I learned about computer architecture through an online stimulation program (I remember we used **Ripes**). The course was practical as it will help you to understand the hardware side of Computer Science such as CPU execution phases. There were a lot of readings, and also a project that we needed to write in compiler code. Overall, I think the course was manageable as long as you keep up with the lecture content.
### CSC209 (Software Tools and Systems Programming)
CSC209 was super practical for me. I learned basic C programming and other interesting topics such as processes, system calls, signals, and Linux commands. There were also some cool projects to work on such as building our own terminal. I would not say course was easy as C programming was difficult to grasp initially, but I learned a lot from it.
### CSC263 (Data Structure and Analysis)
In CSC263, you will learn more advanced CS topics such as heap, amortized analysis, Minimum Spanning Tree, and some graph algorithms such as Kruscal and Primās algorithm. There were some fun topics to learn and good for preparing for coding interviews. Since I am not the strongest in theory, I would say this is probably the most difficult CS course I took for my second year.
### My tips/thoughts for the Second year:
1. **Learn & Relax**
My tips for the second year were to try to relax and do your best in the courses. You should not care too much about grades anymore. Just focus on learning, thinking about what courses you like the most, and consider your career interest.
2\. **Applying for an internship/preparing for an interview**
Consider taking 4 courses in the winter semester to apply for an internship and prepare for interviews. There are plenty of resources on [CLNX](https://clnx.utoronto.ca/home.htm) and you can book resume critiques and networking sessions to prepare you for interviews and career goals. Thinking about crafting your resume, and having experience in interviews will set you up for second year and future job opportunities.
## **Third Year (First semester)**
Roaller coaster emotionā¦lol
5 courses + work ā it has been a crazy semester for me, though I enjoyed the CS courses a lot :)
This semester I took **CSC347 (Information Security), CSC369 (Intro to Operating Systems), CSC384 (Intro to Artificial Inteligence), CSC373(Algorithm Design & Analysis)**, and a Statistic course.
I gained a lot of knowledge by taking 4 CS courses, which further helped to determine what career path I would like to pursue in the future (probably security-related!). If you have the capacity, consider taking 4 courses that will be good for preparing for job interviews and health.
### CSC347 (Information Security)
One of my favorite courses this semester! The course had no final and was super practical and fun to learn. You will gain a lot of exposure to various tools and do some hacks such as buffer overruns, smash the stack, SQL injection, and the CIA principles. I highly recommend you take it if you like to explore security, and you like to learn multiple things simultaneously.
### CSC369 (Operating System)
My second favorite course this semester! This is a continuation of CSC209. The first 4 weeks are a recap of CSC209, later you will learn about synchronization, file system, disk reliability, etc. The assignments were challenging but super practical and great to put on a resume for job interviews. I highly recommend you taking this course as it is one of the most important courses for your CS degree.
### CSC384 (Intro to Artificial Inteligence)
CSC384 was more of a theoretical course consisting of interesting topics such as tree search, minimax, ARC, and probability. It was not an easy course (assignments are code-heavy), but manageable if you kept up with the lecture content. It is also good to learn some AI concepts since it is a hot topic now.
### CSC373(Algorithm Design & Analysis)
CSC373 had some interesting topics. This is a continuation of CSC263. It was a practical course combining some Leetcode questions and fun topics to learn such as greedy algorithms, dynamic programming, flow networks, and P vs NP problems.
### My tips/thoughts for the Third year:
First of all, I am not going take 5 courses again :/
1. **Time Management**
Time management has became crucial for me. Third year I started to focus on managing my time better. Besides managing school and work, I also improved my learn strategies, which has improved my grades a lot. It was tough for sure, but I feel accomplished in surviving this semester.
2\. **Prioritize Health**
This year I have neglected my health a lot, and I can feel the exhaustion during the break. This semester I stopped exercising, drank way too much coffee, and slept late at night, and I felt worse both physically and mentally.
Small habits matter. So no matter how stressed you are about courses and other personal issues, do not compromise your health, because having good health is what makes us feel good. This is something that I am still working on, but I hope I focus more on my wellness for the new year, and you should too\!
3\. **Making Hard Choices**
This year I also have to make some hard decisions in choosing things I wanted to do versus my commitments. I had to make some sacrifices such as spending less time with friends(I hang out with my friend in class!) to take responsibility for my commitment.
This is probably one of the most important lesson that I realized in this semester: *I cannot have everything I want in life*. Even though sometimes I still feel sad about giving up some awesome opportunities, I know it is good for me.
I know that making these tough choices, choosing the thing that matters to me the most will help me to achieve what I want to accomplish in my life.
## **Close up**
Press enter or click to view image in full size
[Create Your Life](https://www.simplemindfulness.com/amazing-life/)
Excitement, anger, disappointment, confusion, and hope ā I do feel more lost this semester. I donāt know what is best for me, and sometimes I doubt myself if I am taking the right path in my journey.
Whether you are an incoming UTM CS student, or in your first year, second year, third year, or you are going to graduate, Here is one of my favorite quotes from [*Life of Riza*](https://www.youtube.com/watch?v=ij84DoCEmdI&t=67s) that I want to share with all of you.
This video reminds me that It is okay to feel lost, but just to keep exploring what you want in your life because:
> *You have to take risks. It is the only way to find out who you are, and what you want to do with your time on earth.*
>
> *And even if we fail, what better way is there to live?*
## Citation:
SpongeDivers Music. āSpongeBob Music: Hawaiian Breeze (Remastered).ā *YouTube*, YouTube, [www.youtube.com/watch?v=fJNov9JApC4.](http://www.youtube.com/watch?v=fJNov9JApC4.)
āHappy and Sad at the Same Time.ā *PicturePunches*, [www.picturepunches.com/meme/313692.](http://www.picturepunches.com/meme/313692.)
Parra, Oscar. āA First-Generation Studentās Computer Science Survival Story.ā *LinkedIn*, 9 Mar. 2018, [www.linkedin.com/pulse/first-generation-students-computer-science-survival-story-oscar-parra/.](http://www.linkedin.com/pulse/first-generation-students-computer-science-survival-story-oscar-parra/)
Oldham, Paige. ā10 Steps to Create Your Amazing Life.ā *Simple Mindfulness*, 5 May 2018, [www.simplemindfulness.com/amazing-life/.](http://www.simplemindfulness.com/amazing-life/)
āFor Those Waiting for Life to Happen.ā *YouTube*, Life of Riza, [www.youtube.com/watch?v=ij84DoCEmdI.](http://www.youtube.com/watch?v=ij84DoCEmdI.) |
| Shard | 77 (laksa) |
| Root Hash | 13179037029838926277 |
| Unparsed URL | com,medium!/@linda_lang/my-honest-utm-cs-course-review-de20d6fcae8b s443 |