Searching \ for 'The PIC in Scotish Schools' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: techref.massmind.org/techref/microchip/devices.htm?key=pic
Search entire site for: 'The PIC in Scotish Schools'.

Truncated match.
PICList Thread
'The PIC in Scotish Schools'
1997\03\05@022628 by Tim Kerby

picon face
Hi
We have been told the PIC will be used in schools in Scotland after much
persuading on both my part and my teachers to the Scotish Examination
Board.  Unfortunaly, Andy Cooper of Notingham Trent University has come up
with an English version using Icon which he has developed as a PLC
lookalike (ladder programming) system.  This supports parallel multitasking
and programs are created with drag and drop but no mathematical functions
are used (except and and or) and the code does not relate to the PIC.  He
fels that assembly should be left to university although schools manage
happily with 16 year olds on 6502 assembly (and all the hex conversion and
manual programming).  We would like to drop this age to 13 or 14.  Do you
think assembly would be suitable if appropriate coursework and reference
was provided and perhaps only learning the 15 or so core instructions.


Comments would be gratefully received


Tim


------------------------------------------------------------------
If you can read this, it is the end of the message!
My web pages are at http://web.ukonline.co.uk/members/tim.kerby/
My PIC site is at web.ukonline.co.uk/members/tim.kerby/pic/
It needs your projects!
------------------------------------------------------------------

1997\03\05@040931 by efoc

flavicon
face
Tim Kerby wrote:
{Quote hidden}

Tim,
       Personaly I started programming in ASM because when I started (Many
Many Years Ago) I simply had no chioce.

       I was about 14 when I first got to grips with programming.

       4GL's, RADs, OOP, OOD Etc. are great for the quick and easy solution
but in order to REALY understand what is going on in the computer you
have to get to the core.

       In short I would say that ASM should be part of any worth while course
in programming.

--

Cheers Peter ..........

==================================
New Ideas come from those who
didn't know it wasn't possible
==================================

1997\03\05@045928 by Andrew Warren

face
flavicon
face
Tim Kerby <spam_OUTPICLISTTakeThisOuTspamMITVMA.MIT.EDU> wrote:

> We have been told the PIC will be used in schools in Scotland after
> much persuading on both my part and my teachers to the Scotish
> Examination Board.  Unfortunaly, Andy Cooper .... feels that assembly
> should be left to university although schools manage happily with 16
> year olds on 6502 assembly (and all the hex conversion and manual
> programming).  We would like to drop this age to 13 or 14.  Do you
> think assembly would be suitable if appropriate coursework and
> reference was provided and perhaps only learning the 15 or so core
> instructions.

Tim:

In my opinion, PIC assembly language would ABSOLUTELY be suitable
for 13-14 year old students.

It's funny... I was just discussing this very subject with Steve
Wozniak.  His young students (younger than yours) are already wriing
programs using the Macintosh's Hypercard "language", and we came to
the conclusion that most of them could easily handle assembly
language.

Our conversation centered around teaching 6502 assembly language,
since he (obviously) is pretty familiar with it, but it applies
equally (if not more strongly) to teaching the PIC assembly language.

The key thing, I think, is that the students must already be
proficient in at least the basics of algebra... Without that
knowledge, they'll find the concept of variables difficult to
understand.  Also, they'll need to be fluent with the associative,
commutative, and distributive properties of addition and
multiplication.

Additionally, a year of Algebra will have taught them how to
transform a stated problem into a mathematical or logical solution,
then to break it down into a progression of small steps in order to
solve it.

If your students already have programming experience (in BASIC or
whatever), they should be able to pick up assembly language VERY
quickly, but even if they don't, it shouldn't take very long.

For example, I've taught PIC assembly language to motivated adult
students with no prior programming experience.  It took about two
weeks for them to become fluent enough to translate simple algorithms
(for multiplication, division, etc.) into assembly... A month later,
one of them was making money writing PIC software as a part-time
freelance programmer.

The more interactive you can make the programming process, the
better... An emulator and oscilloscope at each student's desk would
be the ideal, of course, but since that's impossible, you should at
least have simulators and some sort of prototyping boards with
pushbuttons, LEDs, etc.

You also need a VERY easy, VERY fast means of programming PICs...
Nothing slows the learning process more than being unable to quickly
and easily try new code.

Take a look at the "Easy PIC'n" book... It's written for absolute
beginners and might give you some curriculum ideas.

Good luck... Let me know how things work out.

-Andy

=== Andrew Warren - .....fastfwdKILLspamspam@spam@ix.netcom.com
=== Fast Forward Engineering - Vista, California
===
=== Custodian of the PICLIST Fund -- For more info, see:
=== www.geocities.com/SiliconValley/2499/fund.html

1997\03\05@053703 by Kieran Sullivan

flavicon
face
Tim,

I think assembly is very suitable for the 13 to 14 or maybe even lower ages. It will get them thinking in very fine grained steps about what they are trying to get a program to do. I have taught 'Logo' to 7 and 8 years olds. The low level instructions they were given relate very much to assembly and they had no problems at all, despite English not being their first language.

An all software simulator would be a good introduction to the children when they are around 11-12, then get them onto hardware when they are 13-14. The simulator will help them to later visualize what they are doing.

----------
From:   Tim Kerby[SMTP:tim.kerbyspamKILLspamUKONLINE.CO.UK]
Sent:   05 March 1997 07:24
To:     .....PICLISTKILLspamspam.....MITVMA.MIT.EDU
Subject:        The PIC in Scotish Schools

Hi
We have been told the PIC will be used in schools in Scotland after much
persuading on both my part and my teachers to the Scotish Examination
Board.  Unfortunaly, Andy Cooper of Notingham Trent University has come up
with an English version using Icon which he has developed as a PLC
lookalike (ladder programming) system.  This supports parallel multitasking
and programs are created with drag and drop but no mathematical functions
are used (except and and or) and the code does not relate to the PIC.  He
fels that assembly should be left to university although schools manage
happily with 16 year olds on 6502 assembly (and all the hex conversion and
manual programming).  We would like to drop this age to 13 or 14.  Do you
think assembly would be suitable if appropriate coursework and reference
was provided and perhaps only learning the 15 or so core instructions.


Comments would be gratefully received


Tim


------------------------------------------------------------------
If you can read this, it is the end of the message!
My web pages are at http://web.ukonline.co.uk/members/tim.kerby/
My PIC site is at web.ukonline.co.uk/members/tim.kerby/pic/
It needs your projects!
------------------------------------------------------------------

1997\03\05@053910 by tjaart

flavicon
face
Tim Kerby wrote:
>
> Hi
> We have been told the PIC will be used in schools in Scotland after much
> persuading on both my part and my teachers to the Scotish Examination
> Board.  Unfortunaly, Andy Cooper of Notingham Trent University has come up
> with an English version using Icon which he has developed as a PLC
> lookalike (ladder programming) system.  This supports parallel multitasking
> and programs are created with drag and drop but no mathematical functions
> are used (except and and or) and the code does not relate to the PIC.  He
> fels that assembly should be left to university although schools manage
> happily with 16 year olds on 6502 assembly (and all the hex conversion and
> manual programming).  We would like to drop this age to 13 or 14.  Do you
> think assembly would be suitable if appropriate coursework and reference
> was provided and perhaps only learning the 15 or so core instructions.
>
> Comments would be gratefully received
>

Generally the people at the universities are so out of touch with the
real
world they should be excused and ignored.


--
Friendly Regards

Tjaart van der Walt
EraseMEtjaartspam_OUTspamTakeThisOuTwasp.co.za
_____________________________________________________________
| Another sun-deprived R&D Engineer slaving away in a dungeon |
|             WASP International  http://wasp.co.za           |
|             GSM and GPS value-added applications            |
|  Voice : +27-(0)11-622-8686   |   Fax : +27-(0)11-622-8686  |
|_____________________________________________________________|

1997\03\05@055607 by Chaipi Wijnbergen

flavicon
picon face
Hi Tim Kerby,

I have a PLC library for PIC from ELECTOR ELECTRONICS. Such library will
allow you to introduce the pic even though assembly is not use. Still the
assembler and simulator are used. if the studients want, they can continue
to learn the assembler after they know how to use the development tools.

Chaipi

                              \\\|///
                            \\  ~ ~  //
                             (  @ @  )
----------------------------oOOo-(_)-oOOo--------------------------------------
!                                                                             !
! Chaipi Wijnbergen                                                           !
! Electronics/Computer Eng. M.Sc.  Tel    : +972-8-9343079                    !
! Optical Imaging Laboratory       Fax    : +972-8-9344129                    !
! Brain Research Center            Email  : chaipispamspam_OUTtohu0.weizmann.ac.il       !
! Weizmann Institute of Science    URL    : http://www.weizmann.ac.il/~chaipi !
! Rehovot 76100 ISRAEL             IPhone : chaipi                            !
!                                                                             !
------------------------------------Oooo.--------------------------------------
                         .oooO     (   )
                         (   )      ) /
                          \ (      (_/
                           \_)

1997\03\05@080733 by Byron A Jeff

face picon face
>
> Tim Kerby <@spam@PICLISTKILLspamspamMITVMA.MIT.EDU> wrote:
>
> > We have been told the PIC will be used in schools in Scotland after
> > much persuading on both my part and my teachers to the Scotish
> > Examination Board.  Unfortunaly, Andy Cooper .... feels that assembly
> > should be left to university although schools manage happily with 16
> > year olds on 6502 assembly (and all the hex conversion and manual
> > programming).  We would like to drop this age to 13 or 14.  Do you
> > think assembly would be suitable if appropriate coursework and
> > reference was provided and perhaps only learning the 15 or so core
> > instructions.
>
> Tim:
>
> In my opinion, PIC assembly language would ABSOLUTELY be suitable
> for 13-14 year old students.

I'm not sure the language choice is so much dependant on the age level of
the student as much as the type of application that you want to write.

WHen I started in computers (at age 12) I started with BASIC on my TRS-80.
Radio Shack had a most excellent BASIC tutorial.

However I soon found that for some applications what I wanted (like video
games) that BASIC was simply too slow to handle the load. So I began
learning assembly for the Z-80. The 100x speedup was well worth the effort.
BTW I really wrote Machine Language using BASIC poke and data statement. To
this day I know that the instruction "LD  HL,#xxxx" translates to 0x21,xx,xx
And it's been almost 20 years.

I ended up with hybrids where the setup/interface code was done in BASIC
and the fast execution stuff in machine language.

However if BASIC were fast enough to handle the load I probably would have
put off machine language for a while.

{Quote hidden}

PIC assembly is probably the easiest to learn because of its ultra-extreme
compactness.

However I think I need to talk about the flip side. As a college Computer
Science Professor that teaches System Software and Programming Langauges, I
must point out there are reasons that assembly isn't generally in wide use:

1) It's less symbolic than HLL's.
2) The extremely small instruction size (semantically) doesn't really wrap
very well around the human mind's need/desire for abstraction.
3) Programming in assembly is typically more error prone than HLL's.
4) HLL's generally are more highly structured than assembly. While it's
possible to generate structured assembly (especially with the use of macros)
genreally you get some type of spagetti code.
5) Compilers are usually very very good at generating compact, high speed
code that easily comes within an order of magnitude of hand generated code.

Because of all of these issues, HLL code is generally written faster, cleaner,
and with less bugs than the equivalent assembly.

And the PIC brings along another piece of baggage that makes assembly rather
annoying: its development cycle. Because it's strictly EPROM based (exclude
the 16C8X's for now) the development cycle requires physical handling of the
chip for erasure, programming, and execution. Frankly they take a beating.

Of course Microchip and others supplement with the simulator (which is
absolutely invaluable) and ICE (which generally is expensive) but in
general it gets in the way.

I learned from my first microcomputer project (a 6802 based project for a
junior level computer science class) that simplifing the development cycle
greatly improves development. Since then my requirements have included
downloadable code via a tether that requires no physical handling of the
target during development. Lately I've added the requirement that downloaded
code should be immediately permanent so that the target can immediately
function after being detached from the tether. HLLs are real nice but not
absolutely necessary.

Well the only PICs that can meet those requirements for PIC machine langauge
are the 16C8X and the 17CXX series chips. The first is frankly too small
and slow for real apps, the latter is a bit complicated and expensive, though
quite fast and capable with 128K external memory access.

Once you expand past running assembly though, it becomes a lot easier to
handle those requirements. The Basic Stamp, FedBasic, CFlea, ARTI, and my
own creation NPCI all do this in the same manner: Tokenize a HLL into
tokens that can be run by a virtual machine. Put the virtual machine on the
chip, put the program in a EEPROM internal/external to the chip, Let the
virtual machine run the progam from the EEPROM.

This way you can teach structured High Level programming, do embedded
development, and not stress the hardware which can be reprogrammed up to
a million times without ever having to be handled.

In other words, ideal for an educational environment.

And the boards are simple/inexpensive enought that you can let the kids
wire and test their own boards, then tether them up and get to work making
them do something interesting.


>
> The key thing, I think, is that the students must already be
> proficient in at least the basics of algebra... Without that
> knowledge, they'll find the concept of variables difficult to
> understand.  Also, they'll need to be fluent with the associative,
> commutative, and distributive properties of addition and
> multiplication.

Yup. Math is essential to programming at any level.

>
> Additionally, a year of Algebra will have taught them how to
> transform a stated problem into a mathematical or logical solution,
> then to break it down into a progression of small steps in order to
> solve it.

A year? I have College juniors that still struggle with this concept.

>
> If your students already have programming experience (in BASIC or
> whatever), they should be able to pick up assembly language VERY
> quickly, but even if they don't, it shouldn't take very long.

Once again it besg the question of what's the benefit of assembly other
than the speed advantage?

>
> For example, I've taught PIC assembly language to motivated adult
> students with no prior programming experience.  It took about two
> weeks for them to become fluent enough to translate simple algorithms
> (for multiplication, division, etc.) into assembly... A month later,
> one of them was making money writing PIC software as a part-time
> freelance programmer.

That sounds like fun!

>
> The more interactive you can make the programming process, the
> better... An emulator and oscilloscope at each student's desk would
> be the ideal, of course, but since that's impossible, you should at
> least have simulators and some sort of prototyping boards with
> pushbuttons, LEDs, etc.

This of course is the right idea.

>
> You also need a VERY easy, VERY fast means of programming PICs...
> Nothing slows the learning process more than being unable to quickly
> and easily try new code.

Bingo! That's my argument for the external EEPROM based PIC programming.
Development cycle time is less than a minute after editing.

This is a cool thread. I think I hyping the Virtual machine concept because
I'm working on one right now. But I can honestly say that my code
productivity has gone up immensely because I now write PIC code in an HLL
and my cycle time is quite small.

BAJ

1997\03\05@100208 by Antti Lukats

flavicon
face
At 02:06 AM 5/3/97 -0800, you wrote:
>Tim Kerby <KILLspamPICLISTKILLspamspamMITVMA.MIT.EDU> wrote:

Andy wrote:

>The more interactive you can make the programming process, the
>better... An emulator and oscilloscope at each student's desk would
>be the ideal, of course, but since that's impossible, you should at

A non-real time is not so much impossible - our first demo of 0.00 USD
PIC emulator is freely downloadable, and simulates/emulates a
PIC12C508, allowing the use of LPT port as simulation POD. Other
hardware can also be used as POD, like a PIC programmer or Hi-Lo
universal programmer, well that is not for students.
A new version will support IO extenders made out of PIC16C84.

That is not real time emulation, but for some tasks even non-real
time IO simulation is enough. and it is nice to run a program in
PC simulator and see the actual leds to blink under the PIC program
control.

The current release of 12C508 is beta but I did use to test I2C read
write routines and successfully worked with a real 24C16 device.

antti

PS other PIC will be supported to, by our 0.00 USD emulators, later...





-- Silicon Studio Ltd.
-- http://www.sistudio.com

1997\03\05@101638 by myke predko

flavicon
face
Tim,

A couple of points on what's been talked about before (with some of my
experiences at home):

1.  PIC assembler is possible for Grade School children.  I have a ten year
old programming PICs using decimal, hex, and binary radix numbers.  What I
tried to do with him is explain where each is most appropriate.  To be
honest, he doesn't do a lot with hex, but has figured out the concept that
each bit in a binary number represents a bit in a register (I/O Port).

He is having a lot of problems with the concept of interrupts (even though
he is quite adept at interrupting me all the time).

2.  Rather than basic Math concepts, I would say that basic electronics and
basic PC skills are more important.  He had a *lot* of problems
understanding why different programs were put in different subroutines or
just being consistant with file names.  I found that we had the best success
with MPSIM with me writing explicit MPSIM.INIs for him.

I found he has a lot of trouble figuring out what are the important things
to monitor in a program.

In terms of basic electronics, Joel (my son) sees me hook PICs up to LCDs,
R/C Servos, Electric motors, keyboards, PCs, and such and gets frustrated
because he can't hook them up easily.  We generally go through quite a bit
of explanation of how everything is done (he still hasn't fully understood
the reasons for pull-up resistors despite repeatedly blowing fuses in the
power supply he is using with button input).

3.  Andy Warren's comments regarding a fast programmer is very important.  A
reasonably complex program will take (nominally) a half minute to program.
This can be intolerably long to a child without some kind of feedback (I
know this because the programmer I developed runs from a terminal emulator
window and doesn't give any feedback while programming is progressing).

4.  A Basic Compiler would probably be a good tool - but "C" or some other
high level language isn't.  Explaining structured language techniques and
data structures along with the PIC, basic electronics (digital I/O), etc.
is probably too much to teach all at one time (probably even for an adult).

5.  An emulator is an excellent tool.  I designed a simple emulator that
runs at about 7K Instructions/second really helps Joel understand what is
going on.  Especially when coupled with simple programs that turn on
LEDs/get button input.
6.  The 16C84 is probably the best PIC to work on.  I bristled a bit at the
statement that it's Program Space is probably too small.  In my book, I do
twenty five experiments, none of which go over 50 instructions (except for
demonstrating how a very large table is implemented).  There's also a lot of
projects you can do with the 16C84.

7.  You'll also have to develop some kind of simple prototyping setup for
the kids.  This would include a ZIF, clocking, and reset.  As is noted, a
minimum station would also require a PC and a programmer.

8.  What are "the 15 or so core instructions"?  I have found that all the
instructions are necessary for developing efficient code.

myke

{Quote hidden}

"Some people say that foreign cars handle best, while others say domestic.
For my money, nothing handles as well as a rental car." - P.J. O'Rourke

1997\03\05@110549 by Martin McCormick

flavicon
face
       I definitely agree that children of 13 or 14 can learn assembly.  The
advantage to starting out this way is that they will get a true feel for
what is going on in the process of turning an idea into a device that does
something.  If one hides too many of the intermediate steps, it looks too
much like magic and the whole idea is to teach a concept and maybe even to
teach a few secondary ideas like the need to learn higher math and the value
of putting forth a sustained effort to achieve a long-term goal.

       I turned 14 in 1965 and I distinctly remember my sister bringing
home a handout from her math teacher about binary numbers and how they were
the life blood of computers.  It was the usual stuff about how 1
was represented by voltage and 0 by none.  There were examples of counting
in binary and maybe even some addition and subtraction, but I remember a
distinct brain flash.  As a kid who thought that science was the only reason
for having the world, I remember having a thousand questions.  I would have
loved to have learned how to do something with a computer back then, but
that just wasn't practical.  I think that the desire to satisfy one's
curiosity is a great force multiplier in the learning process.

       While the immediate goal is to teach the programming and operation
of a PIC, the whole idea should be to give the students an understanding
of why some things are the way they are.  Maybe one should start with assembly
level programming and then, when the students understand that concept,
show them how a high-level language can be used to build great things out of
little blocks.  Starting off with another GUI-driven marvel just interposes
a layer of complexity disguised as simplicity.  The trouble is that when
something goes wrong, the complexity tends to swarm on teachers and students
alike.

Martin McCormick WB5AGZ  Stillwater, OK 36.7N97.4W
OSU Center for Computing and Information Services Data Communications Group

1997\03\05@123223 by ermott

flavicon
face
Is teaching assembly level programming appropriate for school children?

If you first teach the children some boolean algebra and the fundamentals
of digital electronics then assembly level programming is, in my experience,
the best way to understand computer operation.  When I first learned
micro-computers on the Motorola 6800 I would have been lost if I did
not understand OR, AND, 0FCH and other wierd notations.  The common
theme in this thread seems to be teach them assembly level programming,
they can do it, but design a curriculum to support it.

I am currently re-learning assembly programming having not done any
for almost 15 years.  The PIC 16C84 serves my purposes wonderfully with
its small instruction set and rapid development cycle time.

Best of luck with the Scottish School system,

Andrew McDermott
RemoveMEMcDermottTakeThisOuTspamBartol.Udel.Edu

1997\03\05@160946 by Robert Lunn

flavicon
face
>> If your students already have programming experience (in BASIC or
>> whatever), they should be able to pick up assembly language VERY
>> quickly, but even if they don't, it shouldn't take very long.
>
>Once again it begs the question of what's the benefit of assembly other
>than the speed advantage?

       It needs to be clarified whether the requirement is to teach
       the students _algorithmics_, or the _architecture_ of computing
       machines.

       If the target is algorithmics then any language is ok, and a
       HLL is probably better.

       If the target is architecture then you've got to get down to
       the iron, and assembly is necessary.

___Bob

1997\03\05@170613 by Eric Smith

flavicon
face
Andrew Warren <spamBeGonefastfwdspamBeGonespamIX.NETCOM.COM> wrote:
> In my opinion, PIC assembly language would ABSOLUTELY be suitable
> for 13-14 year old students.

I agree.  As it happens, I've taught some 12 year olds 6502 programming,
and the PIC would actually be easier to teach.

> The key thing, I think, is that the students must already be
> proficient in at least the basics of algebra... Without that
> knowledge, they'll find the concept of variables difficult to
> understand.

I'm not sure that I agree about the importance of prior algebra knowledge.  I
learned programming before algebra, and I didn't have any trouble grasping
variables.  After all, they are just a place to store a number.  In my
experience, the harder thing to teach is that numbers can be used to represent
things that don't "seem" to be numeric, i.e., characters.

> Also, they'll need to be fluent with the associative,
> commutative, and distributive properties of addition and
> multiplication.

Might be helpful, but it doesn't seem necessary.

> Additionally, a year of Algebra will have taught them how to
> transform a stated problem into a mathematical or logical solution,
> then to break it down into a progression of small steps in order to
> solve it.

This would definitely be helpful, but my experience is that most students take
naturally to the concept.

On the other hand, I've only tried to teach people that want to learn.  If
I had to teach programming to unmotivated people, I'd probably get frustrated
and give up in short order.

Fortunately, most young children do seem to want to learn, unless they've
been trained not to.

Cheers,
Eric

1997\03\12@210818 by Harry J. Evry

picon face
I agree whole-heartedly that assembly language could and should be a part of
a good
introductory computer course.  I think it is all too often neglected in even
our highest educational progams, and I know all too well the fundamental
misconceptions held by even so-called "professional" programmers who have
never taken the time to understand the inner workings of their machines.

Of all the computer languages, assembly requires the least familiarity with
algebra, complex structures,  or higher mathematics.  I began programming
successfully in 68xx assembly years before my first class in algebra.

To skip assembly language and concentrate entirely on high level programming,
would be a great loss to Scottish students or any other.  On the other hand
such misplaced emphasis on high-level programming has and will keep
programmers like us in very high demand!

More... (looser matching)
- Last day of these posts
- In 1997 , 1998 only
- Today
- New search...