<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abdullah Gira</title>
    <description>The latest articles on DEV Community by Abdullah Gira (@xayden).</description>
    <link>https://dev.to/xayden</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F154955%2F3d92744a-164e-43cc-9c4e-32c442b0831c.jpg</url>
      <title>DEV Community: Abdullah Gira</title>
      <link>https://dev.to/xayden</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xayden"/>
    <language>en</language>
    <item>
      <title>Week 2: Natural Recursion</title>
      <dc:creator>Abdullah Gira</dc:creator>
      <pubDate>Sun, 29 Jan 2023 20:38:53 +0000</pubDate>
      <link>https://dev.to/xayden/week-2-natural-recursion-25ah</link>
      <guid>https://dev.to/xayden/week-2-natural-recursion-25ah</guid>
      <description>&lt;p&gt;One drawback of this course is that it introduces a new language, so we spend most of the time learning the aspects of this language instead of learning new concepts. This week is no exception. It introduces arrays and how to define functions and data definitions for them in SDL.&lt;/p&gt;

&lt;h3&gt;
  
  
  Arrays
&lt;/h3&gt;

&lt;p&gt;Arrays in SDL have no indexes, you only have two methods, &lt;code&gt;first&lt;/code&gt; and &lt;code&gt;rest&lt;/code&gt;. The &lt;code&gt;first&lt;/code&gt; method returns the first element in the array, and the &lt;code&gt;rest&lt;/code&gt; returns the array without the first element. Therefore we use natural recursion to loop over the array.&lt;/p&gt;

&lt;h3&gt;
  
  
  Natural Recursion
&lt;/h3&gt;

&lt;p&gt;Natural recursion refers to the process in which a function calls itself in order to solve a problem.&lt;/p&gt;

&lt;p&gt;Example code in python&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# first -&amp;gt; returns the first element in the array
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;first&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;# rest -&amp;gt; returns the rest of the array
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;rest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt;

&lt;span class="c1"&gt;# return true if all array elements are true
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;all_true&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;first&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="nf"&gt;all_true&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;rest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Importance of data design
&lt;/h3&gt;

&lt;p&gt;The design of the data is actually making important decisions about the design of functions. (&lt;a href="https://learning.edx.org/course/course-v1:UBCx+HtC1x+2T2017/block-v1:UBCx+HtC1x+2T2017+type@sequential+block@d3dd950e3810420395fc2130e05fe553/block-v1:UBCx+HtC1x+2T2017+type@vertical+block@4430f3fde52e4e00a3137a545fd1f4c4" rel="noopener noreferrer"&gt;ref&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post is part of a series about how I plan to revisit the CS bachelor and post a weekly update. You can read more about it &lt;a href="https://www.abdullahgira.com/blog/2023-01-13-revisiting-cs-bachelor" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>Week 1: How to code simple data</title>
      <dc:creator>Abdullah Gira</dc:creator>
      <pubDate>Mon, 23 Jan 2023 10:05:06 +0000</pubDate>
      <link>https://dev.to/xayden/week-1-how-to-code-simple-data-31kj</link>
      <guid>https://dev.to/xayden/week-1-how-to-code-simple-data-31kj</guid>
      <description>&lt;p&gt;This post was originally published on my blog: &lt;a href="https://www.abdullahgira.com/blog/2023-01-23-week-1-how-to-code-simple-data" rel="noopener noreferrer"&gt;https://www.abdullahgira.com/blog/2023-01-23-week-1-how-to-code-simple-data&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last week's course was &lt;a href="https://www.edx.org/course/how-to-code-simple-data" rel="noopener noreferrer"&gt;How to code simple data&lt;/a&gt;. Most of the content in the first weeks was introducing a new language called &lt;a href="https://docs.racket-lang.org/htdp-langs/index.html" rel="noopener noreferrer"&gt;beginning student language&lt;/a&gt;, and some concepts that I liked and want to share in this post.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to design functions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It talks about how to test your functions before implementing them and make sure you test the edge cases (TDD).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data-driven templates&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Data-driven templates are saying, &lt;strong&gt;given that I know what type of data this function consumes, what do I know about the structure of this function?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Templates are an idea that you can use throughout your career, no matter how sophisticated a programmer you get to be. When you get a hard problem and don't quite know how to do it, &lt;strong&gt;you first say, well, what do I know about the program's basic structure before I get to the details?&lt;/strong&gt; That's an incredibly powerful idea.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;White box testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;White box testing is when we know how the function is implemented so we test against that, in the opposite you have black box testing where you only care about the input and the output.&lt;/p&gt;

&lt;p&gt;Oh one last thing, you can copy-paste images into the editor of this language!&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>career</category>
      <category>learning</category>
    </item>
    <item>
      <title>Revisiting CS Bachelor</title>
      <dc:creator>Abdullah Gira</dc:creator>
      <pubDate>Sat, 14 Jan 2023 11:01:58 +0000</pubDate>
      <link>https://dev.to/xayden/revisiting-cs-bachelor-36a6</link>
      <guid>https://dev.to/xayden/revisiting-cs-bachelor-36a6</guid>
      <description>&lt;p&gt;This is a fun project. I want to revisit the Computer Science field after two years away from my graduate degree using free online materials from top universities worldwide. And I will share my journey on this blog.&lt;/p&gt;

&lt;p&gt;Since I’m working part-time on this, I expect the duration of this project to be 1-2 years.&lt;/p&gt;

&lt;p&gt;I initially considered the MIT curriculum but chose  &lt;a href="https://github.com/ossu/computer-science"&gt;Open Source Society University (OSSU)&lt;/a&gt;  since its curriculum has more engaging video lectures and practice problems than MIT's. The OSSU CS curriculum meets all of the requirements from the  &lt;a href="https://github.com/ossu/computer-science/blob/master/CURRICULAR_GUIDELINES.md"&gt;Curriculum Guidelines for Undergraduate Degree Programs in Computer Science 2013&lt;/a&gt;, matching up nicely to those found on MIT OpenCourseWare. Though there are three courses offered at MIT not available on OSSU: Software Construction, Design, and Analysis of Algorithms and Performance Engineering of software systems, I'll add them to my curriculum.&lt;/p&gt;

&lt;p&gt;One course I'm not sure about adding is Computation structures because the Core Systems section covers the course material. However, I will add it as a recap, or I might skip it altogether.&lt;/p&gt;

&lt;h3&gt;
  
  
  Optional books I might read
&lt;/h3&gt;

&lt;p&gt;They are not in the curriculum but are recommended reads:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Data-intensive applications&lt;/li&gt;
&lt;li&gt;  &lt;a href="http://www.redbook.io/"&gt;Readings in database systems (5th edition)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.amazon.com/Transaction-Processing-Concepts-Techniques-Management/dp/1558601902"&gt;Transaction Processing: Concepts and Techniques&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Computer systems a programmer's perspective&lt;/li&gt;
&lt;li&gt;  Refactoring by Martin Fowler&lt;/li&gt;
&lt;li&gt;  Code Complete 2nd edition&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Optional courses I might take
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="http://csg.csail.mit.edu/6.175/"&gt;Constructive Computer Architecture&lt;/a&gt;  (Re-validate after taking the Advanced programming section)&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://inst.eecs.berkeley.edu/~cs61c/fa14/"&gt;Great Ideas in Computer Architecture (Machine Structures)&lt;/a&gt;  (Re-validate after taking the Core systems section)&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://ocw.mit.edu/courses/6-034-artificial-intelligence-fall-2010/"&gt;Artificial intelligence&lt;/a&gt;  (Re-validate after taking Sec: Core applications section)&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.coursera.org/learn/comparch"&gt;Computer architecture&lt;/a&gt;  (advanced) (Maybe consider after taking the Advanced systems section)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The curriculum
&lt;/h3&gt;

&lt;p&gt;This is the curriculum as of now (the content updates frequently as new courses are discovered/created), I’ve marked courses I personally added as (Personal)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CS Core&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Core Programming

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.edx.org/course/how-to-code-simple-data"&gt;How to Code - Simple Data&lt;/a&gt; &lt;a href="https://htdp.org/2022-8-7/Book/index.html"&gt;(textbook)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.edx.org/course/how-to-code-complex-data"&gt;How to Code - Complex Data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/programming-languages"&gt;Programming Languages, Part A&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/programming-languages-part-b"&gt;Programming Languages, Part B&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/programming-languages-part-c"&gt;Programming Languages, Part C&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/object-oriented-design"&gt;Object-Oriented Design&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/design-patterns"&gt;Design Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/software-architecture"&gt;Software Architecture&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://web.mit.edu/6.031/www/sp22/"&gt;Software construction&lt;/a&gt;  (Personal)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt; Core Math

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://openlearninglibrary.mit.edu/courses/course-v1:MITx+18.01.1x+2T2019/about"&gt;Calculus 1A: Differentiation&lt;/a&gt;  (&lt;a href="https://ocw.mit.edu/courses/mathematics/18-01sc-single-variable-calculus-fall-2010/index.htm"&gt;alt&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://openlearninglibrary.mit.edu/courses/course-v1:MITx+18.01.2x+3T2019/about"&gt;Calculus 1B: Integration&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://openlearninglibrary.mit.edu/courses/course-v1:MITx+18.01.3x+1T2020/about"&gt;Calculus 1C: Coordinate Systems &amp;amp; Infinite Series&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://openlearninglibrary.mit.edu/courses/course-v1:OCW+6.042J+2T2019/about"&gt;Mathematics for Computer Science&lt;/a&gt;  (&lt;a href="https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2010/"&gt;alt&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt; Core Tools

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://missing.csail.mit.edu/"&gt;The Missing Semester of Your CS Education&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt; Core Systems

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/build-a-computer"&gt;Build a Modern Computer from First Principles: From Nand to Tetris&lt;/a&gt;  (&lt;a href="https://www.nand2tetris.org/"&gt;alt&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/nand2tetris2"&gt;Build a Modern Computer from First Principles: Nand to Tetris Part II&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://github.com/ossu/computer-science/blob/master/coursepages/ostep/README.md"&gt;Operating Systems: Three Easy Pieces&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="http://gaia.cs.umass.edu/kurose_ross/online_lectures.htm"&gt;Computer Networking: a Top-Down Approach&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ocw.mit.edu/courses/6-004-computation-structures-spring-2017/"&gt;Computations structures&lt;/a&gt;  (Personal)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt; Core Theory

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/algorithms-divide-conquer"&gt;Divide and Conquer, Sorting and Searching, and Randomized Algorithms&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/algorithms-graphs-data-structures"&gt;Graph Search, Shortest Paths, and Data Structures&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/algorithms-greedy"&gt;Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/algorithms-npcomplete"&gt;Shortest Paths Revisited, NP-Complete Problems and What To Do About Them&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ocw.mit.edu/courses/6-046j-design-and-analysis-of-algorithms-spring-2015/"&gt;Design and analysis of algorithms&lt;/a&gt;  (Personal)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Core Security

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.edx.org/course/cybersecurity-fundamentals"&gt;Cybersecurity Fundamentals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/secure-coding-principles"&gt;Principles of Secure Coding&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/identifying-security-vulnerabilities"&gt;Identifying Security Vulnerabilities&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/exploiting-securing-vulnerabilities-java-applications"&gt;Exploiting and Securing Vulnerabilities in Java Applications&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt; Core Applications

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://www.edx.org/course/modeling-and-theory"&gt;Databases: Modeling and Theory&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.edx.org/course/databases-5-sql"&gt;Databases: Relational Databases and SQL&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.edx.org/course/semistructured-data"&gt;Databases: Semistructured Data&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/machine-learning"&gt;Machine Learning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.edx.org/course/computer-graphics-2"&gt;Computer Graphics&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.edx.org/course/software-engineering-introduction"&gt;Software Engineering: Introduction&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt; Core Ethics

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/ethics-technology-engineering"&gt;Ethics, Technology, and Engineering&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/introduction-intellectual-property"&gt;Introduction to Intellectual Property&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/northeastern-data-privacy"&gt;Data Privacy Fundamentals&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Advanced programming&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://www.coursera.org/learn/scala-parallel-programming"&gt;Parallel Programming&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.edx.org/course/compilers"&gt;Compilers&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.seas.upenn.edu/~cis194/fall16/"&gt;Introduction to Haskell&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.let.rug.nl/bos/lpn//lpnpage.php?pageid=online"&gt;Learn Prolog Now!&lt;/a&gt;  (&lt;a href="https://github.com/ossu/computer-science/files/6085884/lpn.pdf"&gt;alt&lt;/a&gt;)*&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.udacity.com/course/software-debugging--cs259"&gt;Software Debugging&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udacity.com/course/software-testing--cs258"&gt;Software Testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://ocw.mit.edu/courses/6-172-performance-engineering-of-software-systems-fall-2018/"&gt;Performance Engineering Of Software Systems&lt;/a&gt;  (Personal)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;(*) book by Blackburn, Bos, and Striegnitz (compiled from &lt;a href="https://github.com/LearnPrologNow/lpn"&gt;source&lt;/a&gt;, redistributed under &lt;a href="https://creativecommons.org/licenses/by-sa/4.0/"&gt;CC license&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final project&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/cloud-computing"&gt;Cloud Computing (Specialization)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If I include the curriculum and optional courses, I will exceed the undergraduate degree requirements according to Curriculum Guidelines for Undergraduate Degree Programs in Computer Science 2013, but this is a fun project, so why not?&lt;/p&gt;

&lt;p&gt;Throughout the curriculum, I will post weekly updates about my progress and notes from the books and courses I will take.&lt;/p&gt;

&lt;p&gt;I will update the status on &lt;a href="https://www.abdullahgira.com/blog/2023-01-13-revisiting-cs-bachelor"&gt;my blog&lt;/a&gt; as I go through the material.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
