32
$\begingroup$

My students have been trained to use tools in the web-browser: cloud word-processors, web-sites, etc.

When I try to teach programming on the computer: using programs that are on the local computer. They find it difficult.

I do a demo. I then show the class one step at a time, what to do.

  • Close web-browser.
  • Go to start menu, and open xyz program.

As I look around the room, one or two students at this step re-open the web-browser, and start attempting to follow the instructions there.

What can I do about this? In terms of:

  • Mitigation: what can I do to improve my instruction?
  • Prevention: what can I do in the years leading up to this? Will it help?

Age: Key-stage 3 — Year 7 to 9 — age 11 → 14. I am encountering the problem in Year 9.

$\endgroup$
7
  • 7
    $\begingroup$ You ask "what can I do in the years leading up to this?" What access do you have to the students in the years leading up to this? $\endgroup$
    – Ben I.
    Feb 16 at 19:39
  • 5
    $\begingroup$ I feel your pain. My students have to ssh to a machine for some assignments. They try to enter the machine name in the browser. "Hey, it has something-dot-something, it must be a URL". $\endgroup$ Feb 16 at 21:10
  • 2
    $\begingroup$ @VictorEijkhout That sounds like a good DNS (and URL protocol) teaching opportunity, if most of them are doing it. $\endgroup$
    – wizzwizz4
    Feb 18 at 22:06
  • 6
    $\begingroup$ I feel that there has been a missed step in the education system on how to use a general purpose computer. Perhaps that needs to be more addressed? $\endgroup$
    – AllenKll
    Feb 24 at 14:44
  • $\begingroup$ @ScottRowe youtube.com/watch?v=15QuHygLwFU $\endgroup$ Feb 27 at 20:16

11 Answers 11

50
$\begingroup$

In terms of instruction, especially at the beginning, I find it helpful to ask my students why I'm doing something at every step while demonstrating:

  1. I'm going to open the start menu, why am I going to do that?
  2. I'm going to click xyz program, why am I going to do that?

Sometimes that leads down a rabbit hole of explanation, but ultimately it serves several purposes:

  • if nobody knows the answer as to why I'm doing it then I know it's something that requires more explanation
  • if somebody knows the "wrong" information then it's a chance to correct it
  • if somebody knows the correct answer it gets said out loud for all the other students to hear

This approach has really helped me to address problems that I wouldn't have otherwise discovered, as it forces me to slow down on a task that I could normally just fly through, and I get immediate feedback every step of the way.


I also like to use categorisation exercises. The students I work with are older, but with that group I find that many of my students do use desktop applications in their personal computer usage. I also find that 99% of the desktop applications they use are video games, but for a simple prompt like:

"What do you do on your computer?"

with hypothetical answers like:

  • "Watch YouTube/Netflix"
  • "Play League of Legends"
  • "Play VALORANT"
  • "TikTok/Instagram"

Could be put into categories like:

Web Applications Mobile Applications Desktop Application
YouTube TikTok League of Legends
Netflix Instagram VALORANT

Now, not everything can be categorised 100% neatly, but this type of activity can help to provide a frame of reference built upon the things they already use/are familiar with. Then you can put any future Desktop Applications that you're going to use in class into the "Desktop Application" column. This can help to solidify why the desktop application is not online even if the understanding is limited to "because it's the same way I open X game".


In terms of prevention, it can be very helpful to determine the initial source of misunderstanding or misinformation.

People who interact with computers for a living often use (and talk about) computers differently than the "average" person. I have found many schools choose to move to a singular technology (because software is expensive). The potential exists that a lot of these students are learning how to interact with these programs from instructors who also don't understand the differences themselves.

For example, we moved from the desktop application versions of the Microsoft Suite (like Microsoft Word) to Microsoft Office 365 several years ago. However, many of the non-computer faculty are still telling students "Open up Microsoft Word" by which they currently mean:

  1. Open up a web browser
  2. Log into your Student Account
  3. Go to the Microsoft Office 365 Link
  4. Choose Word from the list of Virtual Applications
  5. Create a new document

Beyond this, many of these courses are entirely contained within a web browser (read: there is no reason to open any other desktop application to complete all of the work for the course). This sometimes results in faculty telling their students things along the lines of "You never need to open anything other than Chrome" (the web browser that is default on the student machines).

Our student work stations are configured to empty various folders on log out. So students need to have their work saved to their cloud storage not on the device itself. Because of this, many of my students are initially uncomfortable having files local to the machine (even temporarily) because they've been repeatedly taught that anything they save to the computer will be lost if it's not in cloud storage.

I say all of this, not to push the issue onto other departments/teachers, but rather that it is useful to know what misinformation the students have. It's good to know if there are students in the classroom who:

  • believe they are going to get in trouble for exploring other parts of the computer than the web browser
  • believe that opening the Office365 Word web application through their browser is what it means to open a desktop application
  • believe that they should never save something to the computer itself for fear of losing it

If you can determine exactly why opening the web browser is the default action for your students you will have an easier time in correcting the behaviour. In my experience, for some students it has been as simple as saying, "I know this is different than most of your classes, but in here you're allowed to do x, y, and z. If you break it we'll figure out how to fix it."

$\endgroup$
5
  • 7
    $\begingroup$ Thank you, this is really informative. I hadn't thought of these things. Long ago I used PCs that wiped themselves after I logged off, so in some ways this is similar. But I never worried about breaking anything. The PCs failed often and could take my disk with them, and the shared machines were tanks and basically unbreakable. So the fear of breaking something is hard for me to relate to. $\endgroup$
    – Scott Rowe
    Feb 17 at 1:54
  • 2
    $\begingroup$ If you can't mess up a computer at school, where can you? $\endgroup$
    – Scott Rowe
    Feb 17 at 16:24
  • $\begingroup$ @nelson. Breaking a miss-configured MS-Windows machine, is an IT-support problem. If you school can fix it in under 30 seconds, then like where I work, they need to get their act together. see youtube.com/watch?v=f8Co37GO2Fc $\endgroup$ Feb 18 at 11:02
  • 1
    $\begingroup$ Wow, this answer perfectly describes the computer situation for all of the computers in the grade schools in my county, at least while I was in grade school. Seeing it all laid out like this... really makes it clear how the logistical concerns behind these policies and configurations clashes with what students (and maybe faculty?) ought to be learning about computers and how they work, or at least the order in which they learn that. $\endgroup$
    – Sarah
    Feb 25 at 6:06
  • $\begingroup$ "believe they are going to get in trouble for exploring other parts of the computer than the web browser" is absolutely a real concern. I recall getting called into the office and banned from the school computer lab back in ~2008 because they thought that switching users was hacking. I hope CS educators are up front about what students are allowed to do and establish that they're not as incompetent as the average teacher. $\endgroup$
    – Navin
    Mar 4 at 14:08
19
$\begingroup$

I (thankfully) haven't had the problem you mention quite to the degree that you are having it, but I am seeing more and more of this issue with my students generally.

My focus in this answer is practical: what you might actually do with your students.

Instructionally, you've already found the weakness: they are unaware of where their computer ends, where the internet begins, and how an individual computer is partitioned and organized into "files" and "directories".

So, my explanation to students would begin exactly there:

Hey folks, I know that all of our computers are connected to the internet, and we use apps, and some of them are on the internet, and some of them are on our computer, and some of them are some kind of mix.

The problem is that it's really hard to tell where things are. Today, we're going to focus on that, and in particular, we're going to talk about how the computer in front of you is organized. It's actually a pretty simple system, but you're forgiven for not knowing. Our modern computer ecosystem, with everything on the cloud, and phones organized into some kind of "apps" view, can make it very hard to see.

So, the first thing I'm going to do is ask you to disconnect from the wifi. Get off the internet. It feels funny, right? Don't worry, you won't get hurt, and we'll all go back on in a few minutes.

Is everyone off? Excellent. Now, you're looking at your computer, all by itself. Are there still files on there? Of course there are. Let's take a bit of a look ...

What follows is a bit of a guided lesson on the idea of a root directory, sub directories, files, and the organizing principle that directories allow us to group things together, and sub-directories allow us to group together sub-groups of that stuff, and sub-sub-directories allow us ... and so on and so forth, fractally.

Depending on the level of your students, I might steer clear of a command prompt for the first few minutes, or even for the first day. Let them get used to finding things using the mouse and the system GUI before entering into a CLI. The GUI allows them to see, and that is a big advantage right now.

Also, emphasize the why of it all at every step. Why are things in directories? Why are some directories in other directories? How does this help to organize the computer internally? How does this help organize the student on the computer?

After you've done directories and files, and come back around to the CLI equivalents, I'd connect back to the internet and talk briefly about the idea of a URL as something that answered the central problem at the beginning of the internet: how can a computer find something that's NOT in its own directories? The internet was built around getting to files, just like our directory structure!

I wouldn't dwell here, explore it in any real depth, or expand on it much. My goal, having already talked about directory heirarchies, would be to make Very Firm the distinction between here and elsewhere, and to make clear that all of it comes down to files, and how we can organize files so that they can be found.

$\endgroup$
2
  • 3
    $\begingroup$ Explaining URLs... I well remember when I read that TCP was originally created to provide remote procedure calls on a single machine. Like designing a car just so you could drive down to your mailbox. $\endgroup$
    – Scott Rowe
    Feb 17 at 18:17
  • 2
    $\begingroup$ Dolphin is a good tool. I suspect it will help with the transition from navigating local files using the GUI, to using the command line (But not tested with students). It has integration of the two: changing directory in one, also changes it in the other (Clicking a directory X, types cd X. And clicking back types cd ..). $\endgroup$ Feb 18 at 11:10
8
$\begingroup$

I think your students may have more experience with smartphones than with computers. So if you can explain it in cell phone terms, it may make more sense to them. The Start Menu is like the app drawer. The desktop is like the home screen. The taskbar is like swapping apps. Win+D is a shortcut to get to the desktop, like tapping the Home icon/dot/button on a phone.

And if you can reduce steps, that will help as well. I suggest a permanent icon on the desktop, so this can be two steps: 1) Use Win+D to get to the Desktop (home screen). 2) Double click on the icon to launch the application.

This doesn't solve the long term issues of having no idea how computers work, but exposure over time will at least help with that.

$\endgroup$
0
6
$\begingroup$

You say:

Go to start menu, and...

One thing I've noticed is that using the Microsoft Start menu is a bit odd. There is the Search box, but I always switch that off because it takes up space and isn't needed. You can and should literally click the icon then just start typing 'excel' or whatever. Yes, even though it looks like there is no place to type. This makes people's eyes cross and usually they refuse to do it.

I basically don't use desktop shortcuts / icons anymore, I just type. I don't use menus or try to find anything in the system screens. So learning to type letters on nothing is unintuitive, but it's the Way.

Similarly I gave up keeping bookmarks / favorites in the browser. I type a few letters and browser history shows it. In my workplace directory, 3 letters of someone's last name finds them.

I gave in to the Microsoft default folder names long ago. I still don't like the Library concept though.

So I just wonder if you lost your students at hello, er... Start?

$\endgroup$
1
  • $\begingroup$ Comments are not for extended discussion; this conversation has been moved to chat. $\endgroup$
    – Ben I.
    Feb 19 at 23:55
3
$\begingroup$

Start them with a command-line-only OS (on a real personal computer). It gives them enough mental separation. Then you can approach things from below.

Also, teach them the basics of computing first, before teaching them programming. Including the inner-platform effect (the software design anti-pattern that modern browsers are based on).

Remember: They are clearly not computer users and only ever used fixed-function appliances that just happened to be implemented using a computer (which they never accessed or even could access). You’re basically surprised why a car driver opens the car door instead of getting below the car.

Finally, if you meet a stubborn web disciple (like from the church of WhatWG), just point them to https://copy.sh/v86/. Preferably as a link that boots an image where Chrome is set to autostart, with the same link you just gave them set as the homepage. :D

$\endgroup$
3
  • $\begingroup$ If I understand the term "inner platform" then unfortunately this is a fact of modern computer usage. See Facebook which to many people is the internet. There are no web pages: just facebook pages/groups. Actually, I'm thankful for Discord taking off because it is another community, and outside of FB. But these inner platforms are a fact of life. Going back to MSDOS (in a manner of speaking) doesn't sound realistic to me. You'll have to wean them carfully off the computer==browser mindset. Rebooting to the 1980s (or whatever) is not going to work. $\endgroup$ Feb 19 at 16:11
  • 2
    $\begingroup$ "You’re basically surprised why a car driver opens the car door instead of getting below the car." I don't necessarily agree with the main prescription you've outlined, but I love this analogy. $\endgroup$
    – Ben I.
    Feb 19 at 17:02
  • $\begingroup$ @VictorEijkhout Don't go back to MSDOS, when you can go forward to Unix (e.g. Gnu/Linux). $\endgroup$ Feb 20 at 12:09
3
$\begingroup$

As for your purpose - teaching to write programs, I would say, switch to a web based dev environment like repl.it. This will allow your students to start making programs and learning your curriculum. This should solve the immediate issue at hand.

On to the "browser mindset," and a long term fix, it sounds like there has been a major missing piece of instruction leading up your class. I would guess there was no instruction on how to use a general purpose computer, (or at the very least, how to use Windows.) Coving this topic would allow the children to understand that computers are used for more than just accessing the internet to consume content - something a few adults I know need help with.

$\endgroup$
0
2
$\begingroup$

When I try to teach programming on the computer: using programs that are on the local computer. They find it difficult.

Then don't! I mean, knowing how to use programs on the local computer is certainly worthwhile, but if you're teaching them programming and they're "stuck" in a web browser, teach them how to code within a web browser.

I find http://gitpod.io (which is available for free) immensely useful (don't worry, you don't actually need to know git to get started with it). It provides the student, within a few seconds, with a pre-built coding environment (which you, as the teacher, can customize using .gitpod.yml), without making any assumptions about what kind of computer they have or what software is installed on it, other than "a reasonably modern browser". It's a wonderful teaching tool - it allows students to spend less time on getting their environment set up just right (what if a subset of your students use a mac? linux? a chromebook? an older version of Windows? a Windows computer set up with an alternative shell, meaning there is no start menu?) and drops them right into, effectively, VS Code set up just-as-the-teacher-intended.

You can have completely separate classes on "how to use a local computer", which, amusingly, is also best accomplished using a virtual environment in the browser, to neutralize the differences between their computers.

$\endgroup$
2
  • 2
    $\begingroup$ I had a look. It looks like every student will have to sign up to github (or other service). This will lead to safeguarding problems. Am I correct about this, or is it possible to easily use in anonymously? $\endgroup$ Feb 24 at 12:24
  • 1
    $\begingroup$ Standard gitpod does require signing into a service. If you're willing to host a service for your students, you can use this: gitpod.io/blog/openvscode-server-launch - it doesn't require any authentication whatsoever. $\endgroup$
    – lutzky
    Feb 24 at 16:09
0
$\begingroup$

The server and client world are getting ever more indistinguishable. Some programming languages pull dynamically libraries from the web during build. At the tender age of your students maybe not bother them with distinctions that are pretty vague. Meaning: let them use online programming tools.

I know, not quite the answer you wanted.

$\endgroup$
3
  • $\begingroup$ I was reading about log4j, which was designed to be able to yank and run arbitrary remote code automatically gotten from anywhere else on the web, with no validation, and invoke it from deep within a supposedly secure area, perhaps not even directly accessible from the internet at large. You can't make this stuff up! I conclude that it was designed that way deliberately as a back door to be exploited later. There is no other good explanation. Strange world. $\endgroup$
    – Scott Rowe
    Feb 18 at 11:39
  • 1
    $\begingroup$ And we call that software malware. $\endgroup$ Feb 19 at 14:52
  • $\begingroup$ @Evi1M4chine Perhaps we should have a procedure to keep that from happening? Some kind of company, that would control what went in to the software, and could be held responsible for it? $\endgroup$
    – Scott Rowe
    Feb 20 at 1:01
0
$\begingroup$

One has to see the current state of the art; eg super device, which are connected or even foldable desktops. The actual difference is the file-system being used; unless they would understand the difference in between eg. a local file:// or content:// URI and a remote https:// URI, this all might be difficult to understand. A SSD and a local HTTP server could be used to demonstrate the difference. Then one can also show removal USB storage, etc. Offline mode also demonstrates the difference. One may have to teach the very basics, in terms of a) physical hardware and b) remote services. The behavior might stem from being used to eg. a Chromebook. See 3 strategies to change user behavior. And the idea is not even completely wrong; AWS Cloud9 might be an option. Or how about running a ChromeOS device in an Android emulator, just to show what it is?

Directly letting them compare a local IDE with a cloud IDE would show the possibilities and limitations of each of the environments. I mean, one just would have to develop a teaching program which both kinds of students can apply; eg. instead of saying "open your local shell prompt" this would be "open your gcloud ssh shell prompt" (in a browser window). Alike this, nobody would have to feel "wrong" for simply not knowing it any better and they could compare. Then one can start teasing them, eg. with commands that may work locally but not remotely, or the other way around (always two students, who can compare).

$\endgroup$
1
  • 1
    $\begingroup$ Meanwhile there's two ways of doing things (computing) and neither is necessarily wrong, they're just different - and assuming they may have eg. the same Linux distribution locally and remote, this should be comparable. $\endgroup$ Feb 20 at 2:03
0
$\begingroup$

A comment to my other Answer suggested that this would be useful information, but I felt it was tangential to that answer so here is another one.

Consider that voice is becoming the default way to tell a computing device something, and for it to respond. Office 365 has Dictation built in, and it works well. Even children can now accidentally get their invisible pal to order things.

In this situation, how would anyone know what is on their device, and why would they care? Perhaps we need to advance teaching beyond what we do now, to what people will be doing very soon?

Humans have used primarily voice to interact with other beings since long before Cuneiform became the killer app 5000 years ago. It seems vastly the easiest way, and can be used while doing other things.

$\endgroup$
11
  • $\begingroup$ No dictation was used in the making of this Answer. $\endgroup$
    – Scott Rowe
    Feb 17 at 19:04
  • 1
    $\begingroup$ I very much doubt that typing will disappear. Sure maybe some people will interact with computers only through voice commands, just as some people only use GUIs. But the command line is still alive and well and will always be preferred by power users for some tasks due to its expressiveness and precision. Also, good typists can type faster than they can speak. Some years ago people argued that typing commands would be completely replaced by GUIs, yet recently I've seen a reverse trend: many people have moved from plotting data with GUI tools to plotting with Python packages. $\endgroup$ Feb 17 at 23:12
  • $\begingroup$ @WaterMolecule I can still: ride a horse, drive a manual (less common in the US), sail a boat, use a darkroom and entirely manual camera, fix old radios, etc... But these things are in schools less and less, and in homes rarer still. If people don't need them, they have no concept, like the many people under 20 who have no idea that files and folders exist. Google it. Where do we start then, if college students can't locate their work, let alone turn it in? A Bridge Too Far. $\endgroup$
    – Scott Rowe
    Feb 18 at 11:15
  • 1
    $\begingroup$ @ScottRowe I thought about this more and changed my mind. I can see keyboards getting mostly replaced by another technology. +1 $\endgroup$ Feb 18 at 15:12
  • $\begingroup$ Because it turns out that natural language is hard and understanding (any kind of understanding) is impossible for computers as we know them (at best a computer can fake understanding, but there's simply not one ounce of understanding happening there). Otherwise there would already be software to turn a business analyst's design into more software without actual programmers being needed--but instead, we can (notoriously) not even turn a design into perfect software even with a whole team of developers, actually the BA can't even create a perfect design from a customer description! $\endgroup$ Feb 18 at 16:52
0
$\begingroup$

Depending on your classroom hardware, the most straightforward way it to get them coding in VS Code on a small Unity project.

This demonstrates two things:

  • File structure of a project
  • Command line to build/debug the project

You could use "Hello World" from the command line, but Unity will hook them b/c it's very visual and a game engine they recognize.

Check out http://coffeebreakcodes.com/sample-projects-unity/

$\endgroup$
2
  • 1
    $\begingroup$ I've never seen anyone use a CLI to build a unity project, especially not beginners. Usually, we just use the "play" button to get things going in the editor, and use namespaces to make sure it doesn't take too long to compile. $\endgroup$
    – Ben I.
    Feb 23 at 21:56
  • $\begingroup$ Also, welcome to cseducators! It's a nice first post, and I hope we hear more from you! $\endgroup$
    – Ben I.
    Feb 23 at 21:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.