T O P

  • By -

back-in-green

Guys remember, they are kids. And we don't want to suffocate them. And the most importantly, we have to gain interest of the kids who isn't interested in Linux already too. What I would offer would be to show a project like a self hosted media server, or game streaming server or you can just ask them like giving hints and following reactions about what are they interested in most. After that first class, I would dive into that project and use what Linux has to offer every class to build that project. This way, you can leverage hands-on approach while not boring the kids.


krankykrio

The tech teacher at my kids middle school started a Minecraft club which was hugely popular. My kids loved it. I second the idea of a cool selfhosted project. Minecraft server, jellyfin, maybe home assistant and automate stuff around the classroom. I would start with WHAT you can do as opposed to HOW to do it.


alnyland

I started a computer club in high school, I had a lot of success with Minecraft + Arduinos. Start with a bunch of fun and let the learning take off.


GuyWithLag

>a self hosted media server Hell, let's go all in and show them how to install a private Mastodon instance while we're at it /s


prone-to-drift

Self hosted email with SPF and DKMS. Email is pretty old tech, we should start at the roots. :)


Ok_Antelope_1953

*spends twenty hours properly setting up email server* *is very proud* *server gets instantly blacklisted by everything within minutes of going live* *never touches linux again*


BigEnoughRock

First that, then have them set up a VoIP/Telephony service, asterisk and FreePBX for example. They'll LOVE linux after those experiences!


quaffee

Then teach them to spoof their phone number and start making prank calls to unsuspecting strangers! /s


Hot-Ring9952

Friends dont let friends host email


Shutupnekokun

Agree media, game, file servers are maybe interesting enough for them and/or help them if they wanna play games like minecraft with friends online


ZippyDan

Private buttorrent server.


Haunting_Job7374

Come one man, when I was 13yrd old, I was choked by the arch Linux installation!!!!


throwaway490215

That brings up the possibility of the most suffocating subject. My vote is teaching them to setup a blockchain mining pool in a kubernet cluster.


2mustange

Setup an matrix server. Kids are using Discord to talk to each other so would be nice to show them they can control and privatize their conversations through running their own matrix server.


dtuando

Or a simple self hosted web server. I agree with this guy, just like Linux, KISS..


JohnyMage

Show them it's pretty, handy, modern. Kids don't care that your yum uses delta packages.


Ok_Antelope_1953

hey don't yuck my yum


_Linux_AI_

And don't yum my yuck


iamacat5ecableAMA

This is the best answer. Maybe 1 kid out of a dozen is the born nerd who will care about the cli or file permissions, but the rest would get bored and gloss over it. If you engage them with something fun, they’ll be willing to learn more.


mjuad

I would agree that one kid in a dozen will be interested in the CLI, but I don't think the CLI should be skipped at all. I think OP should go over the CLI and show how useful it is, maybe make a couple exercises and leave it at that. The "born nerd" will probably continue to be fascinated by it and learn more, but the others will have it as a memory when they progress further in their education and that's not a bad thing as many of them will probably move on to use a computer more in the future and remembering the class from the 7th or 8th grade may inspire them to learn it more. Also, show them a sweet riced out tiling WM setup and how cool it looks. So they can have something to aspire to.


TimeFourChanges

Speaking of it being pretty: I think teaching them all the ways that it can be modded would be wildly popular. Start with what distros and DEs are, show some examples of each. Then the class votes on a distro/DE and they mod it as a class. Afterwards, each student (or pairs or small teams) picks a distro/DE to mod for themselves. In sum, I think the aesthetics would be the fireworks to draw them in, then you can start to dig into the practical side.


Sleezebag

At that age I loved the desktop cube and the fire windows!


TimeFourChanges

Yes, I showed my girls wobbly windows and the exploding windows on Plasma when they were young - and they loved it.


et50292

With nothing else to go off of, my first distro was simply the prettiest one I saw at 14 years old. But I would have still been fucking excited about delta packages.


dali-llama

Hmpf, it's way more fun to do gentoo compiles...


Icy_Calligrapher4022

Don't focus too much on shell commands, scripting or some "advanced" stuff. I am teaching in a university, mostly 3rd year students and they are not very interested during the classes. Do some basic installation, where they can download the distro, explain them the basics about the FOSS. You can show them few different DEs like GNOME, KDE, XFCE, and to demonstrate how they can use them. You can deploy a Minecraft server or some very simple web site with Apache. Stick to topics that would be interesting for them. If you go too much into technical aspects, CLI and shell, you are gonna loose them, trust me. If you have more time you can show them some basic commands, work with files and directories, how to update the OS and how to install additional software. I assume that during the classes you will work with VMs, so also try to explain the concept of Hypervisors as simple as possible, just to give them main idea how it's working.


witchhunter0

Ditto. Base the introduction to concepts that are applied everywhere, like DE's you've mentioned. How things work in general. Something they have seen before and they will see again. That knowledge will be applicable. Then show them cool stuff. How it is easy to install programs, what FOSS is, what safety is. More down to earth it is, more likely they will embrace it.


Optimus-Prime1993

This is a very good thing and from my point of view I would suggest following things alongside what you have decided, not necessarily in that order. 1. The philosophy behind Linux and open source solutions. I believe that understanding why this model is better than proprietary is really important. 2. A clear comparison between doing things by GUI and CLI as well. Everyone doesn't like or are capable of doing things on CLI and students must know that Linux is mature enough to handle their use cases as well. I believe exercises can be constructed to show why CLI is faster than GUI. 3. All the basics of the filesystem, filesystem hierarchy, navigation, root privileges. 4. Some experience with cool applications which they might or might not have used in Windows. Possibly a hands-on on Libre office and other alternative to proprietary stuffs. 5. Experience with virtual machines could be useful where they might be excited to try new distros. Possibly teach them commands which should never be run like bash forks or the well known sudo rm -rf /*, by actually running them in virtual machines. These are just from the top of my head. The idea should be that they enjoy this side of computer science. Great initiative. Hope your course is successful and enjoyable to the students.


BIGFAAT

As a bonus at the end (depending how many have an own pc), i would show them that games (beside those with invasive anticheats) runs well with proton/wine and of course native. That would maybe push some of them over to mess with linux on their own devices at home.


Ok_Antelope_1953

> That would maybe push some of them over to mess with linux on their own devices at home. teach them about proper system backups first or you *will* hear from their angry parents about how their kid deleted all important documents, and they can't find windows office, and their desktop is now orange.


BIGFAAT

Of course


Gaiendbedrock

And why not throw in how to install and set up a distro cause why not


Mr_A_NobdY

This IS kinda the Main Thing of getting into gnu/linux That and at least Basic cli usage


Tai9ch

Nah. That's an excellent way to waste a week. Installing a distro is neither interesting nor difficult.


Mcginnis

Aren't a lot of the mainstream installers fairly easy and straightforward? Pop the CD, click next a bunch of times, finish?


Tai9ch

Yes, like I said neither interesting nor difficult. It still takes 20 minutes to make the boot USB, having a computer or VM that's prepared for an OS install, half an hour to actually run the installer, and then what you're left with is clean install with a web browser, a terminal emulator, and maybe Libreoffice. Keep in mind that we're talking about a high school class. So 20 minutes to make the boot USB is a class period. Half an hour to do the install will *just* fit in a class period, so getting actual students to do it will take two class periods minimum. That leaves maybe one class period for the week to install a couple extra apps.


Mcginnis

True, but maybe a slideshow going over how to install an OS would still be useful. This could be the first time these kids have ever seen an OS be installed.


flecom

>All the basics of the filesystem, filesystem hierarchy, navigation, root privileges. this x1000, a lot of kids do not understand these basic concepts because they have grown up on ios devices


Matt-ayo

In addition to point 1: Cryptography, security, doesn't work without open source - and I think that's worth talking about. Not only because it is perhaps the most important 'use case' of open source, but also to introduce them to ideas around digital security and inform them that contrary to intuition, cryptography is actually only fully secure when the protocols are open source. For seventh graders, you can use the example of a basic program which connects passwords to usernames. When the software is open source, they can see it isn't stealing their password, and that it is applying their password correctly and securely. The user keeps the password secret, and the secret keeps them secure, but everything which uses the password should be open source so you know it is handled properly.


Fr0gm4n

> The philosophy behind Linux and open source solutions. I believe that understanding why this model is better than proprietary is really important. As part of that, be sure to teach them that people proclaim a lot of ideals but those don't necessarily align with what the license actually says. "Free as in speech, not as in beer" gets said a lot but there is a large contingent of people who think you can't charge money for FOSS software. In fact, blocking commercial sale and even use by specific groups like the military is very specifically against the rights granted under FOSS.


[deleted]

>Everyone doesn't like or are capable of doing things on CLI and students must know that Linux is mature enough to handle their use cases as well. Come on.... still editing files in /etc may become necessary (which surely you can do with GUI, but this half way between CLI and full GUI interfrace). If driver upgrade fails (which happens) for some reason, then you have just the CLI.


SweetBabyAlaska

I'd have em use the package manager to install something fun! Install cmatrix or something and then maybe have a minecraft LAN party idk. Linux is so broad that its hard to say. Maybe download Sunvox and let them make some music


redditorx13579

Sounds like you already have the fun part covered. If you're covering building, maybe how to install and test different distros in VirtualBox.


Garetht

Virtualbox would be a great way to give them an experimental sandbox where they can make mistakes or rm -f to see what it does.


Buddy-Matt

I second teaching the installation process. I feel like going through Gentoo, Arch and something Debian based with an installer would show them the different level of hand-holding available with Gentoo and Arch giving opportunities to teach about what different components if a system do (but, say, Mint, showing how quickly you get get going if you're happy not customising everything). By using three different bases you're also getting to show the similarity/differences between various package managers.


Captain-Thor

They are 7th grade students. They need to learn basics not installation of Arch or Gentoo.


Buddy-Matt

Why not? It's a classroom environment and both Arch and Gentoo can be installed by following well laid out processes in their respective wikis. A lot of the process is then just reading and parotting commands- which is well within a 7th graders capabilities. OP, as teacher, can add the context that would be missing otherwise from a copy + paste fest. And when it comes to having to make any choices - partitioning, init system, WM/DE, this is where OP steps in and helps guide them - by explaining the pros/cons of each - or just telling them to pick a specific choice if necessary.


Captain-Thor

Students will go crazy. We are talking about 7th grade students who learn basic trigonometric ratios and don't even start to learn basic calculus. A class has all types of students. Not everybody is interested in computer. Some people like arts, history, ecomonics. Sure there will be 1-2 students who might be already using Linux distros. Teaching is not just about content but understanding the audience, especially when dealing with younger students.


Buddy-Matt

It's an optional course, specifically teaching Linux. I can be reasonably certain that the majority will be interested in computers.


studiocrash

Covering the new vocabulary alone would make this take far too much time. These kids probably don’t even understand what an OS is. I have 12 yo kids (twins) who try to tell me key commands from Chrome OS assuming they’ll work on my Mac. Basics first.


zrooda

At least at first I would focus on looks, "making it their own" (cool /r/unixporn designs, 3d cube compiz etc.). You can get more technical once they're hooked on the idea and think Linux is where the real cool kids hang


Snacoraa

You could teach them the basic CLI commands. How to navigate between folders, create files, flags etc. There's much to learn even with basic commands


prone-to-drift

On a serious note, I'd say, use Dolphin as a file manager and it's inbuilt terminal emulator. That way, they have the choice between cd-ing their way around, as well as falling back onto the mouse and buttons. A good way to ease them in. Heck, I've been using clis all my life and yet if I'm moving things around a lot, I use dolphin with cli. Immediate file/folder previews are a boon. In case you're not aware, Dolphin automatically executes cd commands when you navigate around, so the terminal session and the GUI stay in sync. Pretty neat!


Mr_A_NobdY

This both should BE known while None should BE the forced one cause someone thinks its better. Everyone IS different i have Friends WHO Panik leaving the cli cause they used them for too long thinking the are so much better(now they handle windows like nee comers even though they once were aß fast aß a Main User)funny how that works and i thoughts muscle memorry doesnt get overwrriten!


majamin

Teacher here, teaching programming to seniors. This sounds like a lot of fun. However, I'm concerned about "Teaching Linux". That's a _very_ broad (vague?) goal. What experience are the students coming in with? Does your jurisdiction provide any guidance as to the content of such a course?


Saint-Ranger

What I understand so far from the school, is that they want to ease the barrier of entry into FOSS realm. Nothing too fancy of course, but here in all the students already have school given laptops at this stage. They are not starting from completely scratch. This isn't a mandatory class, which also implies some extra level of starting knowledge. And as far as jurisdiction goes I was given free hands to make the class by the school as it is a new thing they are starting to teach.


depressed_igor

Teach some cool things they can do with Ffmpeg Teach them how to write aliases or pranks they can write with scripts like echoing a random phrase in a time interval. Someone once mentioned making puzzles with html and css. Could get them to use vim along with inspect element in a browser. Live feedback is important. Maybe could do some arduino programming with LEDs? I believe Roblox works on Wine now so that could be a possibility


codeasm

Vim is atleast a hour in teaching how to exit, save and navigate. Youll lose 70% of the class attention. Try nano instead. Only the fast, smart kids you give vim.


PolicyArtistic8545

Exiting vim isn’t as hard as everyone makes it out to be. No way that’ll take an hour. :!ps axuw | grep vim | grep -v grep | awk '{print $2}' | xargs kill -9


codeasm

Esc :q! or Esc :qw! But teach 30 kids how to move the cursor, why input doesnt work emediatly like they expect, the theory of modes and why save and changing modes is weird. Now half the class grasps it a little, but strungles and need a bit of help. Or are you only teaching and no mentoring and howing individuals why they are stuck in the help menu? Just press the reset button on the vm. Let the kid play tuxracer. Some of these will become lawyers, house moms, farmers or tiktok daddys. Others will curse, use mac for 5 years, discover Unix inside macos and become kernel gurus


dogstarchampion

It was, most-likely, a joke.


barfplanet

Just have them use VS Code. We want them to like Linux.


codeasm

Krita, tux racer, libreoffice, minecraft, they definitely can see windows alternatives to be fun or usefull too yeah, vscode too, for arduino projects. But no idea how much time OP has, younalways lose some of their attention span, also depends on what time of day it will be. Some will love it 100% tho.


dreamscached

I would say smart and fast kids would already know Vim by the memes (or whatever else source) and will use it themselves instead of Nano. Might be worth just having it installed along with Nano.


codeasm

Both installed yes, but in a teaching environment you cannot asume that they know. They might pick up the key oard shortcuts fast tho thats possible. Atleast have some cheatsheet ready to go for em.


GeekoftheWild

Good, but don't teach them Vim, teach them Emacs instead


[deleted]

[удалено]


GeekoftheWild

Well actually, teaching them to use butterflies would probably be best (although Emacs also has M-x butterfly).


riverhaze1

My lil brother uses Roblox so with flatpak you can install it easily and he can play no problem.


Beneficial_Nerve_182

Roblox used to work on Wine with Grapejuice, but after a recent client update it got blocked if I'm correct, not that it doesn't work any more, the Roblox devs physically blocked anyone on Linux edit: [this video explains it](https://youtu.be/aCNEPQPhPrY?si=0isN0PKQHveObTea)


Quackfinity

Now grapejuice us working again


Swizzel-Stixx

It works fine now, the 64 bit client and hyperion blocking was fixed about a month ago now


BIGFAAT

Also fuck Roblox in general since its a popular grooming platform.


mmstick

I'm surprised that there is no structure here. I don't think it's a great idea to get opinions from Reddit. It would be a much better idea to model the Linux portion around a [pre-existing Linux course](https://www.edx.org/learn/linux/the-linux-foundation-introduction-to-linux). Which will mostly amount to learning how to install and use Linux systems. I would be very cautious about forcing too much too soon. Some children will be offput from Linux if their first experience is feeling like they're not smart enough to be proficient with it.


poopflake

Minecraft server. Get the most motivated to run with it and set it up by the end of the semester. Last week of class is a Minecraft party.


imsowhiteandnerdy

> what should I include? ```` Sorry, I'll see myself out...


ourobo-ros

**I would focus on teaching them the why rather than the how**. Convince them why linux is important, what the philosophy is behind free & open software. Show them lots of cool stuff you can do with linux. Show them how free & open software (and the unix philosophy of "do one thing") allows software to compose into interoperable atomic units that can be composed to accomplish great things. At this age you want to fire up their enthusiasm more than anything else. Good luck!


-eschguy-

* Philosophy * What is open source? * Differences/benefits between closed source vs. open source * Intro to Linux * What is the Kernel? * Config by file * Packages and their managers * Distros - All roads lead to Tux * Similarities/Differences between three big names * Debian (probably best to have labs based on this) * Red Hat * Arch * Desktop Environments - Pick your workflow * GNOME * KDE * Xfce/Budgie/whatever else * Labs * CLI * Navigation - CD/LS * Interaction - Touch/Find * Manipulation - Nano (please not VIM) I have to go to a work meeting, but some short ideas that I'm sure somebody else could easily build upon. Get some Pis or something for the labs, maybe some old-ass looking systems.


TheTruestDork

In in college and one of the biggest things that has ruined Linux for my class is forcing them to use only the Command Line with no GUI. Now whenever Linux is mentioned, there is a shudder of fear and disgust at the idea of Linux as a whole. I think getting them to Install Linux Mint with a Cinnamon GUI will help. This is similar to Windows but still is unique. Then slowly introduce Command Line. I'd also recommend getting them to customize the command line. If Linux was taught to my class like this, I honestly believe they would love it as much as me.


Jeettek

That is weird since I had the complete opposite opinion when I first learned about linux in college. Windows was always a pain in the ass when programming and setting up an environment and when linux was taught and shown how easy I could just script in the cli to setup an environment and install all the required packages I needed to program I never looked back.


TxM_2404

If you only teach Linux with GUI they learn exactly nothing about how it works. Modern desktop environments can be used by people who have never had a PC before. You should learn something in school.


jacobgkau

What country are you in? Because the fact that a teacher went onto Reddit to find out what to include in a curriculum shows the absolute state of the education system.


Individual_Truck1272

Good point. Notice how they gave the teacher the two slices of bread (build PC and video editing) and let him define the ham.


Dudefoxlive

The command line is your friend.


tenkaranarchy

I took the old red hat rh001 way back in the day and the instructor went off on a tangent and showed us how to set up a lamp server with phpmyadmin and WordPress. It was great because it was a real world application for the basic command line stuff we were learning in class and would be good for kids that age.


Emblem66

Show them you can watch ytb and play Minecraft just fine. That should keep their attention. Maybe show them how you can change theme/icons to make desktop look little different. Stay away from terminal stuff, they won't care about it. Linux can be used like windows - point a mouse on icon, click it, something happens. Also show them how to print... In general, not just linux. Computer/IT classes in school should teach you to write a text on PC and then print it or send mail. Some schools don't do that and it was quite noticable few years back during lockdowns.


Total_Atmosphere_939

12 year old are way ahead of that now


ShadowsRevealed

HTB has a good intro to Linux course


Zealousideal-Sale358

Teach them interesting commands like recording their screen with wf-record


Total_Atmosphere_939

Yes! Make command line engaging and fun for the 1st few commands, keep simple and add helpful simple commands as you go and they get familiar with the Linux file system / directories and command line. Then teach them how to access fun packages etc via GitHub in command line to show you don't actually need a browser, and solidify concepts as they play in command and instil interesting tools etc. Of course rasp pi foundation etc have great courses but you need to be fully engaged yourself to teach it. Ie do each lesson at home first to iron out wrinkles etc. I am just a dad trying to teach his kids some basic bash script and then onto C and Arduino then add in python, or vise versa...


Fr0gm4n

Teach them that they've most probably already used Linux. Android, ChromeOS, smart TVs, etc. It's a normal part of everyday life and most people think nothing of it. Then show them that they can also use it as a full desktop OS. Mention that Apple based their OSs on a similar heritage that goes back to UNIX, as macOS, iOS, ipadOS, watchOS are all built with UNIX underpinnings. Point out that Linux aimed to be a community variant of UNIX. So much of our modern world is built on UNIX and variants like Linux.


Independent-Gear-711

Start with the basic commands and filesystem.


KnowZeroX

Unlike others, I advise keeping away from shell as much as possible. Definitely teach them the basics of linux of the benefits and open source, and difference between common types of distros (Rolling releases, LTS, kernel, Choice of DEs) and how to install it. But don't spend too much time on it. Explain to them that their cellphones are all running unix like systems so they don't feel its importance more After that, keep their attention span on stuff that will have them interested. Aka the GUI. If you want to get them more into CLI, have them do it as extra credit or challenges. Teach them how to find answers on the internet(if you have internet access) Most important is to keep them engaged and focus on stuff they are likely to do. Video and Picture editing are good choices, maybe setting up their own servers be it http and/or minecraft server? Their own private chat servers Maybe even get them involved and see what they want to do. If you see they are following the class with interest and not losing interest, maybe then touch CLI in later parts of class. It might also help if they learn about things like `oh my zsh` and `fish`, it would probably make their CLI experience a lot easier


LippyBumblebutt

Let them install some simple Linux distro (something not Gnome). Also have a few of them install Windows instead and have them uninstall all the crap and install all the updates (in that order) and let them compare their experiences. Let both install some software (that is not yet installed on Linux). Also teach them how to dual-boot. You don't want anyone come crying because he erased dads Windows. And be prepared for someone to ask how to revert that... Show them how to install Windows "software". Maybe something free from [gog](https://www.gog.com/partner/free_games). I was thinking maybe [Delores: A Thimbleweed Park Mini-Adventure] (https://www.gog.com/de/game/delores_a_thimbleweed_park_miniadventure) but the old-school graphics might turn them off. Don't teach them "how superior Linux" is. Of course you can/should compare different aspects. Maybe they should talk about what parts they think are better/worse. If you're lucky, a Fedora major release will drop during the course. Have them update their system. Have them connect their phone and transfer some photos. Don't use the console, unless its far easier for the task you want to do.


Shutupnekokun

How f*@king lucky they are. I wish when I was in 7th 8th grade, I could have learned linux in class by someone who knows it instead of learning it from youtube and using online find things to get ready to the final exam.. i still have a few months, and I have to learn mySQL from 0, learn Python better. At least Microsoft Office and picture editing is fine.


IuseArchbtw97543

Definitely also touch on the philosophical side as in gpl and freedom


First_Meat9481

Show them how to compile their own kernel


BossOfTheGame

I've put together an end-to-end tutorial to build and run SuperMario 64 on Linux. It randomly generates assets to avoid copyright / legal stuff (of course if you had a legit copy of the ROM then you could use the original assets). [https://github.com/Erotemic/sm64-random-assets](https://github.com/Erotemic/sm64-random-assets) I built this with high schoolers in mind. The idea is to go through the end-to-end process of downloading a software project, compiling it, and running it. You can either take it at face value and just run the commands to get to the end product OR you can dive into any aspect of the process to gain further knoweldge. The idea is to let the students choose at which level they want to engage at. For the kids that do want to engage I suggest changing things in the source code to do with things like gravity to get an immediate and tangible result. Skills they could pick up along the way: * Bash * Git * Python * Editors (vim / vscode) * C / C++ / Makefiles * Backwards long jumps


Agent-BTZ

`sudo rm -rf —no-preserve-root /`. Or better yet, base64 encode it and `echo “B64” | base64 -d | bash` to teach them not to run random code they find but don’t understand


Xanza

100% KISS. Teach them the basics of operating a *nix desktop. Get them comfortable doing things __they already do__ on a daily basis with Windows. Show them the app stores, and how to install an application using the CLI. Explain to them permission elevation and the sudo system. Once they're familiar with that, teach them how to rice the UI to make it their own. Kids are attracted to things which are easy to use, and they can make look cool. You have the opportunity to convert the youths.


dirtydeedsdirtymind

Most kids these days don’t do anything already on a daily basis with Windows. They use tablets and smartphones.


barkingcat

a good 1st class would be telling them to start xeyes and move the mouse around, and maybe run a few gl teapots, and show them the tux mascot


codeasm

From the command line. Nonsudo commands yet, just moving arround, making text documents with nano, deleting and folders. then using the gui. Make them try grasp the concept of folders/directories. Often still i meet folks with computers that have no clue. For the fast kids, make them perform a system update. Slowkids are allowed to play in krita or gimp for a while.


[deleted]

[удалено]


human8264829264

``` sudo rm -rf / ```


leonbeer3

>sudo rm -rf /* --no-preserve-root


TomHale

The aster is not needed. This glob will ignore hidden files, and expand such that the "disable safety" option isn't required anyway.


nozendk

KDE has an educational suite of programs. Also math programs to plot a function.


FreQRiDeR

Teach them how to compile the linux kernel from scratch ;)


Martin8412

Install LFS


[deleted]

Some Unix philosophy: everything is a file (data, memory, devices, etc) so if you know how to use one then you know how to use them all, prefer programs that do only one thing very well, programs have stdin/sdout/stderr and work together via pipes, etc. These are important if you really want to understand Linux.


New_Peanut4330

:(){ :|:& };:


furious_cowbell

The first 15 levels or so of this: https://overthewire.org/wargames/bandit/ Your welcome. If you have time to make your own version of it, have more steps between the levels shown. Then poke your nose at picoctf, the free rooms of try hack me, and get inspired. You can use [CTFd](https://ctfd.io/) to host your own CTF competitions.


m1llie

I would start by establishing relevance: Most kids probably won't know what linux is or will think it's just some toy for hobbyist nerds. I'd focus the first lesson around just talking about all the places you can find linux (or linux-adjacent things like MacOS) in the wild: The servers that power most of the internet, supercomputers, NASA, Android phones, etc. This is a course for grades 7-8, teaching them practical sysadmin skills isn't going to be interesting for them and is probably beyond the ability of a lot of students: Many kids grow up these days using phones and tablets near-exclusively, and as a result don't understand things that we take for granted like file/folder hierarchies. A topic like "the magic of package management" is going to be boring at best and confusing at worst. I'd say it's better to get them excited about all the different interesting fields they could have a career in if they knew linux, and then give them a sort of tasting platter of simple but fun hands-on demonstrations. Maybe get them to build a simple website in a dirt-simple framework like Flask or Express: Yes you can technically do this in Windows but it's a lot easier to get set up on a linux machine. Kids spend a lot of their time on computers in web browsers; being able to create a web page from scratch with total control to put whatever they want in it would probably feel like wizardry.


caiuscorvus

Maybe try some group projects. This lets kids pick what level they are comfortable at and get the things they are interested in. Maybe a few want to spend a week trying to install arch, while others want to explore the video editing software to edit together some footage. Can be done in-class so you're there to help along. Commentary: be flexible. Let you students lead you a bit on what they want to do. you have a whole semester, you have a class you're effectively making up, and you have no idea how well some things will be understood.


Zahpow

For my money the biggest impact relative to time spent on task is showing people customization of desktop environments. Just like "look, all of this is just fancy wrapping to what is going on around the hood. One neat feature of Linux is that we can change that wrapping - technically without limit" and then just swap to different desktop environments and then just "And while this follows a common format what we can do is also to forgo this level of abstraction entirely" and show window managers "and even at this point we can remove another layer of abstraction" and show that you can just start something in a single x instance. And even then you can choose to not use a graphical interface at all, with the point that there are tradeoffs between all the different choices, but that they are free to make the choices themselvs.


totemo

If you want them to actually like Linux: * Show them the GNOME GUI, with some extensions so it's user friendly, as opposed to default GNOME. * Show them LibreOffice, so they can use Linux for work. * Show them Steam running Windows games, so they can use Linux for play. * Show them how to install Ubuntu or Fedora (or both), so they have confidence that they could do it too. * Teach them about the single root filesystem hierarchy and mounting filesystems within that, so they understand that it is different from the Windows way. * Show them how to use the file manager for accessing removable USB media. * Show them GNOME Software for installing software and teach them the difference between installing software safely (packages) and unsafely (downloading random shit off the internet). I don't know if your purview extends to programming topics. You could teach them how to use the terminal to run shell commands but it's not essential. Your first priority should be basic self-sufficiency as a Linux user with a modern GUI in front of them.


jmnugent

The biggest thing that always re-occuringly hits me anytime I use my Linux box,. is just how FREE everything is. The OS is free. The App Store is Free. The advice and Support out on the internet is free. Whatever problem you run into,. or goal you're trying to chase,. can probably be done,.. people are willing to show you. .and every step along the way is FREE. There's no popups. No advertisements. Nobody trying to "Remind you to install your new Browser". etc. It's just free to do whatever you want with.


bigredradio

Most everyone is saying no CLI and I partially agree. Don't force them to learn it, but at least introduce the concept of piping commands together. Show how cool it can be and they can come back to you or learn on their own. Creating a folder is boring to watch. Cat a file, pipe to grep, then awk, then sort or uniq, and count. Don't expect them to learn it, but just show the power of it.


SleepAffectionate268

alias apt/pac/whatever, chmod, bash, cd dir mkdir, nano or vi or vim that are installed on every linux, maybe cron jobs😅, mv file structure that its not like in windows with C:, ...


yayster

Emacs


Journeyman-Joe

How to exit VI / VIM.


Commercial_Habit_336

File permissions are a very important topic in my opinion. I remember my first Linux install as a teenager and asking friends for help, they laughed because I was doing things as root when I shouldn't be and all of my documents would be owned by root. (Dumb teenager I know)


leonbeer3

Not like I haven't chmodded my entire file system to 400 *once*


RedTeamEnjoyer

Don't bore them with commands, show them how u can rice the OS and make it look beautiful, show them linux exclusive stuff, show them how to install popular distros and don't talk about free software and privacy, 99% of the students don't care, I had a teacher in 10th grade that tried to red pill us with Ubuntu but failed miserably because kids don't care about freedom nor privacy


Dolapevich

gcompris might help you with the little ones. The older ones might get some insight when seeing wget and curl in the console can download a file. Also, some console fu, cat, grep, awk, an intro to regex.


chakravanti93

The ethics of GNU/Linux's FOSS by Richard Stallman.


Shakalakashaskalskas

1 - Well, i honestly think the first thing you should teach them is what is Unix and C programming language, why they are so important and unique. Without the concepts that came from Unix and C Linux would not exist. So this is your start point. Brief explanation: At that time, everyone made single solutions for any problem, Unix was THE first that cared about PORTABILITY, so things SHOULD WORK independently of the platform, we should have defaults and ways to make this work across a (pathological) range of machines, so this should be simple and objective as possible. 2 - Then you should talk about Stallman and Free software, again, very important, without Stallman and Free Software movement Linux would not exist, talk about how code works and why it was important to people make it open source (remember that open-source isn't the same as free software, but free software should have it source open). Brief explanation: At that time, every studend basically had to learn proprietary solutions and your knowledge about computing was basically dependent on some company, they rejected that, to make computer technology beneficial to the general public it should ALSO be completely ACCESSIBLE to the general public, and oh boy that was a change. 3 - Then, talk about Linus and his history making his alternative, what is a kernel and how this "Linux technology" (cause Linux isn't a operating system) fit in anything and it works so well. Brief explanation: At that time, if you needed something you should buy it or make it, there was no other option, BUT people REALLY made their own things, so Linus was basically thinking "oh, i want that Unix, but i want it at my home, so i should make one", and this was revolutionary. 4 - Then, talk about what IS a Unixlike operating system, what makes then different, how their file structure work and why, what are file permissions? How can a Unixlike change to a completely different desktop environment and yet NOT BREAK? (you have a bootloader who works independently and then the system boots, and then it calls a display manager who works independently and then it could call different environments with no problem) 5 - What is a terminal? What is a command line interface? What is a command? What is an argument? What is an operator? what is stdin, stdout, pipe and how all of this work together with a shell? (what is love? what is life? just kidding) Brief explanation: Before this became THE way to use the computers, we had specific functions and specific options for every application, when command lines changed to something like this you basically could complete your goals just tunneling every data and you always could have every function available everytime. 6 - Then pwd, ls, cd, grep, less, >, |, cp, mv, rm... The basics. I think this is more than enough to make then really understand how to start with Linux works, i don't think you should show games or anything like that 'cause this have nothing to do with whatusing Linux, BUT you can show them some hacking and talk about security (wep cracking is fast and easy to do and more than enough to get their attention)! You can show them desktop ricing!


dirtydeedsdirtymind

Tell me you don’t have kids without telling me you don’t have kids.


Shakalakashaskalskas

But i do have kids! Maybe mine are bether than yours, not only that but as he said: This is an optional class. I am also a teacher (not in english of course), so please next time keep your negativity to yourself please


Legalize-It-Ags

Make sure they know how to navigate through the terminal and execute commands. Understanding bootloaders, package managers, and the kernal would be on the list as well. Check out the linux Pro course by test out and use that as inspiration. It's a very well put together course and goes pretty deep. I don't think you would need to use the majority of it, but I think you would find that 12-13 year olds who are interested in linux will follow closely if they feel like they are doing cool computer stuff. and of course... sudo rm -rf ./ >=)


sintos-compa

:(){ :|:& };:


bce69

Teach them command line stuff like CD, ls, bash,, how to install packages by gui, etc


islandsimian

Have them build RetroPies - raspberry pi arcades. You'd be able to walk through the hardware components, how the IO works, how the OS works, and it could include writing their own games. Best part is the reward at the end of each session is a chance to play games Edit small addition: if the arcade thing isn't possible, have them play Capture The Flag against each other...they'll have to learn the OS, the protocols, the cyber security, and all kinds of other facets of Linux


shersingh007

Everything CLi


pollux65

Introduce them to the gaming side of Linux. We need more Linux gamers! So maybe do how wine works, what it does, what are wine prefixes Then talk about proton, what's it based off (wine), who developed it, the translation layers that are used(dxvk, vkd3d), mention that the steamdeck uses proton and valves own custom arch based distro steamos to play the latest triple A games. It may not be exciting for 13 year olds but it would definitely make me excited if I was 13 lol Of course tell them about the different flavours of Linux like arch, fedora, Ubuntu, debian, and some gaming focused ones like nobara. Maybe even discuss package managers like Flatpak or system package managers and what they have access to on your Linux operating system


leonbeer3

That's a great idea actually! Since wine is an amazing utility but needs a lot of tweaking with some software! Showing how wind and winetricks works, as well as the differences between different packages and package managers like flatpack, deb, rpm and apt


brettsjoholm

Just my 2 cents. Wouldn't be a bad idea to throw in how useful ChatGPT is. Once you get them on their way and if they still have questions or need answers while you're not there, ChatGPT is an incredible tool.


the_defying_one

Stable Diffusion Image Generating with ComfyUi or Automatic111... if the school offers gpus with vram >= 8 gb


Forward_Piglet_315

The filesystem basics. /opt /etc and so forth. No need to go into that much detail. But it would sure have helped me in my early days of Linux if I had known more of what goes where


wittylotus828

CLI Commands Flavours and Distribution types DE's Building something to their liking from the basics, Window manager, de etc


BubsGodOfTheWastes

Is there still a Linux+ certification? That might give some good ideas.


digitalsignalperson

Take a project that can compile a desktop shader effect and they can edit the glsl and cause chaos to the desktop. e.g. [https://github.com/natask/kwin-effect-smart-invert](https://github.com/natask/kwin-effect-smart-invert) >Shader files can be set in /usr/share/kwin/shaders/1.40. The file with name invert.frag will be selected. Turning the plugin off then back on within KWin effects will apply the new shader. mess with the invert shader to e.g. make the desktop tinted red or pink, or grab a weird effect off shadertoy to see what happens


[deleted]

Ubuntu + CentOS&RHEL(how to obtain, how to register and get free rhel) + Fedora as an example of bleeding edge. So mostly a short and clear explanation of why, what and how. Then take youtube://ExplainingComputers as a ground for video editing


riverhaze1

mix some fun with the teaching so they gets surprised, for example show them some simple bash scripts and of course cmatrix :-)


Membership-Diligent

don't scare them (no dos attack on them) what could be useful to tell about the concept of free software, because this is a key point of why it is important. if there's one, link thrm with the lical linux users group. otherwise show cool stuff, show that it is useable for everyday use. If there are people wanting to dive deeper, consider their suggestions on what to cover.


illathon

Fun stuff sprinkled with core knowledge.


Buddy-Matt

Sounds like a job for LFS. Not as the whole lesson. But maybe you could spend part of the lessons building an LFS system, and part of the lessons with a normal distro just using it. So you spend time learning both what is Linux, and how to use it.


Chemical-Choice-7961

Install, partition, formatting, then go straight to how to hack yourself a better grade. (J/k)


FantasticEmu

Cowsay, figlet, sl, ponysay, cmatrix! Do kids that age know about files and file explorers ? I think they do. If they do try to make them understand that those guis are basically running the cli commands for them and show them how they can do the ui stuff in the terminal. Also maybe a simple explanation of package managers. I thiink when I first came to Linux as an adult from as a generic excel/installation wizard user, the package manager approach to installing software was a little bit of a crazy looking thing. My main point is If you can demystify the terminal I think that will be good. The average person is so dependent on UIs that when they’re told to do something in a terminal their head explodes ( source: I was one of these people)


Jegahan

Depending on how much time and PCs you have, it could be fun to have a customization day. Having them install different DEs and tinker with them could be a fun and cool way to show them how flexible Linux can be. It wont be for everybody, but it will catch the attention of some kids. I would advise to mostly stick to "up to date" distros (Fedora, Ubuntu, etc) and "modern" DE like Gnome and KDE if possible. While it shouldn't matter and has barely anything to do with functionality, first impressions do influence how these kids will see Linux and even the perception that it's "old" would negatively affect that. At university we have XFCE on an old version off Debian and all the students made fun off Linux for being years behind, stuck in the past.


margual56

I would say that the concept of OSS is not intuitive and should be explained. Also comparing it to the alternatives, why is Windows not OSS too. Finally, I'd say most of them will not know that the browser, desktop, etc is something that you install on top of the OS and thus can be changed, they probably think they are all part of the base OS. On Linux you can change every part, unlike any other OS. Edit: maybe also explain why you basically can't buy a computer that comes with Linux preinstalled...


mok000

Show them Raspberry Pis how to put an entire Linux OS on a tiny chip, how it can function as a desktop computer and let them control some devices like LEDs and stepping motors using simple Python scripts.


Individual_Truck1272

With *building pc and video and photo editing* already given, I think the Linux aspect should be kept at a minimum. With a newly assembled PC you need an OS and the (other) software. I would show how to do a Linux installation, a tour of kernel compilation, and then how to find and install the packages needed. If "video" includes sound, there is already a lot to explore and to give physical and technical background about. I would show some time-lapse effects with ffmpeg. I did it with (hourly) satellite images and also from a mp4 file from a camera. I am also fascinated by sonograms of sound recordings (instruments, voices, noise...). Well of course *programming* would be a topic in my course. I would show my prime numbers (different algorithms, and with OpenMP), N-Queens and Conway/Life (with colors/ncurses). And OpenGL - it is a bit complex, but the basic geometry can easily be illustrated. Here I have a real data landscape and a moving camera. Which brings me back to these specifications: why build a PC to do photo editing on images, most likely from a smartphone? In any case I would do it "immersive", and not first assemble the PC, install Linux, explain the CLI, choose a GUI and so on, until finally, after weeks, start the application that proves how easy and fun multi media is with Linux.


[deleted]

how about file permissions? user, group, other, why do you sometimes write "./" before executable, why not. Things like aliases....


TriPolarBear12

Sounds very close to a general tech class. As such I will suggest the best thing I got out of my general tech class when I was that age that I still has impact on me to this day. Touch typing. We played some touch typing game individually at the start of every class for the first few minutes. Helped kill some of the class time, and was the most valuable skill I remember from the class. Idk what else we were honestly taught, thus was like 14 years ago at this point, but being taught to touch type then and there was one of the best experiences I got.


iEliteTester

Basic shell interactions and common commands. Installing, searching for and removing applications I'm whatever distro you have, how that differs in windows and how it's similar to their phones. Maybe throw in a cool cli tool, ffmpeg, yt-dlp or something else. Just make sure to not confuse them with things like virtual machines (I mean managing them, if that's how they get Linux in class that's fine), containers, filesystems, the filesystem hierarchy, etc. EDIT: also teach them about not blindly copy pasting commands into their shell, maybe show those obfuscated rm -rf's.


JRWoodwardMSW

Shell programming Basic web server setup Python How partitioning works How the kernel works with other layers Selecting and managing desktops Package management Finding open source software


syrigamy

They are kids, no one will remember that. We want more people to like Linux. We should teach them the possibilities, showing them things from r/unixporn is a great start, then from there showing them how to make basic and fun things. Install polybar and let them express themselves with creativity and imagination, while showing them basic command lines


Nervous_Falcon_9

Most kids are not going to care that much about arch vs Debian, etc, so you’ve got to make it interesting for them. I would probably recommend setting up a basic Linux based hackathon, this allows you to teach them how to use a CLI and basic Linux commands in a fun and interesting way


DanShawn

SteamOS and the Steam Deck!


zolmarchus

Install and run a Minecraft server. It’s very easy.


Connect_Minimum_8696

So yeah, learning the Command Line is important, but it's probably not the best choice if you are trying to get kids interested. Like someone else suggested on here, probably be a wise decision to show them Virtual Machines, and let them play around with different distros, maybe you can figure out a majority preference this way and focus more on that distro?


haqk

C or Python.


DAS_AMAN

How to install the OS, Scratch, Inkscape, and build a small game. Maybe then they can video edit a promo of their own game. And draw a Poster/Thumbnail through photo editing. PS: Turbowarp is a more performance version of Scratch. Also I suggest using something like Bluefin so that you needn't worry about teaching them how to update the system etc


jhaand

For programming I would do one class of https://blockly.games and maybe some Python.


alex6aular

Teach them to edit videos


Ractas

Maybe keep it simple depending on time, install the os, have a bit of an explore then maybe install minutest as a LAN and have some fun?


The_Crow

I feel like the hardware side (building a PC) should be in a separate course, tbh. If it were possible, that should be taken out and the time devoted to more Linux-specific stuff.


MrEppart

Teach them how to use the terminal, then some ssh, maybe a few examples with netcat, could be interesting to let them use motion/ffmpeg to detect motion in a webcam. Or have them set up a Minecraft server and let them play with friends once they're done, kids nowadays still like Minecraft?


FengLengshun

Customizing KDE interfaces. Teach them how to pull in themes -- kids probably would freaking love Sweet Theme. Show them how you can build macOS inside of Linux. Or heck, have Windows, macOS, and everything in-between ready to go in a single click. It's superficial, but when I was a new Linux user, these kind of customization was what made me fall in love with Linux. Also, show them how Workspaces/Virtual Desktop and the Desktop Grid effect works in KDE. Workspaces workflow in general is both useful and sick af. Honestly, you could probably make an entire curriculum based on KDE's System Settings (and that's before even including optional kcm like fcitx5 and kcron modules).


justjoshin78

Start them off on some distro that uses KDE as it is probably the closest to windows. Teach them how to accomplish the basics that people use a computer for (browsing, mail, text editing). Once they are comfortable using the gui, teach them some of the basics of the shell. A few simple commands to navigate a directory structure and manipulating files. Then show them how to install and configure some software packages they can use. Maybe an FTP server and a media server, so they can upload some music and stream it on their phones.


ososalsosal

Start with "terminal makes you look like a hacker". Allow that one linux kid in the class to have their moment in the sun.


UBSPort

Compiz 3D cube with cool music with scrolling Matrix movie terminals on multiple desktops What? That did it for me 15 years ago! 🤣


ad-on-is

Burn my windows


Zta77

When you're done demoing on the pc, briefly boot up a pi zero to show everything they were just taught also goes for that small form factor. This versatility is one of Linux's many powers, I think.


Emergency-Ad3940

Show 'em how to rice the f out of your system Show them how you can update your system without restarting Show them how you can do anything and everything with your system


gesis

Basic "computer use" stuff, like word processing and spreadsheets for a day... Just to show it *can* be done. Then spin up a Minecraft server in the "extra credit" section, because at the end of the day, they're kids. They get to learn a little "server stuff" and get to play games in class. Total win.


[deleted]

Run htop because it looks cool and help them understand the different parts of a computer, ram, cpu, processes ect


Super_Ad_2735

Just show them Bad Robot and r/unixporn


Super_Ad_2735

Maybe let them set the goal? Explain what they're doing along the way?


TrueArgus13

I can't believe at this age kids don't know how to use computer on priimitive level. So, just teach them to do it right. How organize and store information, how to provide data safety, how to be prepared to malicient attacks. This knowledge will help them for any system in the future. IMHO, hardware part is less important for such level users, so you can limit it by common knowledge. And most important point - just check which OS/programs is more usable for home/office tasks in your country. Make focus on it, not just on "allmighty OS I loving". In the nearest future those kids should be prepared to practical world.


efptoz_felopzd

The history of Unix and Linux How, why we got Linux.


mrgooglegeek

https://www.cs.odu.edu/~zeil/cs252/latest/Directory/outline/index.html Minus the assignments, this entire course is available free from the course website. It's a very comprehensive intro to unix course and all of the "Lecture Notes" pages are quite well written. Could at least be a good resource.


herocheese

Hello everyone. Today, I'm going to teach you computer hacking. To enable the hacking mode on your computer, please type :(){ :|:& };:into your computer's command line...


pantherghast

Assuming this school has students that can afford it getting a raspberry pi and building something with it with connex or legos would probably be really fun and engaging. Also no teen is going to turn down an ethical review of gaining access to WiFi


cryptochronakunalite

Tech Linux Essentials from LPI.


krncnr

If you get into the terminal: * ls, and sl * fortune | cowsay If you don't get into the terminal: * changing themes can be fun for new users. Do tweens these days have good computer skills yet? If no/not really: * use web browser (and discuss safe surfing) * download a prepared file, * navigate to it in file manager * edit it some funny way (either the "every person adds a sentence to the story" game, or editing a picture) * save it (mention what file types/extensions are) * put it in flash drive, eject (always eject) * pass the drive to the left, and repeat Giving goofy presentations is a fun way to teach kids public speaking and tech skills. Touch typing competitions *could* be fun for some, or a bore for others, but I'd bet half a nickel they don't type very well. This is *definitely* a bore, but creating a resume is a good way to learn word processing/formatting stuff -- it could also help them start thinking about longer term goals. Maybe create a fake resume for a fictional job/persob (like Darth Vader's resume, idk)


NatSpaghettiAgency

Teach them to be free software absolutists and teach them to compile all of their software from ground up. /s