Programming Fundamentals Curriculum banner

Programming Fundamentals Curriculum

12 devlogs
17h 8m 17s

Important note: I removed the languages Spanish and Chinese from the built as I don't have the capacity to support these languages and the only thing that could be found was a disclaimer in the corresponding language that the translated curriculum…

Important note: I removed the languages Spanish and Chinese from the built as I don’t have the capacity to support these languages and the only thing that could be found was a disclaimer in the corresponding language that the translated curriculum would follow.
This is a curriculum that uses MkDocs at its core, hosted on GitHub Pages and accessible to everyone with a browser and an internet connection. Its goal is to provide a programming language agnostic intro into programming where fundamental concepts, history and start-off resources are given to the participant of this curriculum. I worked longer on this project than currently shown, so there was more work involved in this e.g. override structure, prev+next buttons, etc.
Note: This is a multi language project both available in English and German for reading. I would recommend sticking with the English version though ,as this is the one with the most updates while the German version is a little behind but more stable.

This project uses AI

I used AI mainly as an consultant in this project. This project also contains AI code in the override functionality as well as in the prev+next button implementation, everything else: the curriculum content and basic configurations were all written or configured by myself.

Demo Repository

Loading README...

djblackberry64contrib

Welcome to my (really) last post on Flavortown!
I listened to the last feedback from the voters of my last ship.

What changed in this devlog:

  • Added a manifest for future plans, project state and reasoning
  • Added an explanation about classes right under methods in 01-intro lesson 4
  • Added prev+next buttons to Introduction in 03-advanced-section through YAML frontmatter overrides
  • Added new lesson to 03-advanced-section about collaboration

What I would apprechiate from you:

  • Enjoy the last hours of Flavortown!
  • Feel free to contact me via the email linked in my profile
  • Have a great day!
Attachment
Attachment
Attachment
Attachment
Attachment
0
djblackberry64contrib

Shipped this project!

Hours: 16.21
Cookies: 🍪 274
Multiplier: 16.91 cookies/hr

I built a MkDocs entry level programming curriculum. With this new ship, I added new content, expanded my knowledge along the way and also considered migration to a more stable platform once it has matured more. The most challenging thing was learning how this system tends to break in a way that is often due to a mix of plugins, markdown syntax I learned and quirks I still have to discover ;). I solved this by isolating the source of a bug each time and eventually understood the system I was dealing with better and better as time went on. I’m really happy how it turned out and I’m excited to continue working on this project so that it can serve as an approchable reference I wish I had when I was just starting out.

djblackberry64contrib

Welcome to my last post (probably) on Flavortown!
This time I worked on adding content that was still to be added based on the overview in the foundations intro lesson and fixing minor grammar mistakes.

What changed in this devlog:

  • I added lesson 5_definitions-in-programming-principles.md to adhere to the overview I set at the beginning.
  • I changed the file paths for the prev+next buttons according to the addition
  • I changed the numbers on definitions-in-programming-concepts and how-do-i-program to integrate the added lesson
  • I tested the changes to make sure no paths were broken.
  • I deployed the new version so you can enjoy the new lesson right away!

What I learned since last time:

I already noticed that MkDocs is in maintenance mode so I got a simple Zensical port (english-only, picture below) working and tried it out. While there’s still some features missing to make a full migration I will keep an eye out for the development of Zensical as it seems to be the long time solution that will be supported in the future. Through this venture I also got a taste of TOML (in which the native config file from Zensical is written in) which I quite enjoyed even if I couldn’t wrap my head around it at first.

What I would appreciate from you:

  • Please give constructive criticism on what I could improve on or what’s missing
  • Share your ideas for more content or functionality in the comments
  • Share ideas for new ventures I could dive in!
  • Have a great day!
  • Enjoy the last days of Flavortown!

This is the my last post for this YSWS event. I hope to see you in another one and wish y’all a great day!

Attachment
Attachment
Attachment
Attachment
0
djblackberry64contrib

Welcome to the first maintenance post, chefs!
This time I worked on improving the UX, especially the UX at the starting page.

What changed in this devlog:

  • Restructered the starting page to make it clearer and more compelling.
  • Added eye image with title attribute for hovering
  • Added animations to the clickable images on hovering to make UX clearer
  • Tested animations to ensure consistent behaviour and smoothness
  • Deployed changes so you can directly benefit from the improvements.

What I learned since last time:
I already knew about key frames so my first approach was a simple keyframe animation which changed size via the width attribute. This proved to be a problem as I then tried to stop the rest of the page from moving which isn’t possible because my approach essentially changed the layout. In the end, I looked up documentation and consulted an AI agent and learned about transform as well as the scale function. I then did the implementation myself and adjusted the scale.

What I would appreciate from you:

  • Please give constructive criticism on what I could improve on or what’s missing
  • Share your ideas for more content or functionality in the comments
  • Have a great day!

This was it for the first maintenance devlog and I hope to see you in the next one!

0
djblackberry64contrib

Welcome to the first non-series devlog in a while.
This time I briefly translated the lessons of the “language-specific-lessons” section. I also came up with a new idea to extend the curriculum.

What changed in this devlog:

  • Translation of all current lessons in the “language-specific-lessons” section.
  • Testing for all prev+next redirects to be accurate in the translated version due to path differences
  • Fixing of minor grammar and logic errors
  • Substitution of English resources with German ones in the translated version

New ideas for the curriculum:

  • (Animated) Story with self-made characters via HTML (possible thanks to the md_in_html extension), CSS and JS

What I would appreciate from you:

  • Please give constructive criticism on what I could improve on or what’s missing
  • Share your ideas for more content or functionality in the comments
  • Have a great day!

This is it for this devlog. I wish you a great day and enjoy the rest of Flavortown! We’ll see us in the next one!

Attachment
Attachment
Attachment
Attachment
0
djblackberry64contrib

Last part of the translation series, chefs. Foundations section port to German. Part (3/3)

What changed in this devlog:

  • Translated “4_definitions-in-programming-concepts.md” in foundations into German
  • Translated “5_how-do-i-program.md” in foundations into German
  • Fixed all the remaining links broken in added German foundations section lessons
    –> they were broken due to path differences between English and German directory
  • Grammatical and logical fixes for both the English and German version
  • Attempted extension of the override file failed –> more research on that needed
  • YAML frontmatter correctly added to each German translated lesson in foundations

What I would appreciate from you:

  • Please give constructive criticism on what I could improve on or what’s missing
  • Share your ideas for more content or functionality in the comments
  • Have a great day!

We have sadly reached the end of this series, but stay tuned for more devlogs as this curriculum continues to evolve!

Attachment
Attachment
Attachment
Attachment
Attachment
Attachment
Attachment
0
djblackberry64contrib

Next part of the translation series, chefs. Foundations section port to German. Part (2/3)

What changed in this devlog:

  • Translation of the rest of “3_history-of-programming.md” in foundations section to German
  • Fixed image error on the second image in the lesson “3_history-of-programming.md” in foundations by adjusting directory path

What I would appreciate from you:

  • Please give constructive criticism on what I could improve on or what’s missing
  • Share your ideas for more content or functionality in the comments
  • Have a great day!
    This is the end of the second part of this series. Stay tuned for the next update!
Attachment
Attachment
Attachment
0
djblackberry64contrib

Translation series, chefs. Foundations section port to German. Part (1/3)

What changed in this devlog:

  • Translated “1_intro.md” in foundations section into German
  • Translated “2_what-is-programming.md” in foundations section into German
  • Tranlated “3_history-of-programming.md” until “Low Level Predecessor Languages” in foundations section to German
  • Fixed inaccuracies in the history section in both the Original English and the German translation
  • Added German sources in the links to wikipedia and other sites.
  • Battled with RSS date config but ultimately concluded that the warnings are just cosmetic.

What I would appreciate from you:

  • Please give constructive criticism on what I could improve on or what’s missing
  • Share your ideas for more content or functionality in the comments
  • Have a great day!

This is it for the first part of the translation series. Follow up with the next part!

Attachment
Attachment
Attachment
Attachment
Attachment
0
djblackberry64contrib

Next devlog, chefs. I keep them comming ;).

What changed in this devlog:

  • Added the IDE section to lesson 5 in foundations
  • Added Installations section to lesson 5 in foundations
  • Added Windows installations section to section Installations in lesson 5 in foundations
  • Added macOS installations section to section Installations in lesson 5 in foundations
  • Added Linux installations section to section Installations in lesson 5 in foundations
  • Added yaml frontmatter to lesson 5 in foundations
  • Added new section called “03-advanced-section”
  • Added “1_intro.md” to “03-advanced-section”
  • Added number prefix to sections e.g. 01-foundations, 02-language-specific-lessons and 03-advanced-sections
  • Updated yaml frontmatter prev+next attributes to match new structure due to renaming
  • Added expectations setting to “1_intro.md” in “foundations” and in “advanced-section”

What I would appreciate from you:

  • Please give constructive criticism on what I could improve on or what’s missing
  • Share your ideas for more content or functionality in the comments
  • Have a great day!

This is the end for the latest devlog! Stay tuned for more!

Attachment
Attachment
Attachment
Attachment
0
djblackberry64contrib

Another devlog, chefs. Glad to see y’all again.

What changed in this devlog:

  • Added a new lesson called “5_how-do-i-program.md” in foundations to the curriculum
  • Added a the OS section to lesson 5 in foundations
  • Added the most common desktop OS under the their own respective headings
  • Added the other OSs (BSD and mobile) under the “Other” category
  • Added Android and iOS+iPadOS to the mobile section in “Other”

What I would appreciate from you:

  • Please give constructive criticism on what I could improve on or what’s missing
  • Share your ideas for more content or functionality in the comments
  • Have a great day!

That’s it for this new devlog! I’ll keep y’all updated!

Attachment
0
djblackberry64contrib

Dear chefs,
I heard your calls for more dev logs. So here we go ;)

What changed in this dev log:

  • I fixed the bugs users were experiencing with the prev+next button functionality
  • The CSS in the html override file has its own file and correctly uses the import by MkDocs now
  • I added prev+next buttons to every lesson
  • I added a link to the first lesson into the welcome page (the blue button at the end looked odd so the link does its job)
  • adjusted everything naming wise to match the format (lesson number)_(lesson-title-in-kebab-case).md as well as the links
  • Tested the changes locally
  • Deployed the changes so you can directly benefit from them
  • I did some research into the stuff I use to get ideas for extending the curriculum on a technical level

What I would appreciate from you:

  • Please give constructive criticism on what I could improve on or what’s missing
  • Share your ideas for more content or functionality in the comments
  • Have a great day!

That’s it for this dev log. I hope you enjoyed reading it. We’ll catch us next time! ;)

Attachment
Attachment
0
djblackberry64contrib

I worked on expanding the current lessons - namely 1_intro.md as well as the 2_beginner-resources.md in the language-specific-lessons category. With the 1_intro.md I added a whole section with starter languages, their features, example use cases and their quirks, often also with links to resources to clarify meaning or validate facts. In the 2_beginner-resources.md I added a new section called “communities after this curriculum” and added hackclub as the first community to be mentioned. I also converted every lesson file name into the format of (lesson number)_(title of the lesson in kebab case) to unify the naming scheme for future lessons.

Attachment
Attachment
0
djblackberry64contrib

Shipped this project!

Hours: 0.31
Cookies: 🍪 1
Multiplier: 3.17 cookies/hr

I built a programming fundamentals curriculum by using and configuring MkDocs and hosting it on GitHub pages. The hardest part was choosing the plugins from the ecosystem or building functionality myself and orchestrating everything to work with one another. I solved this by observing the changes made by the different extensions and then adapting my configuration/code respectively. I’m really happy how it turned out as I also got to learn more about computer science along the way. It’s still a long way to go but I’m excited to continue this.

djblackberry64contrib

I worked on adding more to the details and summary section of the lesson 4_definitions-in-programming-concepts.md and proofread everything for grammatical and or informational mistakes. As I said there went more work into this than currently tracked but in the tracked time I did work on this summary section and did some checks.

Attachment
Attachment
Attachment
0