Introduction & Why?

Introduction & Why?

I’ve always wanted to make a post on this. I have gotten asked the same question multiple times here by numerous Ryerson students in CE(Computer Engineering) or CS(Computer Science). How do I enrich my learning and to apply my learning?

It is a tough question to answer. This is because of how our curriculum is structured, the content, and the instructors.

So, to answer the question. I will be using the core courses and required courses for each programs CE and CS, to tailor the answer for each of the courses. It will be separated for CE students and CS students. Note I will be including resources to enrich your learning during the course, after the course, and if I have taken the course a small review of the course itself, instructor and content.

Note: Another blog post will be done on a later date for the CE curriculum

Computer Science Section

Other Resources Section

Computer Science

  • CPS109 - Computer Science 1

    • Description:
      • An introductory CS course, teaching Python.
    • Resources for the Course:
    • Reach Ahead & Enrich your Learning & Projects:
    • Review:
      • The course was a well structured course, content was pretty good, and the instructors teaching it was amazing. I later reached out and did research with him over 2020 summer!
  • CPS213 - Computer Organization I

    • Description:
      • Principles and fundamentals of digital system design.
    • Resources for the Course:
      • The textbook! Use it! It’s well written.
    • Reach Ahead & Enrich your Learning & Projects:
    • Review:
      • The course was not well structured. Labs were not conducted as if the TAs did not care. The lectures were not worth even going to. But, the course is quite interesting, if you learn from the textbook you will love the content! And you will do well in the exams and labs.
  • CPS305 - Data Structures

    • Description:
      • Introduction to data structures and algorithms.
    • Resources for the Course:
      • Geekforgeeks! Data structure implementations and explanations - click here
      • Need more lectures to suplement the lectures? Check out Abdul Bari’s channel - click here
    • Reach Ahead & Enrich your Learning & Projects:
      • Start practicing some leetcode! Helpful for interviews for Co-op - LeetCode
    • Review:
      • The course was well structured, plus a wonderful instructor teaching it, Dr. Mehrdad Tirandazian. The instructor puts in effort to answer any question directed at him, be it related to the content or not. The lectures are 100% worth going to! The labs assignments are a must, solve them yourself, do not use any external resources even if you are tempted to. If you do, you will learn nothing. Implement the data structures yourself, trust me it may be challenging at first but it is worth it. But, to note, the TAs were not that great.
  • CPS393 - Introduction to UNIX & C

    • Description:
      • The course introduces the UNIX operating system, and the C language.
    • Resources for the Course:
      • The C Programming Language book - Amazon
      • The Linux man pages for every command/program
    • Reach Ahead & Enrich your Learning & Projects:
      • Interested in systems programming now? Checkout Rust!
      • Do you like UNIX? Starting booting Linux on your computer, checkout - Install Manjaro
    • Review:
      • The course was well structured. Labs were informative, good TAs. But the how the course instructor taught was really outdate. Screensharing their SSHed into a Linux box with VIM open just reading their notes… But the instructor was wonderful, and helpful!
  • CPS506 - Comparative Programming Languages

    • Description:
      • A survey of major programming paradigms, with emphasis on the functional paradigm. In this course you will learn Smalltalk, Elixir, Haskell, and Rust
    • Resources for the Course:
      • Lecture slides are amazing! All you need to be honest with you.
      • Rust Book - Rust Book
      • Haskell Book - Haskell Book
    • Reach Ahead & Enrich your Learning & Projects:
      • Rust Book - Rust Book
      • Rewrite your projects in Rust or Smalltalk!
    • Review:
      • The course was well structured. Labs were informative, wonderful TAs. The instructor was the best instructor I have had during my time in Ryerson, Alex Ufkes. The lab assignments are really helpfully, and the assignment that is given throughout the course is amazing. You are told to implement a program which determines which poker hand wins, and to implement it in any of the 4 languages you will learn in this course.
  • CPS590 - Operating Systems I

    • Description:
      • Introduction to OS
    • Resources for the Course:
      • Book, Operating Systems: Three Easy Pieces - Book
    • Reach Ahead & Enrich your Learning & Projects:
      • Read the book above, or solve the exercise. It is free!
    • Review:
      • The course slides made me feel like I am living in the 90s. The content was not up to standards compared to OS courses I have taken. If you want to learn about OSs check out the book mentioned.

Other Resources

  • A wonderful Modern C++ course by Kate Gregory(An amazing instructor) Link
  • Project Ideas (Project based learning) - click here

Feel free to to DM me on Twitter or Discord if you want to add something or a resource!

If you also want to add more courses and your experiences please let me know.

Leave a comment