Ask HN: What should be taught in high school?
What would HN have the modern western high school student learn with respect to "Information and Communications Technology"?
What would HN have the modern western high school student learn with respect to "Information and Communications Technology"?
[+] [-] Iv|6 years ago|reply
What's the internet? where is the cloud? Where are data stored? How do they pass around?
What's a computer? A smartphone? Where is data stored? Where is computing happening?
Most of them will never be coders, and whichever platform you use to teach basic programming would probably be obsolete by the time they are out.
If you really want to do programming, I'd be doing some Arduino Through Blockly (https://ardublockly.embeddedlog.com/index.html) and hit two birds with one stone: it will give them basics of programming and also demystify some things about electronics.
Kids fascinated about blinking LEDs or running motors can then dig into electronics, students wondering what that weird C program on the right is when a blockly program is assemblend can join us in the Dark Side.
[+] [-] atoav|6 years ago|reply
So I agree with the points made by the parent above. Additionally it can be quite good if you manage to take their fear of something e.g. the command line (as a gateway to programming), or some simple code.
They shouldn’t be able to perfectly use all these things afterwards, but they should know they exist, know where to read more, and have a feeling which problems it could solve for them.
I think in times where all the kids are growing up with glowing touch-rectangles that hide file systems etc, giving them a little feeling that there is more is important.
The worst you can do is showing them some useless usecase that their glowing touch-rectangle can do better, faster and easier.
Remember: education is when you change how people see the world, not when you change what they can do.
[+] [-] ShteiLoups|6 years ago|reply
Those who really have an aptitude for it will be able to implement datastructures and algorithms in it, and those that don't will be able to muddle through copying and pasting enough code to get it running.
[+] [-] nvarsj|6 years ago|reply
[+] [-] rodolphoarruda|6 years ago|reply
[+] [-] elliekelly|6 years ago|reply
There’s a really good course on edX called “Logic and Computational Thinking”. It’s pretty basic and you could probably finish the whole thing in a Saturday. I would imagine much of the content is in line with the capability of the average high schooler. It was a good (and unintimidating) starting point for learning how computers “think”.
[+] [-] swiley|6 years ago|reply
[+] [-] madiathomas|6 years ago|reply
This is really concerning to me as a father to a daughter. Is this a research finding? This can be decoded as saying women have lower IQ than men because people who are good with numbers generally have higher IQs.
[+] [-] dyukqu|6 years ago|reply
As a man and a mechanical engineer, I was and still am way better with words than numbers and I think it's perfectly OK. Heck, I almost hate numbers and symbols without (the explanatory) words/paragraphs. I struggled at classes throughout all my years as a student since almost every topic in engineering is "applied", hence without a rigorous (theoretical) background and so much example/case based.
I wonder if it has something to do with how one's memory works. Isn't it easier for everyone to remember/visualize concepts and then deriving the formula than trying to remember the exact formula? (Writing this down, I imagine the people who do the former are better with words as the ones who do the latter are better with numbers). The derivation of equations governing the Hagen–Poiseuille flow is a good example, I presume[0].
[0]https://en.wikipedia.org/wiki/Hagen%E2%80%93Poiseuille_equat...
[+] [-] drinfinity|6 years ago|reply
Sexist.
[+] [-] gus_massa|6 years ago|reply
You can add some nice color, bold letters, and other visual stuff to make an informal report.
You can make nice graphics. I like dispersion graphics. Sometime the linear approximation is useful, but perhaps it's too much for 9-12yo.
[+] [-] ronyeh|6 years ago|reply
More generally, high school students should learn how to model information in a spreadsheet. It can be anything they are interested in: prices on collector's items, tracking their friendships and contacts, graphing their caloric intake per day, tracking the tweets and mentions of your favorite celebrities....
[+] [-] mads|6 years ago|reply
Probably too late for me now. I hired an accountant a few years ago, but I would like to be on top of that stuff myself.
Funny how I can build complicated big data analysis tools, but when I am presented with a single page of tax numbers, I just shut down. I have often thought if there is some sort of medical term to describe this thing.
[+] [-] conductr|6 years ago|reply
[+] [-] celticmusic|6 years ago|reply
[+] [-] RandomBacon|6 years ago|reply
Maybe some of those things can't be taught effectively at school, but I sure don't think most kids are learning that stuff at home. Perhaps your school might sponsor a Scouts BSA program? A lot of the character development stuff can be taught that way.
(And a lot of people on reddit say taxes.)
[+] [-] thundergolfer|6 years ago|reply
Source: Why Knowledge Matters - E.D Hirsch
[+] [-] baroffoos|6 years ago|reply
It was a pretty eye opening task showing how 2 articles which both report only the truth can be twisted to bring about different stories/emotions.
[+] [-] capkutay|6 years ago|reply
'look at this fake news asserting A...this story is misleading because B is actually true'.
[+] [-] caseymarquis|6 years ago|reply
What happens when you hit the mouse button? Let's break open the mouse and find out. This leads to a pretty simple circuit, until you hit the MCU doing USB communications. What is an MCU? It's a small computer with a processor, memory and electrical inputs/outputs. USB is pretty complex, but you could emphasize that there's a power line, a return, a data in, and a data out line. I'd probably skip electrical encodings and the details of USB protocols at this point. The computer is the USB host (server), and the chip on the mouse is the client. You could then open up the PC, follow the path through the hardware to the OS. At this point you get to explain what a driver is. This leads to application code and OS APIs. This leads to the coordinate system in the OS and monitors/touchscreens, which finally gets you to the browser, html, css, javascript with ajax (browser inspection tools), http, https and certificates, tcp, ip, ethernet frames and wifi (wireshark), network cards and their management, looking at a network card, dissecting an ethernet cable (crimping one), taking apart an access point, switches, the gateway, the internet, ISPs, servers, databases...
I think the point would be to emphasize that there are no black boxes, give a good overview of how things work, and hopefully find a couple kids who really like some portion of all this and help them start some more advanced projects.
[+] [-] marcosdumay|6 years ago|reply
[+] [-] kartickv|6 years ago|reply
- Becoming a power user of spreadsheets, with formulas, pulling in external data (like forex rates), basic statistical analysis, conditional formatting to present a conclusion (green is better, red is worse) etc.
- Running a VM on AWS, SSH, basic Linux administration, etc.
- Automating manual tasks like cropping 500 JPEGs and rotating them. This could use Automator on macOS or a Python script.
- Writing small throw-away programs in Python. For example, I have a noisy signal, noisy due to errors in measurement. Would averaging with a second noisy signal reduce or increase noise? I wrote a simple Python program to generate two random arrays, measure standard deviation of each, and print out whether the resulting array has lower standard deviation than neither, one or both the input arrays. I then repeated 100 times to eliminate variability caused by the random number generation.
- HTML / CSS / JS to build a simple web site.
- Exploring emerging no-code tools (Airtable?)
Hardcore techies often don't have these skills. That would be like a surgeon who can perform open-heart surgery but can't administer first aid.
[+] [-] big_chungus|6 years ago|reply
[+] [-] PascLeRasc|6 years ago|reply
[+] [-] asfewt4|6 years ago|reply
[+] [-] twblalock|6 years ago|reply
One outcome is that students can be active users rather than passive consumers and think critically about topics such as privacy and social media.
Other outcomes are improved computer literacy, and perhaps inspiring some students to pursue computing as a hobby or career -- but the demystification and critical thinking will benefit all of the students, not just the ones who are interested in computers.
[+] [-] usrusr|6 years ago|reply
[+] [-] Merrill|6 years ago|reply
[+] [-] berbec|6 years ago|reply
[+] [-] xwdv|6 years ago|reply
[+] [-] thundergolfer|6 years ago|reply
[+] [-] monch1962|6 years ago|reply
Financial education is WAY more complex than it was 20 years ago, with many more ways for people to go wrong
[+] [-] n8henry|6 years ago|reply
[+] [-] jdietrich|6 years ago|reply
[+] [-] C1sc0cat|6 years ago|reply
I wish I had but back then (1970's) that was considered a "girls" class.
[+] [-] muzani|6 years ago|reply
My first grade daughter knows how to draw well but can't use a mouse. I'm encouraging her by giving some games. But it's not a natural thing these days.
[+] [-] BLKNSLVR|6 years ago|reply
The value of planning before cutting code: What exactly, precisely, unambiguously, is the desired outcome? Ask enough questions to determine whether the requester really knows what they want or whether they're fishing for self justification of their own role. Create some brilliantly frustrating examples of ambiguous requests, get your students to create a solution, then examine all the different ways they interpreted it. Demonstrate the questions to ask to get to the brass tacks.
Don't expect non-technical people to innately understand the parameters you have to work within. It's your job to explain the boundaries of your ability to create a solution. You know the "why's" of this, but the non-technical folk don't, otherwise they'd be the technical folk...
Don't take criticism personally. If you're taking it personally then you're exposing your own sensitivities about your competence. If you can't do it, ask someone for help. If the platform or tools can't get you the best solution then work towards the nearest best possible solution or change the tools / platform.
I've seen and experienced a lot of ICT angst that is entirely caused by the wrong mental approach. Nothing to do with anything remotely technical. Get that shit sorted early, and the technical stuff becomes eas(y|ier).
"First you must fill your head with knowledge. Then you can hit ice with it"
(Obviously not for the early stages as it will probably scare / bore them away. That's where scenarios or real life examples may help though)
[+] [-] narag|6 years ago|reply
There is an ocean of operative skills that probably should be included in the rest of subjects but aren't and won't in the short term.
So I would include the basics of all those and let the students decide in which of them they want to dig deeper according to their preferences. You have music, video, animation, design, programming, word processing, spreadsheets... there are YouTube videos for everything, so it really isn't hard to come with the material.
I had to read a few textbooks at the uni, but language manuals, like the TurboPascal on-screen help that included example programs (that you could copy, paste and execute right away) for most functions were the best.
Most kids love to program even the simplest video games and it's really not that difficult to do it with just JavaScript on a browser using canvas. Or maybe they prefer to create some loops with lmms, or an animation with Blender...
[+] [-] memset|6 years ago|reply
I took such a philosophy course in college and it was quite informative as a way to reason about problems. It helped me with my debugging, to move from “x is the problem” to “I believe x is the problem, and here is why I believe this causal relationship exists.”
I think this is what most of us call “critical reasoning” skills, or “how to think.” But this particular line of causality, and analyzing the strongest statement one could make based on a set of premises, is a skill that has served me well as an engineer.
[+] [-] cgrealy|6 years ago|reply
Hopefully, that will also encourage a skeptical mindset which helps in other areas of life (religion, politics, pseudoscience, “alternative” medicine, etc).
[+] [-] pimmen|6 years ago|reply
Most people who take calculus in high school will never, ever, do a derivative or integral in their life, nor will they use their understanding of calculus to unlock more mathematical topics.
Most people who never, ever, take a statistics class will get statistical concepts and problems hurled at them from every conceivable angle in both their professional and personal lives. Since I know statistics and math, I enjoy a great deal of trust from people when it comes to the data science work I do, more so than if I were to enter a discussion around building software with non-programmers. And I know this is not because I'm a genius, it's because people don't feel like they know enough about statistics to challenge my claims, even though they will make decisions based on what I tell them. And then we have the people who don't know statistics, but think they do, and start inferring all types of causations based on some insignificant patterns they've found.
If we want more informed voters, managers, employees, politicians, consumers and decision makers in general I cannot overstate how important it is to understand that there is such a thing as different distributions, that you can estimate them, how variance actually works and what "significant" actually means. At least relative to taking the derivative of a third degree polynomial.
[+] [-] wesnerm2|6 years ago|reply
Calculus also aids the student in the appreciation of physics. It is central to the understanding of many mathematical concepts.
Calculus is a requisite for understanding where statistical distributions come from. How else do you make sense of probability distributive functions and cumulative distribution functions? or understand where those statistical tables come from?
Statistics is already taught in high school at an elementary level. The topic is frequently taught repeatedly in the courses.
Statistics should probably be taught more but not at the expense of calculus.
[+] [-] smabie|6 years ago|reply
[+] [-] nvarsj|6 years ago|reply
[+] [-] mattrp|6 years ago|reply
Before I saw this comment I was going to say teach them typing - is that still taught in school? I think quite honestly learning to type at an early age made the difference between someone interested in computing and someone completely passionate about computing.
After that I’d say teach them how to network their computers together, learn how to research/ read RFC’s. I think there’s some really compelling writing in RFC’s... maybe teach them how to survive on a vt100 terminal... I also think learning about optics is a great way to teach basic electronics and physics.
[+] [-] O_H_E|6 years ago|reply
[+] [-] arethuza|6 years ago|reply
[+] [-] vmurthy|6 years ago|reply
[+] [-] hysan|6 years ago|reply
How to use those resources to research and problem solve.
More importantly, how to problem solve (scientific method, logic, etc). Your CS background will help immensely here.
Organizational skills with an eye towards tying it to all things personal finance (the tax suggestion is at the top of my list of things I wish schools taught).
How to take the information you've researched and organized and present it well. Improve their public speaking and maybe throw in a bit about how to present oneself professionally.
[+] [-] tropo|6 years ago|reply
Teach about switching directories, having a current directory, using relative paths, using absolute paths, and having a home directory. Teach this via both GUI and CLI, getting students comfortable with the fact that they represent the same thing. If applicable to your OS, also teach about drive letters and the current drive. It's best to teach with multiple file managers and multiple CLI interfaces, possibly taking advantage of Windows Subsystem for Linux (WSL) on Windows 10 and/or a virtual machine. BTW, those are good to learn about too.
Teach about file archives. Many students today are left helpless if an archive isn't automatically handled. Teach about how pure archive formats (tar cpio pax), filesystem images (iso), compression formats (gz bz2), and combined archive/compression formats (zip arj) relate to each other.
Teach about saving files. With many apps doing this automatically now, people can hit disaster when they encounter one that doesn't. Teach about the different places that files can end up when saved, and about why this matters. It is now easy to be unaware that copies of a file might or might not exist in various places, both local and remote. This has implications for privacy, disk usage, network connectivity needs, and recoverability in the event of hardware failure.