DarkSchneider
Posts: 20
Joined: Sat Jun 11, 2016 10:50 am

RPi as home computer for learning programming

Thu Dec 22, 2016 8:51 am

The original discussion come from here:
viewtopic.php?p=1082360#p1082360

THE ROAD SO FAR
The RPF's charity status is dependent on it's educational purpose - that means education IS the main purpose, what ever else the Pi is used for.
Now from educational perspective. What I miss is the programming manual. What about something like that? I remember when I got my MSX and Amstrad CPC that they included the BASIC programming manual out of the box included. Many people learntto program with old-computers in this way.
So what about expanding the educational beyond the academic? Expand it to the home environment.
I think nowadays can be easily done simply putting Python ebooks in the download section of the RPi, and then each one could print them. Different levels, from beginers to advanced. And translated to different languages (this will be funds dependant). Also packs with the printed books could be made, in the old-computers style.
I miss a computer for children to learn programming at home.
DougieLawson wrote:
DarkSchneider wrote: Now from educational perspective. What I miss is the programming manual. What about something like that? I remember when I got my MSX and Amstrad CPC that they included the BASIC programming manual out of the box included. Many people learntto program with old-computers in this way.
Are you completely disconnected from the Internet?
Have you completely failed to discover all of the MagPi publications?

Those books delivered with things like the CPC464 weren't a patch on the stuff you've got available for Raspberries.
bensimmo wrote:
DougieLawson wrote:
DarkSchneider wrote: Now from educational perspective. What I miss is the programming manual. What about something like that? I remember when I got my MSX and Amstrad CPC that they included the BASIC programming manual out of the box included. Many people learntto program with old-computers in this way.
Are you completely disconnected from the Internet?
Have you completely failed to discover all of the MagPi publications?

Those books delivered with things like the CPC464 weren't a patch on the stuff you've got available for Raspberries.
As above the MagPi a downloadable PDF magazine, once a month.
And the whole of the learn and make aspect of the website too.
The links are now there in the Pixel desktop.

There is no initial Getting Started thrown in with the Pi though,( unless they have one of them in the official kit)
DarkSchneider wrote:
DougieLawson wrote:
DarkSchneider wrote: Now from educational perspective. What I miss is the programming manual. What about something like that? I remember when I got my MSX and Amstrad CPC that they included the BASIC programming manual out of the box included. Many people learntto program with old-computers in this way.
Are you completely disconnected from the Internet?
Have you completely failed to discover all of the MagPi publications?

Those books delivered with things like the CPC464 weren't a patch on the stuff you've got available for Raspberries.
I don't feel the MagPi like a get out of the box and start learning programming at all. And for children...
Monthly? Disperse information instead an included book "Python for beginers from scratch", including how to use the interface and programs involved.
For old-computers also there was magazines where you could read various information about the system. It can be an extra, but is not a replacement.

Sorry, is not the same for me.
DougieLawson wrote:You've clearly missed
https://www.raspberrypi.org/help/
https://www.raspberrypi.org/education/

Plus a million hits from Dr. Google or Dr. Bing.
DarkSchneider wrote:
DougieLawson wrote:You've clearly missed
https://www.raspberrypi.org/help/
https://www.raspberrypi.org/education/

Plus a million hits from Dr. Google or Dr. Bing.
Hi, I think all that will overcome and most people simple will give up. I am talking about someone with zero knowledge that wants to learn.

There we have tons of articles (not a learning from scratch book) about "we will use a module", what is a module?, "now import", what is import?, and etc. I think most of the content already supposes a base of knowledge for someone that already knows to program, and then learn something new.

With the old-computers we had books about 150-200 pages introducing and teaching what each thing is, and then examples and exercises. It began with something like PRINT, what it does, what can you pass as parameter, the IF conditional, what is itself, many examples of usage. Step by step, describing what each thing is itself, a condition, a loop, a variable, paragraph, example, paragraph, example, exercise, and repeat for the next thing.
And at different levels, from only the more basic (for kids), to data formats, bitwise, and even machine code (for advanced).

Give a child a RPi and say "here you have, now get these links and Google/Bing for learn programming". It will be a giving up for sure.

As someone that learnt by its own with old-computers (and at my home we was 3 that learnt successfully, something very indicative IMO), I see all that content you reference plus googling and feel I didn't succeeded in that case.
Have someone tried and/or studied if giving this to a kid and then leaving to learn by his own has been a success? I talk even supposing that you give an already running RPi (i.e. purchasing a pack of RPi with AC, case and SD card with the system installed, connect to monitor and keyboard/mouse and power-on).
fruitoftheloom wrote:
DarkSchneider wrote: Hi, I think all that will overcome and most people simple will give up. I am talking about someone with zero knowledge that wants to learn.
https://www.amazon.co.uk/Raspberry-User ... 1119264367

Though what this has to do with GigaBit Ethernet I am at a loss to understand :roll: :roll:
jahboater wrote:Still off topic but:
DarkSchneider wrote:With the old-computers we had books about 150-200 pages introducing and teaching what each thing is, and then examples and exercises. It began with something like PRINT, what it does, what can you pass as parameter, the IF conditional, what is itself, many examples of usage. Step by step, describing what each thing is itself, a condition, a loop, a variable, paragraph, example, paragraph, example, exercise, and repeat for the next thing.
And at different levels, from only the more basic (for kids), to data formats, bitwise, and even machine code (for advanced).
When we had a new mainframe running IBM VM/SP it came with a little yellow booklet (the equivalent of a quick start guide) which just explained how to run an assembler program in CMS.
What more did you need? ;)
DarkSchneider wrote:
fruitoftheloom wrote:
DarkSchneider wrote: Hi, I think all that will overcome and most people simple will give up. I am talking about someone with zero knowledge that wants to learn.
https://www.amazon.co.uk/Raspberry-User ... 1119264367

Though what this has to do with GigaBit Ethernet I am at a loss to understand :roll: :roll:
From a review:
It's by no means a comprehensive reference or guide to programming in Python, but its a great introduction and definitely recommended
@jahboater do you had some experience already? or you get it to work being your first time?

I mean, basically, official books (RPi oriented) for different levels (from getting started from scratch to advanced), approved by the RPi Foundation, and translated to other languages. So anyone with zero knowledge could learn by its own.

Probably this should be for another thread.
jahboater wrote:
DarkSchneider wrote: @jahboater do you had some experience already? or you get it to work being your first time?
It was a long time ago (30 something years), of course I knew other assemblers, but moving into the IBM world where everything was written in assembler, or later REXX, or VS Fortran, was a fun learning curve!
mfa298 wrote:
DarkSchneider wrote: From a review:
It's by no means a comprehensive reference or guide to programming in Python, but its a great introduction and definitely recommended
@jahboater do you had some experience already? or you get it to work being your first time?

I mean, basically, official books (RPi oriented) for different levels (from getting started from scratch to advanced), approved by the RPi Foundation, and translated to other languages. So anyone with zero knowledge could learn by its own.
One of the problems here is that the rate of change in computers is much higher now and there's much more choice now. What was current two years ago for the pi is no longer accurate (look at all the guides for sysvinit, setting up static ips etc. that were written for how the Pi worked under wheezy and are now misleading)

With the rate that new modules etc. are added to languages then any comprehensive reference is going to be out of date before it's even published.

There are plenty of excellent online courses for learning new languages (code academy, learn ??? the hard way). Possibly some of those should be linked to from the online documentation. Some of those styles of learning suit different people so there's not really a one size fits all solution.
achrn wrote:
DarkSchneider wrote: Give a child a RPi and say "here you have, now get these links and Google/Bing for learn programming". It will be a giving up for sure.
I think you should have more confidence in the resilience and curiosity of children.

Also, look up Sugata Mitra and 'the method of the grandmother'. He's done a couple of TED talks that give some introduction.
DougieLawson wrote:
jahboater wrote:Still off topic but:
DarkSchneider wrote:With the old-computers we had books about 150-200 pages introducing and teaching what each thing is, and then examples and exercises. ...
And at different levels, from only the more basic (for kids), to data formats, bitwise, and even machine code (for advanced).
When we had a new mainframe running IBM VM/SP it came with a little yellow booklet (the equivalent of a quick start guide) which just explained how to run an assembler program in CMS.
What more did you need? ;)
Much the same when I started working with IBM's OS/VS2 MVS in 1981. I could program a Z80 and 6502 but I'd never met TSO, JCL, COBOL, PL/I, DL/I or S/370 assembler (it was the same yellow card as your's for that). The way we learned was at the school of hard knocks by sitting next to the old guy in the corner who'd "done it for years".

These days the 20 to 30 year olds get it easier, they have to sit next to me while I reminisce about the old days of learning JCL, DL/I and stuff. They've got Google, Bing, DuckDuckGo and the potted history of a bunch of crusty old programmers to work from, not everything needs to be delivered on pulped dead tree sprayed with carbon particles in a form of glue.
bensimmo wrote:
achrn wrote:
DarkSchneider wrote: Give a child a RPi and say "here you have, now get these links and Google/Bing for learn programming". It will be a giving up for sure.
I think you should have more confidence in the resilience and curiosity of children.

Also, look up Sugata Mitra and 'the method of the grandmother'. He's done a couple of TED talks that give some introduction.

If it's not on YouTube the kids are not interest, they can stare at hours and hours of people talking about stuff on there.

Maybe there should be a spin-off of MagPi YouTube guides and the website tutorials.
Or more prominent getting started in the booting and first usage of Pixel.
bensimmo wrote:This is probably the missing first book
But already on it's fourth edition
https://www.amazon.co.uk/gp/aw/d/111926 ... 0ZKHT2875D
And there are others to go along with it.
One problem is the Pi3 Kit is about about £50 and another 10 to 15 quid for keyboard and mouse.
So £60 all in to get equiv of a C64, spectrum or BBC, to add a big pile of paper cost more money.
They are just not sold in the same way.

(I don't think 60 quid is to bad a price to pay, the Acorn Electronics was £175 in 1983, ZX about £125. That isabout £550 and £400 in today's money.
W. H. Heydt wrote:
DarkSchneider wrote: With the old-computers we had books about 150-200 pages introducing and teaching what each thing is, and then examples and exercises. It began with something like PRINT, what it does, what can you pass as parameter, the IF conditional, what is itself, many examples of usage. Step by step, describing what each thing is itself, a condition, a loop, a variable, paragraph, example, paragraph, example, exercise, and repeat for the next thing.
And at different levels, from only the more basic (for kids), to data formats, bitwise, and even machine code (for advanced).
I spent a bunch of time last Summer going through a book like that on Scratch with my 8-year-old grandson. It is all of 40 pages.

"Coding with Scratch Workbook", ISBN 978-1-4654-4392-2. publisher http://www.dk.com.

It came bundled with a similar book on Python and one on writing games in Scratch. The whole set was about $10.
Heater wrote:bensimmo,

Back in the day you unpacked your C64, Sinclair, TRS 80, whatever, connected it to a TV and turned it on.

Then you were confronted with a blinking command prompt. What to do? Oh yeah, read the manual that came with it. Soon you were programming in BASIC.

Admittedly that simplicity has never been recreated, even with the Pi.

Today you unpack your Pi, mess around downloading and burning an SD card image. Connect the thing to some spare monitor, mouse and keyboard. Then on power up you are probably presented with a desktop GUI. What to do? There is no book in the package.

Oh yeah, hit google on the net.

Still, enthusiastic kids manage to handle all this some how. With some guidance perhaps.

As for the £60 price. Remember that was a huge lot of money back in the days of C64. Today it's just a few beers.
ejolson wrote: While there are complete kits available from many vendors, especially for the Pi Zero, it is not clear these kits are complete. An official boxed Pi development leaning system, which included everything needed so a child would not have to immediately go begging, would help parents who do not have engineering degrees get their children started. Being official, high quality and complete are important. Maybe next year such a boxed set could be sold at Tesco, Wilco, Robert Dyas and Boots around Christmas. By that time complete might even include gigabit Ethernet.
DarkSchneider wrote: About the educational discussion. I think RPi is near, not totally like the old-computers because they had not an OS like today computers. But you can buy ready to use packs made by sellers. So you put on the table, connect and turn-on, and you have your system running. A few more bucks for the work.

But, is about the content and presentation. IMO it should be adapted for easy understanding. And maybe this could be achieved with some (only examples) points like:
- Official RPi books like the old ones. You sit in front of the computer and "what I do?", take the book and begin (like has been said in some previous post). And translated (like the old books).
- Direct access to that book (PDF) and i.e. to Python (if this one was the selected for learning) in desktop.
- Both (and maybe all the tools for learning) configured to open in a maximized window. May sound weird but a full-screen to focus on I think helps instead a bunch of windows. Change between book and Pyton at the taskbar.
- Etc.
These are only examples as said. It could require a deep pedagogical study.
Pithagoros wrote:Putting an SD card into a camera, tablet, phone, laptop or whatever is quite normal in 2017 and kids take that within their stride.
Same with plugging a HDMI cable into a display. Or USB keyboard, mouse, memory stick. Most would not find these unusual or even strange.

I would say it would be simpler than connecting a cassette player and fiddling around to get the audio levels right to load up the game that is going to keep them busy and not writing any BASIC.
jamesh wrote:Almost official books.....

http://uk.rs-online.com/web/c/office-su ... 6#products

So, one by Eben himself, one by Alex Bradbury (who works a lot on official pi stuff). And of course there is this one http://www.alltopbooks.com/adventures-i ... 12990.html by Carrie-anne Philbin (who is now Bradbury I beleive, so defo. keeping it in the family) who works at Raspberry Pi (head of education?)

How much more official do you need?
DarkSchneider wrote:
jamesh wrote:Almost official books.....

http://uk.rs-online.com/web/c/office-su ... 6#products

So, one by Eben himself, one by Alex Bradbury (who works a lot on official pi stuff). And of course there is this one http://www.alltopbooks.com/adventures-i ... 12990.html by Carrie-anne Philbin (who is now Bradbury I beleive, so defo. keeping it in the family) who works at Raspberry Pi (head of education?)

How much more official do you need?
The Adventures in Raspberry Pi looks impressive. Also the Raspberry Pi For Dummies, 2nd edition by Sean McManus and Learning Python with Raspberry Pi by Alex Bradbury could be a good addition.
As said I think the RPi is on the way, but what I feel is some lack of organization. The first was the MagPi, not good for the purpose but good as addition, then some books on Amazon that looking at reviews say clearly not good for learning programming, and now these books that look good for the purpose, but many people even ignore they exist.

That is the same shop I get the RPi material, but the spanish one.
http://es.rs-online.com/web/generalDisp ... aspberrypi
I now notice they have an excellent starter kit:
http://es.rs-online.com/web/p/kits-de-d ... r/8968119/
But, is the book translated? No, it says "only in english".
http://es.rs-online.com/web/p/libros/9076497/

Not sure if the starter pack was available before, the search never got that result. But well, now it is. It's obvious we miss translations, and it doesn't requires much resources, allowing expanding much the educational purposes.

Also, currently the "tape" to save your works could be the pendrives, so if you have to restore the OS (nothing strange) you don't lose your programs. Then I noticed the pendrives, usually formatted in FAT32 by default, are mounted as read-only. People with knowledge can remount or format it with EXT filesystem, but it should be more friendly for noobs, mount the FAT32 filesystem with read-write permissions.
And for extraction, with the eject icon at top right, I see that the SD card (the OS one) can be extracted but the pendrive is grayed and cannot be extracted if not umount the filesystem. That should be more friendly too.

Then I think that with only a few tweaks and organization the educational can reach much further. But they must be done, they will not be done by themselves. So close but never achieved.
ejolson wrote: Programming languages designed for non-programmers who don't want to learn programming might be very different in nature than programming languages designed to teach kids computer science.
That is why I don't like much the Scratch, "programming" with much already done and not typing. IMO Python is a good (best IMO) option for the second one. It looks like the most similar to old BASIC: it runs in interpreter mode, but also can create programs, and it seems much versatile to learn at different levels, we have variables, arrays, and even classes.
bensimmo wrote:Scraych has variable and whatnots, it just pictorial.
Programming logic is what they are learning and if it keeps their interest longer than typing lots of words then all is good.
Of course you could always install whichever old basic you like and give them your old book.

I do agree Pixel could do with more helping hands in it's setup and layout and getting started the Pi old timers none educational user people will complain too, for the clutter they don't want.
Preinstalled PDF and website would be nice. Hard to get the internet if you don't know how or just cannot. Luckily Adafruit and others have a handy save as PDF/single page, we use that a lot.
Shame the RPF teaching website has no such option.
Maybe they could create them offline as an apt-get -able bundle.


That kit has been available for a few months now. RS is not the best place to look for books, Amazon has the latest revisions of each.
As for translated I don't know, somebody has been translating MagPi into some other languages. Books that would be up to the publishers?

Anyways, no mods, no way off pulling all this Off-Topic stuff into another thread?
jamesh wrote: There is constant tweaking going on, the RPF do have a large educational department! Lots of time spent on curricula etc, along with constant development by the trading arm on things like Pixel. I'll be able to report more next year, as I expect to know more about it, hoping to work on that stuff!

Scratch is BRILLIANT for primary age children just starting with programming - children of that age work better pictorially. Not so great as you get older, but that's what Python etc is for.
DarkSchneider wrote:
jamesh wrote: Scratch is BRILLIANT for primary age children just starting with programming - children of that age work better pictorially. Not so great as you get older, but that's what Python etc is for.
Agree with that. For learning the program flow and others Scratch is great.
But the earlier going for a typing platform, the better.
With old-computers and BASIC even 8-years old kids could afford it. More impressive because computing was something new for most people. With something like this:
Image
Translated is "BASIC for children".
ejolson wrote:
W. H. Heydt wrote:I think it falls into the category of "you can write any program in any language if you try hard enough."
Try writing it in Scratch and I think you will be surprised.

It would appear children are taught to use word processors as early as age 7. If keyboards are fine at that age for writing stories, why not for writing programs? Just like the ability to hold a pencil is useful for many things, so are typing skills.

Except that it is not easy to print a Scratch program out on a paper for others to read, Scratch doesn't seem any more graphical than the indenting used in other programming languages. For what it's worth, hand-drawn flowcharts are more graphical. There are many who promote Scratch as an introduction to programming; at the same time it is widely acknowledged that students who start with Scratch will have to start over with a different language later. I've heard the opinion that a week is enough for Scratch, yet others seem to teach it over years. Very few teach multiple years of flowcharting.

However, the real issue in regards to this thread is whether Scratch fully supports gigabit networking speeds.
timrowledge wrote:
Heater wrote: About that Smalltalk thing...

Perhaps it's great and all, but I'm sure it was not usable on the early 8 bit machines that were available, cheap and popular at the time. (Correct me if I'm wrong)
Well not really on 8-bit machines, although a colleague did in fact have a Smalltalk of sorts running on an Apple 2. Remember that 16 bit machines were available not long after 1980 (I had probably the first PC AT in Europe as I was an IBM Research fellow at the time) and we had Smalltalk/V and so on running on DOS. And of course it wasn't much after that that we did the ARM port for Acorn and then Active Book.
Heater wrote:For sure it was not an option on the radar signal processing systems I was involved in in the early 1980's. Or anything else much since.
I'll guess that you shouldn't say too much about those, just as I shouldn't say too much about the related systems that did, in fact, have Smalltalk components.
Heater wrote:Even today kids can program tiny devices like the Arduino in C++. Could they use Smalltalk? I suspect not.
We've talked somewhat about this on other threads, and yes, an Arduino in most cases would not be a great target machine. The ARM based Arduinos may well be a different story and the ESP32 is, as we've covered, a potential customer.
Heater wrote:Can Smalltalk be used on tiny devices like the STM32F4? Like C++ or even Javascript can be: https://www.espruino.com/
Again, the memory is a bit tight but if someone wanted it badly enough, yes I could make a Smalltalk for those. I don't think it would be a full development environment image though.
timrowledge wrote:
DarkSchneider wrote: That is why I don't like much the Scratch, "programming" with much already done and not typing. IMO Python is a good (best IMO) option for the second one. It looks like the most similar to old BASIC: it runs in interpreter mode, but also can create programs, and it seems much versatile to learn at different levels, we have variables, arrays, and even classes.
Have you ever taken part in a class with kids learning Scratch? It really is a jolly good way to teach the fundamentals of programming without wasting time on small details of syntax and spelling. It allows almost complete beginners to do more interesting things than "well kids, lets write another sort routine!". The millions upon millions of users around the world over the last decade tell us that it has some value here.

I'm not sure why you would be so attached to typing. It has its place I'm sure, but there are uses for drawing and so on.
timrowledge wrote:
ejolson wrote:
W. H. Heydt wrote:I think it falls into the category of "you can write any program in any language if you try hard enough."
Try writing it in Scratch and I think you will be surprised.
Depends on just how far you want to stretch things. The Pacman game we provide as an example is a pretty big program; it has many, many scripts for quite a few actors and it works pretty well. And the authors claim it was written in one sitting ; given who the Oliver brother are, I'm happy to believe them.

I don't think I'd want to write a StarWars defence system in it, but then I wouldn't want to write one in any system.
ejolson wrote:Except that it is not easy to print a Scratch program out on a paper for others to read, Scratch doesn't seem any more graphical than the indenting used in other programming languages.
Why would one print out a Scratch project? Much easier to just load it into a Scratch system - remember Scratch runs on pretty much any computer out there - and look at it with a tool better suited to the job. Printouts are *so* last millennium.
ejolson wrote:However, the real issue in regards to this thread is whether Scratch fully supports gigabit networking speeds.
My iMac has gigabit ethernet - in fact I have gigabit internet - and Scratch is perfectly happy to use it. I know this will be a yuuuuuge relief to one and all.
NOW...

W. H. Heydt
Posts: 7619
Joined: Fri Mar 09, 2012 7:36 pm
Location: Vallejo, CA (US)

Re: RPi as home computer for learning programming

Thu Dec 22, 2016 4:13 pm

Okay... The answer to the question in the thread title is, "Yes. That can be done." So after the excessively long set of quoted messages...what is your actual question?

ejolson
Posts: 1055
Joined: Tue Mar 18, 2014 11:47 am

Re: RPi as home computer for learning programming

Thu Dec 22, 2016 5:34 pm

W. H. Heydt wrote:Okay... The answer to the question in the thread title is, "Yes. That can be done." So after the excessively long set of quoted messages...what is your actual question?
I think this post is in response to a request to separate the education stuff from the gigabit Ethernet thread. Given the care with which this was done, maybe a certain new member should be given moderator status.

At any rate, one idea is to create a complete bill of materials that includes books and hardware for setting up a Pi computer at home to learn computer science. This would be similar but different to recommendations for setting up a classroom.

W. H. Heydt
Posts: 7619
Joined: Fri Mar 09, 2012 7:36 pm
Location: Vallejo, CA (US)

Re: RPi as home computer for learning programming

Thu Dec 22, 2016 6:51 pm

ejolson wrote:
W. H. Heydt wrote:Okay... The answer to the question in the thread title is, "Yes. That can be done." So after the excessively long set of quoted messages...what is your actual question?
I think this post is in response to a request to separate the education stuff from the gigabit Ethernet thread. Given the care with which this was done, maybe a certain new member should be given moderator status.

At any rate, one idea is to create a complete bill of materials that includes books and hardware for setting up a Pi computer at home to learn computer science. This would be similar but different to recommendations for setting up a classroom.
There's certainly no shortage of written material to work with. though "Computer Science" is a rather broad subject. Perhpas I should recommend one of my old textbooks. It's by Gschwind on finite state machines. Granted, it's at least 50 years old, but it's not like the subject matter has actually changed all that much.

On a--possibly--more relevant level, there are Fred Brooke' _The Mythical Man Month_ and Gerald Weinberg's _The Psychology of Computer Programming_. Both are seminal works in the field and should be read (and understood) by anyone wishing to really dig into CS.

ejolson
Posts: 1055
Joined: Tue Mar 18, 2014 11:47 am

Re: RPi as home computer for learning programming

Thu Dec 22, 2016 9:18 pm

W. H. Heydt wrote:There's certainly no shortage of written material to work with. though "Computer Science" is a rather broad subject. Perhpas I should recommend one of my old textbooks. It's by Gschwind on finite state machines. Granted, it's at least 50 years old, but it's not like the subject matter has actually changed all that much.

On a--possibly--more relevant level, there are Fred Brooke' _The Mythical Man Month_ and Gerald Weinberg's _The Psychology of Computer Programming_. Both are seminal works in the field and should be read (and understood) by anyone wishing to really dig into CS.
Oops, I misspoke. It appears the title of this thread is about learning computer programming at home not computer science.

Note that when people talk about computer science around here it is often in the context of the national curriculum which states, "The core of computing is computer science, in which pupils are taught the principles of information and computation, how digital systems work and how to put this knowledge to use through programming." The usage in primary school is similar to saying mathematics when you really mean arithmetic.

W. H. Heydt
Posts: 7619
Joined: Fri Mar 09, 2012 7:36 pm
Location: Vallejo, CA (US)

Re: RPi as home computer for learning programming

Thu Dec 22, 2016 10:59 pm

ejolson wrote:
W. H. Heydt wrote:There's certainly no shortage of written material to work with. though "Computer Science" is a rather broad subject. Perhpas I should recommend one of my old textbooks. It's by Gschwind on finite state machines. Granted, it's at least 50 years old, but it's not like the subject matter has actually changed all that much.

On a--possibly--more relevant level, there are Fred Brooke' _The Mythical Man Month_ and Gerald Weinberg's _The Psychology of Computer Programming_. Both are seminal works in the field and should be read (and understood) by anyone wishing to really dig into CS.
Oops, I misspoke. It appears the title of this thread is about learning computer programming at home not computer science.

Note that when people talk about computer science around here it is often in the context of the national curriculum which states, "The core of computing is computer science, in which pupils are taught the principles of information and computation, how digital systems work and how to put this knowledge to use through programming." The usage in primary school is similar to saying mathematics when you really mean arithmetic.
Fair enough, though I would still say that the three books I mentioned are important to programming specifically. Now granted, someone simply learning how to program is probably going to be working alone and the works by Brooks and Weinberg are more applicable when a programmer gets to the point of working with other programmers (and non-programmers...and even management), but even then, once one gets beyond just enough to understand how a programming language behaves, learning about how one persons program works with another persons program is part of "learning to program".

It really goes back to the 1960s when "programmer" as a job title implied much wider knowledge and skill than "coder".

DarkSchneider
Posts: 20
Joined: Sat Jun 11, 2016 10:50 am

Re: RPi as home computer for learning programming

Fri Dec 23, 2016 8:11 am

ejolson wrote:
W. H. Heydt wrote:Okay... The answer to the question in the thread title is, "Yes. That can be done." So after the excessively long set of quoted messages...what is your actual question?
I think this post is in response to a request to separate the education stuff from the gigabit Ethernet thread. Given the care with which this was done, maybe a certain new member should be given moderator status.

At any rate, one idea is to create a complete bill of materials that includes books and hardware for setting up a Pi computer at home to learn computer science. This would be similar but different to recommendations for setting up a classroom.
The idea was exactly that one. A system that parents could get for their children, with no idea about programming, to learn by themselves.

As summary, after discussion, we got the point:
- Starter Kits (RPi ready to go) already exist since some moths ago. But are not easy to find.
- Some "official" books exist, but are not easy to find. How can someone knows that a book is written by staff involved on RPi?.
- These books are not translated.
- Some system behaviour can be hard to handle. Like attaching a FAT32 pendrive to save your programs, or some more direct access to the documentation and tutorials.

Then, let's put in a parents POV:
- Hi, I want a computer for my child to learning programming.
- ...

Not easy, right? If the parents are not introduced to this matter.

And the best part is that this could be achieved only with some organization and tweaks on the software.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 18210
Joined: Sat Jul 30, 2011 7:41 pm

Re: RPi as home computer for learning programming

Fri Dec 23, 2016 11:50 am

DarkSchneider wrote:
ejolson wrote:
W. H. Heydt wrote:Okay... The answer to the question in the thread title is, "Yes. That can be done." So after the excessively long set of quoted messages...what is your actual question?
I think this post is in response to a request to separate the education stuff from the gigabit Ethernet thread. Given the care with which this was done, maybe a certain new member should be given moderator status.

At any rate, one idea is to create a complete bill of materials that includes books and hardware for setting up a Pi computer at home to learn computer science. This would be similar but different to recommendations for setting up a classroom.
The idea was exactly that one. A system that parents could get for their children, with no idea about programming, to learn by themselves.

As summary, after discussion, we got the point:
- Starter Kits (RPi ready to go) already exist since some moths ago. But are not easy to find.
- Some "official" books exist, but are not easy to find. How can someone knows that a book is written by staff involved on RPi?.
- These books are not translated.
- Some system behaviour can be hard to handle. Like attaching a FAT32 pendrive to save your programs, or some more direct access to the documentation and tutorials.

Then, let's put in a parents POV:
- Hi, I want a computer for my child to learning programming.
- ...

Not easy, right? If the parents are not introduced to this matter.

And the best part is that this could be achieved only with some organization and tweaks on the software.
Start kits have been available for YEARS, and are actually very easy to find. I just googled "raspberry Pi starter kit" and got loads of very good hits, Pimoroni, PiHut etc

Same with books - google "Good raspberry pi books" and a load come up.

As for translation - not sure what can be done about that - translation means you need to sell enough to cover the cost of the translation and print run. That's a decision for the publisher.

System behaviour - this is under constant development. Specific issues should be brought to the RPF's attention via the github pages.

I'm not sure what you last point about parents POV is about.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

DarkSchneider
Posts: 20
Joined: Sat Jun 11, 2016 10:50 am

Re: RPi as home computer for learning programming

Fri Dec 23, 2016 12:25 pm

jamesh wrote: I'm not sure what you last point about parents POV is about.
Put it easy for people not involved in the RPi. Using the old-computers example, in the 80's many parents, not involved at all in computing, purchased computers for their children, who learnt programming by themselves at home.

Simplicity, no need of knowledge, direct access. They simply purchased the computer (a box), open the box, and got ready to use and learn. I think many programmers in present time learnt with a home computer, and it can give a great advantage to begin soon if you have vocation.

So the idea is to achieve that. Not sure if possible or the difficulty and resources or implications involved.

User avatar
PeterO
Posts: 3642
Joined: Sun Jul 22, 2012 4:14 pm

Re: RPi as home computer for learning programming

Fri Dec 23, 2016 12:31 pm

DarkSchneider wrote:
jamesh wrote: I'm not sure what you last point about parents POV is about.
Put it easy for people not involved in the RPi. Using the old-computers example, in the 80's many parents, not involved at all in computing, purchased computers for their children, who learnt programming by themselves at home.

Simplicity, no need of knowledge, direct access. They simply purchased the computer (a box), open the box, and got ready to use and learn. I think many programmers in present time learnt with a home computer, and it can give a great advantage to begin soon if you have vocation.

So the idea is to achieve that. Not sure if possible or the difficulty and resources or implications involved.
You do know about https://www.raspberrypi.org/help/ don't you ?

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),Aeromodelling,1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

dataismydrug
Posts: 1
Joined: Thu Dec 22, 2016 6:04 pm

Re: RPi as home computer for learning programming

Fri Dec 23, 2016 5:07 pm

DarkSchneider wrote: Simplicity, no need of knowledge, direct access. They simply purchased the computer (a box), open the box, and got ready to use and learn. I think many programmers in present time learnt with a home computer, and it can give a great advantage to begin soon if you have vocation.

So the idea is to achieve that. Not sure if possible or the difficulty and resources or implications involved.
New to the community, hope I'm understanding this thread correctly - recently bought a Raspberry Pi 3 Model B for this particular purpose.

I'm a data architect who's looking to learn more regarding the underpinnings of the computer itself - so I've decided to begin writing a curriculum as I'm learning with the Raspberry Pi as a stand-alone development environment.

The purpose of this is to start learning programming from a hardware level and work your way up:

- Understanding the basic parts of a computer and how they interact with one another (Processor, Memory, Devices)
- Understand the internals of the processor (via the ARM Instruction Set) and how computers handle data at the base level.
- Begin writing a simple programming language (heavily based around C/Rust) to introduce lexical analysis, tokens, compilers, and linkers (you'd be writing this from scratch as well).
- Understanding an OS kernel and file system management by writing a basic DOS.
- Writing a text-editor from scratch to add to the Operating System.
- Writing a database from scratch to add to the Operating System.
- Building a graphics API for the OS.
- Working with GPU hardware by writing a renderer.
- etc.

There are obviously a large number of smaller topics that would need to be hit on for this (drivers, writing to a hard disk, etc.) but the point of the curriculum is to understand by incremental learning and only writing code when it's needed. If, throughout the journey, you run into a situation where you now need to start connecting to the internet to complete a particular goal in the curriculum then, and only then, would net coding be introduced.

My hope is that this curriculum is used in the future as a focal point when the question is asked - Where's the best place to start?

I should have a working alpha example of the curriculum in the next 8 months. It will be free for use, the only cost incurred by the student is the buying of the hardware for a dedicated environment.

mfa298
Posts: 1004
Joined: Tue Apr 22, 2014 11:18 am

Re: RPi as home computer for learning programming

Sat Dec 24, 2016 9:57 am

jamesh wrote: Start kits have been available for YEARS, and are actually very easy to find. I just googled "raspberry Pi starter kit" and got loads of very good hits, Pimoroni, PiHut etc

Same with books - google "Good raspberry pi books" and a load come up.
I think the issue is more about how do you know (especially as an outsider) which ones are accurate/useful/relevant. Possibly one option would be having some reviewed by the RPF and details given on the raspberry pi site.

I did a similar google search and whilst there are good results. I also got this on the first page https://www.amazon.co.uk/Raspberry-Pi-1 ... B00ALW7WWQ and that was before any hits from Pimoroni or PiHut. The only saving feature is there's no stock on that old result.

mfa298
Posts: 1004
Joined: Tue Apr 22, 2014 11:18 am

Re: RPi as home computer for learning programming

Sat Dec 24, 2016 10:08 am

dataismydrug wrote: I'm a data architect who's looking to learn more regarding the underpinnings of the computer itself - so I've decided to begin writing a curriculum as I'm learning with the Raspberry Pi as a stand-alone development environment.

The purpose of this is to start learning programming from a hardware level and work your way up:
You might find the From Nand to Tetris course interesting (http://www.nand2tetris.org/) this takes you through from building some hardware through to writing software for it.

I suspect for a good course in how computers work you might need to work on a few platforms. Something like Nand to Tetris might give a decent introduction to how the hardware works and how machine code instructions work on that hardware but the computer you build is going to be limited. A microcontroller might be a good place to learn about how hardware can interact with the outside world (polling vs Interrupts), then something like a Pi for the higher level code.

DarkSchneider
Posts: 20
Joined: Sat Jun 11, 2016 10:50 am

Re: RPi as home computer for learning programming

Sat Dec 24, 2016 12:32 pm

mfa298 wrote:
jamesh wrote: Start kits have been available for YEARS, and are actually very easy to find. I just googled "raspberry Pi starter kit" and got loads of very good hits, Pimoroni, PiHut etc

Same with books - google "Good raspberry pi books" and a load come up.
I think the issue is more about how do you know (especially as an outsider) which ones are accurate/useful/relevant. Possibly one option would be having some reviewed by the RPF and details given on the raspberry pi site.
That was the idea of the mentioned "official" books. There are so many, which ones are relevant to start?

When talking about how "easy" is everything, I think many of yours usually talks from an UK perspective. Out of UK I can say that is not so easy.

Some points that could be made for easiness:
- Direct access in the system to the help page.
- Help page, at least, should be translated. Many sites are translated and I think is not hard at all. For videos subtitles are enough.
- Some books should be considered as "official", discussion discovered these ones:
http://es.rs-online.com/web/p/libros/9076497/ included in the starter kit, BUT in english.
http://es.rs-online.com/web/p/libros/8750245/ good starting point to know the system and reference.
http://es.rs-online.com/web/p/libros/7858493/ for learning programming Python, is written for 11-15 years old. Excellent.
And maybe this one http://es.rs-online.com/web/p/libros/8750242/ as complement and reference.
- Translate books and put them in digital format (PDF and EPUB) on the RPi store.
- Also reference them from the help site.
- The RPi store is much underused. It is the window to the RPi content from the system itself. Give it its real value!, put there content and translate it.
- More content, like books, programs, or proyects could be put on the RPi store. And the more translated, the better.
- Reference the official distributors for each country in the site, and links to the starter kits.

For translations, have you asked to universities in each country?, they usually are very collaborative for educational purposes.
Give access to registered collaborators to the multi-language web site, so if someone translates an article, could upload it to its language.

Is sad that being in the digital age this is not exploited. We have not the problem of translating a book, and then how many copies to print, and how to distribute it. Translate it, and put the ebook on a server (like RPi store), and then is available for everyone with no distribution cost at all.

As said, any difficulty you could see to reach the general public, is multiplied by 1000 out of UK. Lack of information, documentation, knowledge, translations. Maybe press releases could be good to be mentioned in some media in other countries, so people could get in.

Being on internet age I think looking only at close range is a waste of the platform itself.

W. H. Heydt
Posts: 7619
Joined: Fri Mar 09, 2012 7:36 pm
Location: Vallejo, CA (US)

Re: RPi as home computer for learning programming

Sat Dec 24, 2016 8:57 pm

Translating technical literature is a specialty in and of itself. It requires two detailed skills at the same time, idiomatic familiarity with both languages AND sufficient knowledge of the subject to make sure the target language material still makes sense.

I am reminded of a comment made to my sister over 50 years ago, while she was a student. She had a roommate who was a German major and was taking a scientific German course in which she had to translate works into English. She complained that the she had no problem understanding what the German *said*, but should didn't know what it *meant* in either German or English. She simply didn't have the background understanding of the subject matter, no matter how good her language skills were.

Translating Pi materials is going to run into that problem, especially when you get to less common languages.

ejolson
Posts: 1055
Joined: Tue Mar 18, 2014 11:47 am

Re: RPi as home computer for learning programming

Sun Dec 25, 2016 11:30 pm

dataismydrug wrote:The purpose of this is to start learning programming from a hardware level and work your way up
Traditionally, additional layers of software have been added to make a computer more user friendly. This may make a computer easier to use, but the added complexity also makes it more difficult to understand. As the goal in much of education is understanding, then starting with the hardware and building up may have an advantage.

Brian Beuken
Posts: 67
Joined: Fri Jan 29, 2016 12:51 pm

Re: RPi as home computer for learning programming

Tue Mar 14, 2017 10:35 am

Not sure if this will be of massive interest, but I'm just finishing a book, its going by the rather wordy title of

FUNDAMENTALS OF C/C++GAME DEVELOPMENT
(Using Target-based Development on SBC’s)

Its primary target is Raspberry Pi users, though other systems are supported as the principles are all the same once the hardware is set up.
Im an veteran console developer, but never used Linux, so have been painfully trying to avoid learning any Rasbian to put myself in the same position as new users who buy Pi's hoping to code things on them and often find them too strange to get started, but in fact its amazing fun to code these things once you actually get access to the hardware and OpenGLES2.0

For all the wordiness of the title, its intended as a beginners guide to actually programming arcade/console games on the Pi, its not intended as a C++ tutorial though it does start off with some pretty simple C/C++ work and explains other concepts as it goes, and it works through a series of familiar projects, starting with console output, then to simple software rendered 2D, then hardware rendered 2D, explaing then introducing 3D, then onto full environment base 3D with different concepts and techniques explained.

Its due for release in Sept 2017, kinda heavy at around 800 pages, if I can edit it down, and sadly a bit expensive (publishers!!) but I hope it will satisfy the needs of those who want to actually do some serious home programming and develop the kinds of skills that console developers need. I hope it will be of some use in teaching as well as for home study.

So aside from the massive plug for my book, the RPi is very much a home computer for learning programming, in fact its refreshingly old school, given it has limits and performance issues that really force you to take care how you program it.
Very old computer game programmer, now teaching very young computer game programmers, some very bad habits.
http://www.scratchpadgames.net/

MarkyV
Posts: 93
Joined: Wed Sep 21, 2016 1:52 pm
Location: Buckingham, UK
Contact: Website

Re: RPi as home computer for learning programming

Sun Mar 19, 2017 6:33 pm

If you want absolutely from the basics programming on RPi - I have produced a series of video tutorials - it's not official but it tells you the basics - It's from my 'Getting Started' series : http://thepimaker.online/getting-started/

Mark
My RaspberryPi Blog: http://thepimaker.online

Return to “The Staffroom”

Who is online

Users browsing this forum: No registered users and 1 guest