Python for Non-Programmers(pythonfornonprogrammers.com)
pythonfornonprogrammers.com
Python for Non-Programmers
https://PythonForNonProgrammers.com/
65 comments
Microsoft Store in Windows 10 has the Python 3.7 and 3.8 packages (prepared by PSF itself) with some limitations, which shouldn't matter for beginner users. So it's basically one click install.
The issues has to do with the way Microsoft Store apps are sandboxed within the environment, to quote:
Because of restrictions on Microsoft Store apps, Python scripts may not have full write access to shared locations such as TEMP and the registry. Instead, it will write to a private copy. If your scripts must modify the shared locations, you will need to install the full installer.
https://docs.python.org/3.8/using/windows.html#known-issues
The issues has to do with the way Microsoft Store apps are sandboxed within the environment, to quote:
Because of restrictions on Microsoft Store apps, Python scripts may not have full write access to shared locations such as TEMP and the registry. Instead, it will write to a private copy. If your scripts must modify the shared locations, you will need to install the full installer.
https://docs.python.org/3.8/using/windows.html#known-issues
Is using the Microsoft Store the standard way for beginners to install Python? A lot of people might follow the installation instructions that show up at the top of a google search for "how to install python windows".
In my experience (this was before PythonAnywhere/Jupyter/etc and other online services were as established as they are now), I just had students download the Anaconda click-installer, which would basically ensure they'd have the expected Python version, plus a bunch of useful packages installed by default. Sure, for advanced developers who need to maintain varying setups and packages, Anaconda was sometimes problematic (at least in the past), but that's not an issue for most beginners...and it's easy to remove Anaconda at the end of the semester.
In my experience (this was before PythonAnywhere/Jupyter/etc and other online services were as established as they are now), I just had students download the Anaconda click-installer, which would basically ensure they'd have the expected Python version, plus a bunch of useful packages installed by default. Sure, for advanced developers who need to maintain varying setups and packages, Anaconda was sometimes problematic (at least in the past), but that's not an issue for most beginners...and it's easy to remove Anaconda at the end of the semester.
python.org has shipped faulty distributions before, sadly. Best to make sure your lesson plan works on each Python version someone might use, on every OS, etc. Or just use a common configuration.
Also, are you abandoning Mac users?
Also, are you abandoning Mac users?
I'm just a viewer of that course. I guess for Mac users, it's easy, cause MacOS already comes with Python (3.x?) preinstalled. The course author himself video streams from the MacOS system.
MacOS has only had Python 2.x installed. Python and Ruby have both been deprecated in Catalina (10.15) and will not be pre-installed on MacOS in future releases:
https://developer.apple.com/documentation/macos_release_note...
> Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. Future versions of macOS won’t include scripting language runtimes by default, and might require you to install additional packages. If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app.
https://developer.apple.com/documentation/macos_release_note...
> Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. Future versions of macOS won’t include scripting language runtimes by default, and might require you to install additional packages. If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app.
I use a Mac, it's true -- but I also have plenty of people using Windows and Linux in the course. I try to help everyone to get it installed on their systems.
Also: The Mac comes with Python 2. I'm using Python 3, and hope that everyone will indeed install it!
Also: The Mac comes with Python 2. I'm using Python 3, and hope that everyone will indeed install it!
I been trying to get one of my daughters to learn programming (With / through Python) for some time now. She's also willing, but life gets in the way and her dedications was sparse.
This week with lockdown and everything she started to study again.
I had recently "upgraded" her laptop from Windows to Debian, and installed both PyCharm and Miniconda on it.
So, this week she managed to configure PyCharm to use the Miniconda python interpreter, and I gave her a few instructions (That were actually a repetition or some I gave her a while back) on to how to run Jupyter.
Come the next day, and she calls me to ask me how to run some notebook she had in a backup. She had already copied them in a folder (A different one that the one she was using the previous day).
So I told her "Ok, so you go to the folder and run Jupyter in it".
"Dad. Run... WHERE!"
The amount of assumed knowledge we programmers have, and usually assume other people (Even non-programmers) have, is enormous.
I didn't even click in the link, but if all are all the instructions they give to install python, they are off to a not actually bad but chopped foot start.
This week with lockdown and everything she started to study again.
I had recently "upgraded" her laptop from Windows to Debian, and installed both PyCharm and Miniconda on it.
So, this week she managed to configure PyCharm to use the Miniconda python interpreter, and I gave her a few instructions (That were actually a repetition or some I gave her a while back) on to how to run Jupyter.
Come the next day, and she calls me to ask me how to run some notebook she had in a backup. She had already copied them in a folder (A different one that the one she was using the previous day).
So I told her "Ok, so you go to the folder and run Jupyter in it".
"Dad. Run... WHERE!"
The amount of assumed knowledge we programmers have, and usually assume other people (Even non-programmers) have, is enormous.
I didn't even click in the link, but if all are all the instructions they give to install python, they are off to a not actually bad but chopped foot start.
My son is taking a programming class in high school - they use repl.it for all their assignments. That makes installation a non-issue; eventually I assume they'll "graduate" to a local install, but it helps them focus on learning the language and not worrying about the environment (yet).
Girlfriend is learning programming/Java through a course that was suddenly made into a distance course (because of Corona). She's on the fourth week and the lessons are still 80% about the teacher trying to help students set up the online environment (https://codeanywhere.com). It seems frustrating for everyone involved.
That's definitely not all I tell people to do. And I not only give people instructions, but also personal help when they have trouble installing things.
I've been teaching non-programmers for years, and know that they need help getting it set up. I try to offer as much as possible of that kind of help in the course.
I've been teaching non-programmers for years, and know that they need help getting it set up. I try to offer as much as possible of that kind of help in the course.
Yeah, I teach python to elementary and middle schoolers. The first lesson is getting everything installed and maybe explaining the basics of how files work on computers. PythonAnywhere is a really good idea though, I should look into that...
https://repl.it/ is good too.
I wish there was something like repl.it but with an even more basic UI (but which still allowed saving and sharing of programs). Super-beginners don't need version control or a debugger, and I worry that extra visual noise draws away brain power when you're starting out.
We use Trinket.io at my Girls Who Code club (or did before Coronavirus mayhem shut it down). It has the simpler interface, but one huge flaw—the free version is some kind of weird hybrid interpreter that will attempt to run both python 2 and python 3 code (in the same program, even).
We use Trinket.io at my Girls Who Code club (or did before Coronavirus mayhem shut it down). It has the simpler interface, but one huge flaw—the free version is some kind of weird hybrid interpreter that will attempt to run both python 2 and python 3 code (in the same program, even).
Repl.it CEO here, I'm curious which noise are you talking about? Here is how the empty python environment looks like (editor, console, and a huge green run button): https://answer-on-hn.amasad.repl.co/python.png
We continue to test with kids and they intuitively get it with little instructions. If you want to make the environment even simpler just add "?lite=1" to the url and it will look like this: https://answer-on-hn.amasad.repl.co/lite.png
We continue to test with kids and they intuitively get it with little instructions. If you want to make the environment even simpler just add "?lite=1" to the url and it will look like this: https://answer-on-hn.amasad.repl.co/lite.png
Thank you! What I really want is that left sidebar gone (Files, Version Control, Packages, Debugger, Settings). Kids starting out don't need any of it.
Oh ok. I'll think about that. Slightly off topic but I just made a BASIC environment designed for kids learning to code. The theory is BASIC is still one of the best way languages to start with. Let me know if you try it:
- https://repl.it/languages/basic
- docs: https://docs.repl.it/misc/basic
- https://repl.it/languages/basic
- docs: https://docs.repl.it/misc/basic
I must admit that I had heard of repl.it in the past, but never gave it a thought.
I tend to use Jupyter because it's easy to sho, relatively easy to use, and I can distribute its documents. But installing it gives newcomers a lot of trouble, which is a shame.
I'll look more at repl.it! I'm not sure if/when/how I'll use it, but knowing about additional, newbie-friendly tools is crucial in my line of work, and helps me to improve my classes.
I tend to use Jupyter because it's easy to sho, relatively easy to use, and I can distribute its documents. But installing it gives newcomers a lot of trouble, which is a shame.
I'll look more at repl.it! I'm not sure if/when/how I'll use it, but knowing about additional, newbie-friendly tools is crucial in my line of work, and helps me to improve my classes.
Absolutely -- one of the tools I wish more classrooms used.
Even in a CS program, its surprising how difficult it is for many students to provision the correct software.
Even in a CS program, its surprising how difficult it is for many students to provision the correct software.
> (I always have students enable display of file extensions at the start; usually it's off by default for most OSes).
Isn't that just Windows? I don't remember Mac doing that, and certainly other Unixes wouldn't make such a brain-dead decision.
It's one of those things that seems like it would make things simpler, but actually makes it harder to understand.
Isn't that just Windows? I don't remember Mac doing that, and certainly other Unixes wouldn't make such a brain-dead decision.
It's one of those things that seems like it would make things simpler, but actually makes it harder to understand.
> Filename extensions are usually hidden in macOS, but if you find them useful, you can show them.
https://support.apple.com/guide/mac-help/show-or-hide-filena...
(This matches my experience. Perhaps you simply forget changing this setting.)
https://support.apple.com/guide/mac-help/show-or-hide-filena...
(This matches my experience. Perhaps you simply forget changing this setting.)
Yes, I don't use it much, and must have changed it the first day.
[deleted]
It's one of those things that seems like it would make things simpler, but actually makes it harder to understand.
Normally I agree with this point of view, but file extensions don't make sense for what's probably the most common use-case: people clicking on a file, and waiting for it to do something.
If they get a mail attachment that's something like `week04.xlsx`, they aren't going to be right-clicking and opening in Excel, they're just going to click twice on it. The type of file doesn't really matter to them, they just want it to open in the right program. The extension probably just serves to confuse most users.
Normally I agree with this point of view, but file extensions don't make sense for what's probably the most common use-case: people clicking on a file, and waiting for it to do something.
If they get a mail attachment that's something like `week04.xlsx`, they aren't going to be right-clicking and opening in Excel, they're just going to click twice on it. The type of file doesn't really matter to them, they just want it to open in the right program. The extension probably just serves to confuse most users.
That file extensions are not the best way to handle metadata is neither here nor there at this point. They don't seem to be going away, so better get used to them.
The problem is you when you need to specify a filename and the displayed value is different that the true value, causing any number of errors, for unexplained reasons. That's the worst kind of simplification in my opinion.
Reminds me of other bad decisions from older Windows versions. Instead of a proper filesystem permissions, Explorer would tell you "Don't look in here, you could break something." I like to call it the "Band-aid over a gaping wound" model.
The problem is you when you need to specify a filename and the displayed value is different that the true value, causing any number of errors, for unexplained reasons. That's the worst kind of simplification in my opinion.
Reminds me of other bad decisions from older Windows versions. Instead of a proper filesystem permissions, Explorer would tell you "Don't look in here, you could break something." I like to call it the "Band-aid over a gaping wound" model.
That file extensions are not the best way to handle metadata is neither here nor there at this point. They don't seem to be going away, so better get used to them.
I think they're pretty great at it, actually. I'm fully used to them, and I like them.
The problem is you when you need to specify a filename and the displayed value is different that the true value, causing any number of errors, for unexplained reasons. That's the worst kind of simplification in my opinion.
Not a problem for the casual user, which is the majority of people using Windows.
Reminds me of other bad decisions from older Windows versions. Instead of a proper filesystem permissions, Explorer would tell you "Don't look in here, you could break something." I like to call it the "Band-aid over a gaping wound" model.
Why not? It doesn't cost Microsoft anything, and it doesn't harm anyone using Windows.
I think they're pretty great at it, actually. I'm fully used to them, and I like them.
The problem is you when you need to specify a filename and the displayed value is different that the true value, causing any number of errors, for unexplained reasons. That's the worst kind of simplification in my opinion.
Not a problem for the casual user, which is the majority of people using Windows.
Reminds me of other bad decisions from older Windows versions. Instead of a proper filesystem permissions, Explorer would tell you "Don't look in here, you could break something." I like to call it the "Band-aid over a gaping wound" model.
Why not? It doesn't cost Microsoft anything, and it doesn't harm anyone using Windows.
There are elegant designs and poor designs. Not a great revelation I’d gather.
Further, there’s no point in hobbling a general purpose device anymore as those folks have moved on to tablets etc. The division between workstations and appliances is a good one imho. Mixing metaphors has a poor track record.
Further, there’s no point in hobbling a general purpose device anymore as those folks have moved on to tablets etc. The division between workstations and appliances is a good one imho. Mixing metaphors has a poor track record.
I think this is one of the secrets of the success of VBA. Open Excel and you have a full IDE.
The flipside of this is that you can open an Excel file and expect a full VBA application to begin running immediately.
Or well, luckily someone eventually realised that that wasn't a good idea so now they just open with a big warning saying that the file in read only mode. Hopefully you also get some more intelligible warnings when it actually tries to run VB code.
Or well, luckily someone eventually realised that that wasn't a good idea so now they just open with a big warning saying that the file in read only mode. Hopefully you also get some more intelligible warnings when it actually tries to run VB code.
Perhaps, but I think it's more likely that the only feasible option was to use VBA with excel, and excel is the "default" spreadsheet application used everywhere. It nearly the same reason why JavaScript became the default front end language thanks to Netscape, which was the "excel of browsers" during the dawn of the internet.
I have a Discourse forum that's open to anyone who registers for the course. I've been helping people there to install Python and Jupyter, as well as an IDE (typically PyCharm) if they want.
I think Thonny is perfect for this. It includes Python 3.7, has a simple debugger and is multi-platform.
Not affiliated, just a happy user.
https://thonny.org/
Not affiliated, just a happy user.
https://thonny.org/
> Explains scopes. Highlighting variable occurrences reminds you that the same name doesn't always mean the same variable and helps spotting typos. Local variables are visually distinguished from globals.
That'd be a good feature in any IDE.
That'd be a good feature in any IDE.
Yep, I agree with Thonny.
It comes with Raspbien as well.
Another beginner option which is quite similar to Thonny is Mu. https://codewith.mu
Another beginner option which is quite similar to Thonny is Mu. https://codewith.mu
Replit is perfect for this.
You know what's better than criticizing negatively? Helping.
So, to avoid being a hypocrite, how can I help you? LOL
I'm guessing the FAQ is targeted at the non-technical audience, so I'm not surprised this doesn't show up as a question, but - why Python?
I often wonder if imperative programming is actually a beginner-friendly abstraction - in particular, because of name rebinding and interior mutability. My university's CS course is highly technical, but also targeted at non-programmers (officially, the lecturers cannot expect any computing experience at all) - and it teaches Haskell, which addresses some of those concerns.
I often wonder if imperative programming is actually a beginner-friendly abstraction - in particular, because of name rebinding and interior mutability. My university's CS course is highly technical, but also targeted at non-programmers (officially, the lecturers cannot expect any computing experience at all) - and it teaches Haskell, which addresses some of those concerns.
> wonder if imperative programming is actually a beginner-friendly abstraction
You know, a very common newbie Lisp question is "why is my list still the same after append".
I bet you no Python beginner asks why their list is different after list.append(3), having expected a new list to be returned and the original one left alone.
Imperative is intuitive; the real world is apparently imperative. Though it can be described by functions in which t is just a parameter, the way those functions play out is that the past values of t are not available.
To take a more level view, the expectations w.r.t. append could be conditioned by prior exposure to other languages. However, any exposure to computers at all reinforces the imperative view. Almost all content is manipulated destructively: documents, settings, you name it.
You know, a very common newbie Lisp question is "why is my list still the same after append".
I bet you no Python beginner asks why their list is different after list.append(3), having expected a new list to be returned and the original one left alone.
Imperative is intuitive; the real world is apparently imperative. Though it can be described by functions in which t is just a parameter, the way those functions play out is that the past values of t are not available.
To take a more level view, the expectations w.r.t. append could be conditioned by prior exposure to other languages. However, any exposure to computers at all reinforces the imperative view. Almost all content is manipulated destructively: documents, settings, you name it.
On the other hand, we have to teach people about aliasing vs cloning in imperative languages.
On the other-other hand, it is a slower ramp up to doing useful things. It's much easier to read/write to files and draw graphics in an imperative language.
a = [1, 2, 3]
b = a
b.append(4)
assert a == [1,2,3]
No matter which paradigm we use, there are going to be hidden traps new programmers need to learn. I think there might be fewer roadblocks in an immutable language because you can examine each function in isolation. There's a smaller chance a beginner will screw something up on line 10 which causes a problem on line 150. More moving parts makes it easier to get stuck on a buggy program.On the other-other hand, it is a slower ramp up to doing useful things. It's much easier to read/write to files and draw graphics in an imperative language.
Aliasing versus cloning can bite you even if nothing in the program is imperative. For instance, somewhere in the program you choose the wrong one among the available set of equality functions (all of them beautifully pure).
If the immutable language has a single equality operator which makes it impossible to tell whether or not a value has been cloned, you might be safe from this issue.
If the immutable language has a single equality operator which makes it impossible to tell whether or not a value has been cloned, you might be safe from this issue.
There shouldn't be a difference between Aliasing and cloning for immutable data because you can't change the data.
Deep vs shallow operations is an issue in both imperative and functional programming. In python, you have '==' vs 'is' for different types of equal. You have deep vs shallow copy: https://docs.python.org/3/library/copy.html
Deep vs shallow operations is an issue in both imperative and functional programming. In python, you have '==' vs 'is' for different types of equal. You have deep vs shallow copy: https://docs.python.org/3/library/copy.html
> the real world is apparently imperative.
I beg to differ. The real world is declarative. But as software developers we mostly suck at creating declarative ways to express problems. The spreadsheet being the one example of an intuitive declarative UI that non-programmers grok easily.
Your average corporate VP of engineering uses a declarative interface to issues charters to his developers: "You need to hit X performance target, Y cost of goods, and Z MTBF. By Date D. Go."
Declarative is the way the world works.
I beg to differ. The real world is declarative. But as software developers we mostly suck at creating declarative ways to express problems. The spreadsheet being the one example of an intuitive declarative UI that non-programmers grok easily.
Your average corporate VP of engineering uses a declarative interface to issues charters to his developers: "You need to hit X performance target, Y cost of goods, and Z MTBF. By Date D. Go."
Declarative is the way the world works.
And yet, the only way to actually complete that charter is to "interpret" or "compile" that charter into something imperative.
Prolog is the best way to describe these constraints. Nothing else comes close to its declarative power.
The industry will catch on, eventually.
The industry will catch on, eventually.
The political or legal world is declarative, for sure.
Perhaps an inviting flower is declarative to a bee, or reactive chemicals are declarative to each other.
Other than that, I'm not so sure.
Perhaps an inviting flower is declarative to a bee, or reactive chemicals are declarative to each other.
Other than that, I'm not so sure.
People have a very clear grasp of a list of instructions to follow in order. At the same time, a set of constraints that describe something is a very advanced topic that requires a lot of getting used to and some extra focus.
Programmers tend to favor the declarative approach because it leads to simpler programs, but it's only easier to understand if you are trained in (somewhat advanced) mathematics; most people succeed in avoiding learning any mathematics.
But yes, mutability is surprising. It's something to explicitly teach.
Programmers tend to favor the declarative approach because it leads to simpler programs, but it's only easier to understand if you are trained in (somewhat advanced) mathematics; most people succeed in avoiding learning any mathematics.
But yes, mutability is surprising. It's something to explicitly teach.
I definitely talk about mutability in my course. It's super important, I agree!
Why not Python? It has a fairly sensible syntax, a broad standard library, a massive library of powerful and useful third-party packages, and a great ecosystem for online/interactive learning (JupyterLab/CoLab/etc).
Assuming that many of its audience are self-learning/non-CS-careerists, Python's popularity and adoption rate is also going to be a major draw. Learning Python as an attractive job skill is as much an incentive as the intellectual accomplishment.
Assuming that many of its audience are self-learning/non-CS-careerists, Python's popularity and adoption rate is also going to be a major draw. Learning Python as an attractive job skill is as much an incentive as the intellectual accomplishment.
Good questions!
I'm teaching Python because... well, because I teach Python, and this is my way of helping people who want to learn.
I also believe that Python is a good first language for many people. Not everyone, but for a lot of people. It's not only relatively easy to learn, but it's practical. Many people want to learn Python because of their jobs.
I'm teaching Python because... well, because I teach Python, and this is my way of helping people who want to learn.
I also believe that Python is a good first language for many people. Not everyone, but for a lot of people. It's not only relatively easy to learn, but it's practical. Many people want to learn Python because of their jobs.
Python is much more useful to know than Haskell...
If someone had tried to start my programming journey with Haskell I'd likely have given up and not touched programming ever again.
God forbid that the functional crowd gets their way. Most people are terrible at recursive thinking. That's why those languages have such a reputation for being difficult.
The declarative languages are also a good starting point, but the most used one (SQL or spreadsheets) are somewhat orthogonal to what one tries to do with python.
You need for loops. You need if statements. You can't just hope that they will get recursion.
God forbid that the functional crowd gets their way. Most people are terrible at recursive thinking. That's why those languages have such a reputation for being difficult.
The declarative languages are also a good starting point, but the most used one (SQL or spreadsheets) are somewhat orthogonal to what one tries to do with python.
You need for loops. You need if statements. You can't just hope that they will get recursion.
I think they answered why python in the description - because it's one of the hottest languages out there and because it's one of the most popular languages out there.
Because it reads like English.
Many students aren’t going to want to learn a language that hardly anyone ever uses. Many of them will be making their choices with one eye on their employment prospects, and there are a lot more Python jobs out there than Haskell ones.
https://xkcd.com/1312/
https://xkcd.com/1312/
Cool initiative. I will take a look at some of the sessions. Can you post a schedule when they will take place?
I am in particular interested to see how much depth you expose the "non-programmers" to. Is it just an applied course? E.g., here is a function X that does Y. Or do you focus also on the implications in memory and, for example, Python's object model?
Good luck. We need more non-programmers to learn to code. Not for coding's sake. Most of them won't become developers. But it allows academics from all kinds of disciplines to teach their students advanced stuff. I see programming just like most students independent of the major must take Calculus 101 or Statistics 101.
BTW, I am the author of this introduction to Python (also for non-CS majors): https://github.com/webartifex/intro-to-python
I teach Python at a business school. Due to Corona, the campus was closed and I put all my lectures on YouTube: https://www.youtube.com/playlist?list=PL-2JV1G3J10lQ2xokyQow...
Subscribe to my channel https://www.youtube.com/user/webartifex if you are interested in more Python applications in the field of business administration. I am new to YouTube and will post at most 2 meaningful videos a month. No monetization, no hidden product placements.
See also this HN post from last week: https://news.ycombinator.com/item?id=22669084
I am in particular interested to see how much depth you expose the "non-programmers" to. Is it just an applied course? E.g., here is a function X that does Y. Or do you focus also on the implications in memory and, for example, Python's object model?
Good luck. We need more non-programmers to learn to code. Not for coding's sake. Most of them won't become developers. But it allows academics from all kinds of disciplines to teach their students advanced stuff. I see programming just like most students independent of the major must take Calculus 101 or Statistics 101.
BTW, I am the author of this introduction to Python (also for non-CS majors): https://github.com/webartifex/intro-to-python
I teach Python at a business school. Due to Corona, the campus was closed and I put all my lectures on YouTube: https://www.youtube.com/playlist?list=PL-2JV1G3J10lQ2xokyQow...
Subscribe to my channel https://www.youtube.com/user/webartifex if you are interested in more Python applications in the field of business administration. I am new to YouTube and will post at most 2 meaningful videos a month. No monetization, no hidden product placements.
See also this HN post from last week: https://news.ycombinator.com/item?id=22669084
I'm running the course every Friday at 10 a.m. Eastern, in 1-hour segments. Recordings are available to anyone who signs up. So far, it has been lots of fun!
So this is what happens when I don't realize that my post on HN has gotten a lot of attention! Yikes...
I'm going through the comments now and responding...
I'm going through the comments now and responding...
I tend to recommend the free online course https://www.py4e.com/ for people who want to learn python and programming in general. If they struggle with it, then https://www.codecademy.com/ is another good resource.
What does it mean to be a "non programmer" vs. a "programmer"?
I don't mean "someone who doesn't know how to program" vs "someone who does".
I mean the common trope of a (for example) midlevel data scientist or someone who knows how to use python and says "I'm not a programmer", yet knows more programming than most junior devs I know.
I don't mean "someone who doesn't know how to program" vs "someone who does".
I mean the common trope of a (for example) midlevel data scientist or someone who knows how to use python and says "I'm not a programmer", yet knows more programming than most junior devs I know.
The course is aimed at people who have never programmed before. There are many participants who have, but they realize that I'm assuming they don't even know what a variable is, or that you need quotes around text to distinguish it from an identifier, etc.
Session 1 was about basic input/printing. Session 2 was about "if" statements. Session 3 was about numbers. Session 4 will be the first of several talking about strings.
My goal is to help people learn to program if they haven't done so already, or (especially) if they have been frustrated.
Session 1 was about basic input/printing. Session 2 was about "if" statements. Session 3 was about numbers. Session 4 will be the first of several talking about strings.
My goal is to help people learn to program if they haven't done so already, or (especially) if they have been frustrated.
Cool! Thanks for doing the course!
does it say at what hour is the course?
> Q: When does the course take place?
For now, we're meeting at 10 a.m. Eastern on Fridays, via Zoom. Each session lasts for 1 hour, and is recorded. If you register for the course, you'll have unlimited access to all of the recordings.
7am, Pacific. My wife has shown a bit of interest but 7am is just too early in our household to get up and start leaning right away. Seems like it would be a good course though. She could still listen to the recordings, but being able to ask questions live would be more engaging.
7am, Pacific. My wife has shown a bit of interest but 7am is just too early in our household to get up and start leaning right away. Seems like it would be a good course though. She could still listen to the recordings, but being able to ask questions live would be more engaging.
Finding a good hour that (a) fits my schedule and (b) fits the schedule for as many people as possible around the world was... challenging. I apologize for making it early for people on the West Coast, and hope that you can benefit from the recordings.
bookmarked for later use
> Just Python is enough. Other installation suggestions and support are available in the forum.
Speaking as someone who has taught Python to non-programmers in classroom and workshop settings, this seems like far too vague an instruction. For many novice (including the instructor!), the installation and system setup is the most frustrating and confusing part of hands-on learning. With non-programmers, you can never assume a base level of computing understanding – this includes things like not knowing how to get into the command-line, or install a text editor, or even what filenames and file extensions are (I always have students enable display of file extensions at the start; usually it's off by default for most OSes).
I would think you'd want to do this kind of thing having students use something like CoLab or PythonAnywhere. Sure, it's nice to run code from your own system, but that's not an immediate concern for most people trying to learn the basics.