|
| 1 | +.. Author: Akshay Mestry <[email protected]> |
| 2 | +.. Created on: Friday, March 07 2025 |
| 3 | +.. Last updated on: Friday, March 07 2025 |
| 4 | +
|
| 5 | +:og:title: From Scalars to Tensors |
| 6 | +:og:description: A comprehensive guide to my "ideal" courses to equip students |
| 7 | + for the ever-evolving tech industry. |
| 8 | +:og:type: article |
| 9 | + |
| 10 | +.. _miscellany-course-codex: |
| 11 | + |
| 12 | +=============================================================================== |
| 13 | +Course Codex |
| 14 | +=============================================================================== |
| 15 | + |
| 16 | +.. author:: |
| 17 | + :name: Akshay Mestry |
| 18 | + |
| 19 | + :about: DePaul University |
| 20 | + :avatar: https://avatars.githubusercontent.com/u/90549089?v=4 |
| 21 | + :github: https://github.com/xames3 |
| 22 | + :linkedin: https://linkedin.com/in/xames3 |
| 23 | + :timestamp: Mar 07, 2025 |
| 24 | + |
| 25 | +.. rst-class:: lead |
| 26 | + |
| 27 | + Study hard what interests you the most, in the most undisciplined, |
| 28 | + irreverent, and original manner possible -- Richard Feynman |
| 29 | + |
| 30 | +This article is more than just a collection of syllabi, it's a deeply personal |
| 31 | +endeavour. I reflect back on my journey as a student, a tribute to the mentors |
| 32 | +who lit the path ahead of me, and a commitment to those who will one day walk |
| 33 | +a similar road. For those who know me personally know that I've been super |
| 34 | +duper fortunate to have crossed paths with some truly amazing teachers and |
| 35 | +mentors. These individuals taught me to think critically, ask the right |
| 36 | +questions. But not every moment was full of rainbows and sunshines. I've also |
| 37 | +navigated moments of confusion, of wishing the curriculum had been clearer, |
| 38 | +more connected to the real-world skills I needed. |
| 39 | + |
| 40 | +This article is my way of bridging that gap. |
| 41 | + |
| 42 | +You know what, I've realised this pretty early in my career that the tech |
| 43 | +industry moves quite fast and how challenging it can be to step from the world |
| 44 | +of academia into the realities of building softwares and training AI models. |
| 45 | +Therefore, I'm crafting these **"ideal"** interpretation of my courses not |
| 46 | +because I claim to have all the answers, but because I want to offer the kind |
| 47 | +of structure and guidance I once wished for. My goal here is simple: to design |
| 48 | +course outlines that not only strengthen foundational knowledge but also equip |
| 49 | +students with the practical tools and critical mindset needed to thrive in an |
| 50 | +ever-evolving landscape. |
| 51 | + |
| 52 | +So, to all those reading this, I hope these courses inspire you to learn |
| 53 | +fearlessly, just as my mentors inspired me. |
| 54 | + |
| 55 | +.. _course-introduction-to-programming: |
| 56 | + |
| 57 | +------------------------------------------------------------------------------- |
| 58 | +Introduction to Programming |
| 59 | +------------------------------------------------------------------------------- |
| 60 | + |
| 61 | +.. note:: |
| 62 | + |
| 63 | + The course code may vary from uni to uni. This is an entry-level |
| 64 | + foundational in most of the schools which students take in their freshman |
| 65 | + year. |
| 66 | + |
| 67 | +- **Duration.** 10 weeks |
| 68 | +- **Language.** Language-agnostic (`Python`_ as an experimenting language) |
| 69 | + |
| 70 | +Overview |
| 71 | +=============================================================================== |
| 72 | + |
| 73 | +Programming is more than writing lines of code. It's about learning how to |
| 74 | +think like a problem-solver, breaking down complex ideas into smaller |
| 75 | +manageable pieces. In this course, we won't just learn and memorise syntaxes or |
| 76 | +chase after clever one-liners or cheeky hacks, we'll focus on building a solid |
| 77 | +foundation, one that will empower you to pick up any programming language in |
| 78 | +the future. While Python will be our guiding tool due to its simplicity and |
| 79 | +rich library support, the real goal here is to make you comfortable with the |
| 80 | +concepts of programming |dash| the logic, structures, and the core paradigms, |
| 81 | +so that languages like C++, Java, or Javascript feel less like mountains to |
| 82 | +climb and more like familiar landspaces. |
| 83 | + |
| 84 | +By the end of this 10 weeks journey, you'll be able to solve small, everyday |
| 85 | +problems with code by automating repetitve tasks, building simple programs, or |
| 86 | +even kickstarting a personal project you've always dreamed about. More |
| 87 | +importantly, you'll have the mindset and confidence to build something from |
| 88 | +scratch, break it, fix it, and make it better! |
| 89 | + |
| 90 | +Course objectives |
| 91 | +=============================================================================== |
| 92 | + |
| 93 | +By the end of this course, you will: |
| 94 | + |
| 95 | +- develop a programmer's mindset, cultivate a logical problem-solving way of |
| 96 | + thinking that extends beyond writing code. |
| 97 | +- think beyond the syntax and learn not just how to write code, but why certain |
| 98 | + approaches work better than others. |
| 99 | +- master fundamental concepts |dash| variables, loops, conditionals, functions, |
| 100 | + and objects |dash| core constructs you'll find in nearly every programming |
| 101 | + language. |
| 102 | +- write clear, structured and maintainable code by learning how to organise |
| 103 | + your thoughts into clean, efficient, and reusable code, a skill that's super |
| 104 | + important for both personal projects and team collaborations. |
| 105 | +- understand language-agnostic principles by recognising the patterns that |
| 106 | + underline all programming languages, so you can easily transition to other |
| 107 | + languages like C++, Rust, or Javascript down the road. |
| 108 | +- solve problems by applying programming to small, personal tasks like |
| 109 | + automating a daily chore, parsing a text file, or building a basic to-do app. |
| 110 | +- prepare yourself for future courses and industry workloads by building a |
| 111 | + strong foundation that will make advanced topics like algorithms, data |
| 112 | + structures, AI, and cloud computing far less intimidating. |
| 113 | +- learn to google your way through any debugging session!!! |
| 114 | + |
| 115 | +This course isn't just about "getting the right answers." It's about learning |
| 116 | +how to ask or rather google the right questions. |
| 117 | + |
| 118 | +Structure |
| 119 | +=============================================================================== |
| 120 | + |
| 121 | +Below is the week-by-week breakdown of how we will proceed through our |
| 122 | +curriculum. |
| 123 | + |
| 124 | +.. dropdown:: Week One |
| 125 | + |
| 126 | + .. rubric:: Programming Mindset or Thinking in Code |
| 127 | + :heading-level: 3 |
| 128 | + |
| 129 | + Since its the first week, we won't dive headfirst into coding but rather |
| 130 | + cheekily rewire ourselves to think like a programmer. Before writing fancy |
| 131 | + algorithms, we need to learn how to break problems into smaller, logical |
| 132 | + steps. This week is all about developing a programming mentality. |
| 133 | + |
| 134 | + .. image:: ../assets/hackerman-meme.jpg |
| 135 | + :alt: Hackerman meme from Mr. Robot |
| 136 | + |
| 137 | + **What we'll cover:** |
| 138 | + |
| 139 | + - What is programming? |
| 140 | + |
| 141 | + - Understanding programming as a problem-solving tool. |
| 142 | + - How computers "think"? Basics of how code gets executed (interpreted |
| 143 | + vs. compiled languages). |
| 144 | + - Why programming is more about logic than language? |
| 145 | + |
| 146 | + - Thinking like a machine |
| 147 | + |
| 148 | + - Decomposing problems: breaking down complex tasks into smaller steps. |
| 149 | + - What an algorithm (step-by-step solution) means? |
| 150 | + |
| 151 | + - Your first program |
| 152 | + |
| 153 | + - Writing a hello world program in multiple languages (primarily Python). |
| 154 | + - Understanding similarities and differences in semantics and syntaxes |
| 155 | + across multiple languages. |
| 156 | + - Interpreting error messages and searching for solutions on the |
| 157 | + internet. |
| 158 | + |
| 159 | + - Building blocks of code |
| 160 | + |
| 161 | + - Introduction to fundamental concepts of programming like variables |
| 162 | + (identifiers), data types, etc. and their similarities with Maths. |
| 163 | + |
| 164 | + **Interactive Lab:** |
| 165 | + |
| 166 | + - Compare and disect various programming blocks for the same code across |
| 167 | + multiple programming languages. |
| 168 | + |
| 169 | + **Reflection and Homework:** |
| 170 | + |
| 171 | + - **Reflect.** Whatever you learned today about programming in any way |
| 172 | + shape or form. |
| 173 | + - **Reflect.** What you think about **"step-by-step thinking"** and compare |
| 174 | + how you would normally solve a problem? |
| 175 | + - **Homework.** Find a simple program that solved a problem |dash| bring |
| 176 | + at least one example to share next week (it can be anything from a simple |
| 177 | + algorithm or someone's personal project you found online). |
| 178 | + |
| 179 | + |
| 180 | + |
| 181 | +.. _Python: https://www.python.org |
0 commit comments