Shop OBEX P1 Docs P2 Docs Learn Events
Is PropGCC ready for Education? — Parallax Forums

Is PropGCC ready for Education?

SRLMSRLM Posts: 5,045
edited 2012-09-01 10:02 in Propeller 1
Is the Propeller GCC effort ready to be used in classrooms as a tool to teach students how to program?

I want to use PropGCC to teach some high school students the fundamentals of programming. I'd like to use PropGCC because:
a) I particularly like the Propeller, so I want to use it
b) The students will be using Java, so C++ is closer than spin
c) I want to use and learn PropGCC.

I ask this question in all seriousness, and with no intention of offense.

Comments

  • SRLMSRLM Posts: 5,045
    edited 2012-08-30 03:25
    And if it is, what resources (current or upcoming) are available to help teach PropGCC?
  • jazzedjazzed Posts: 11,803
    edited 2012-08-30 10:01
    Parallax education has been working on courses and packages for Propeller-GCC. The work I've seen so far is impressive.

    Send email to education@parallax.com
  • jac_goudsmitjac_goudsmit Posts: 418
    edited 2012-08-30 10:08
    Note: The following is my personal opinion only. I'm not a professional educator but I've had hands-on experience with many different operating environments, mostly in the Embedded Software world, for over 20 years.

    As for pure PropGCC as a compiler: I agree with you that it will be more useful for students to learn C or C++ than Spin. Most likely, working with GCC is a skill that they can use in their careers, even if they never program a Propeller again.

    As for SimpleIDE: At this time, I don't think SimpleIDE is ready to teach the fundamentals of programming. However if you're teaching embedded programming to students who are already familiar with the basics of programming (in C or C++ or a related language like Java, I suppose), I would say it's getting close.

    Modern programming environments such as Visual Studio or Eclipse or Code::Blocks offer a rich experience to programmers, with good documentation, help engines, and debuggers that help students understand what the target system does. SimpleIDE has no significant amount of Help (yet), and no debugger whatsoever for now. I expect that novice students who aren't familiar with runtime library functions aren't going to be comfortable being "thrown in the deep end" with SimpleIDE.

    It may be possible to make up for this by not letting students start from scratch, but giving them some sample code that they only need to change slightly to make it work. It might be a useful and satisfying learning experience that way, especially if they can make actual things light up or move around. I fondly remember some embedded courses from my CS study days that worked in similar ways: Make an LED blink, program a Larson scanner (Knight Rider light), control a digital or analog clock or an elevator model or a washing machine simulation, or move a robot.

    I see SimpleIDE as just that: an IDE to Simplify working with PropGCC on the Propeller. It might not be the best editor in the world but it does make it very SIMPLE to quickly put a project together if you already know how to write C, C++, Spin or PASM. The value is that I don't have to do the tedious stuff like writing Makefiles or build scripts, and I can write software that can be used by other people in easier ways than Spin would let me do. It's really helping me a lot with my project (which could potentially also be interesting for educational purposes, I believe): The hardware uses a Propeller to control a 6502 processor and will be available as a kit later this year; I'm currently rewriting the software in C and inline Assembler (the original Spin software is also at that link but it was never finished and will be deleted).

    ===Jac
  • edited 2012-08-30 16:07
    Hi SRLM,

    Thanks for asking. We have some material that’s fairly early in development, but I think you will be able to use it effectively in your workshops. I emailed you with more info.

    Hello Jac,

    Thank you for your input. We presented some preliminary tutorials during our most recent Propeller Educators Course on August 3rd, and collected a lot of input from teachers ranging from 5th grade to university engineering. The feedback covered many bases including tutorial design, library functionality, and software behavior. The current project is incorporating all that feedback. The updates should be ready and tested later this fall.
    jac_goudsmit said: It may be possible to make up for this by not letting students start from scratch, but giving them some sample code that they only need to change slightly to make it work. It might be a useful and satisfying learning experience that way, especially if they can make actual things light up or move around.

    Interestingly, this is the approach I used, and it worked pretty well during the course. However, teachers without experience with C language ran into challenges adding libraries of their own choosing since it involves numerous steps and the previous knowledge of C that you referred to. We are considering a mode that features a simplified approach to shopping for and incorporating libraries. The advantage here is that it would make all this accessible to beginners and allow them to explore C’s programming concepts up to a point. Then, switching back to the current functionality allows for more advanced tutorials on how to incorporate libraries as well as how to write them.

    As for the rich environment, I expect SimpleIDE to evolve over time into a very enjoyable tool for all levels.
    jazzed said: Parallax education has been working on courses and packages for Propeller-GCC. The work I've seen so far is impressive. Send email to education@parallax.com

    Yes! Or send me a PM directly, either way.

    --Andy
  • Heater.Heater. Posts: 21,230
    edited 2012-08-30 22:14
    jac_goudsmit,
    I don't think SimpleIDE is ready to teach the fundamentals of programming.

    Why? To learn programming all you need is an editor, compiler and something to run the resulting code.
    When I started out it was teletypes and punched cards. Quite enough to get the fundamentals under your belt with out the overwhelming complexity of modern day IDE's and huge systems of libraries. The shortest, simplest, quickest route from typing code to hitting run is all that is needed for begineers. Which is why things like the Prop Tool and Arduino IDE are such a hit.
  • jac_goudsmitjac_goudsmit Posts: 418
    edited 2012-08-31 07:40
    Heater. wrote: »
    Why? To learn programming all you need is an editor, compiler and something to run the resulting code.

    First of all: I'm not trolling and it wasn't meant as a negative judgment on PropGCC or SimpleIDE. I think PropGCC and SimpleIDE are the best things that ever happened to Propeller development!

    I learned programming in the days of the first personal computers (though I worked with punched cards and teletypes too), and I was interested and motivated to learn anything I could. I imagine someone who is equally motivated nowadays will have a very easy time getting started.

    When I wrote my answer, I was putting myself into the shoes of a student who learns programming in school. I know many people who would be sufficiently interested in programming to do a class, but not motivated enough or not brave enough to figure everything out themselves: Maybe they don't know how to get answers to their questions online and are more comfortable asking a real person, or maybe they don't even know what to ask. As I said, I'm not a teacher but I think I would like them to learn how computers work by letting them use a debugger to step through a program line by line, and see e.g. how variables change. I know we didn't have this in our day, but I know it would have helped me lots of times to be able to step through code and see what it does, and learn from my own mistakes.

    I imagined that if you're teaching students who already have some experience with Java (as SRLM said), they probably already know about conveniences in other development environments such as hitting F1 when the cursor is on a library function call (or don't people do that anymore nowadays? Help functions on various programs I've used in the past 10 years have gotten worse, I gotta say). And I imagined that little quirks such as the cursor jumping left and right while you're trying to move it up or down, or the weak search feature in SimpleIDE might be a turn-off for those students.

    Once again, I wasn't trying to give PropGCC or SimpleIDE a negative rep. I was not aware of the Parallax education courses on PropGCC, probably because I don't follow any of the other forums here (I'm afraid it would take me too much time -- I know myself all too well). I didn't even know about the SimpleIDE project until I met Steve at the Parallax Expo and I thought it was one of the most exciting projects of the show. I agree with you, Heater: Everything is there: compiler, library, loader, all Propeller-specific features I can think of, and even inline assembler. I just wanted to warn SRLM that there are some minor things that need some work which don't bother me and might not bother those with some experience but might bother beginners. Maybe I'm wrong. Maybe I shouldn't have answered at all. I'll shut up now :-)

    ===Jac
  • jazzedjazzed Posts: 11,803
    edited 2012-08-31 13:13
    @jac_goudsmit

    Can I call you Jac?

    Thanks for your supportive comments. There are still improvements left to do with PropellerGCC and SimpleIDE.

    GDB for P1 PropellerGCC has been pushed into the P2 project frame. We got very close to finishing it for P1, but we hit some circumstances that were beyond our control.

    such as hitting F1 when the cursor is on a library function call

    little quirks such as the cursor jumping left and right while you're trying to move it up or down,

    or the weak search feature in SimpleIDE might be a turn-off for those students.
    What version do you have? I've addressed the "quirks and weaknesses" you mentioned in version 0-8-1. Maybe I didn't go far enough?

    Logic for doing context sensitive help with F1 is in the code base, but it's not turned on because of certain limits. It will be turned on at some point.

    Your participation here is certainly welcome. I'll be doing a preview on Tuesday (if all goes well) for an updated SimpleIDE program and some new PropellerGCC features. Hopefully you will have a chance to try that and give feedback.

    BTW, welcome to the Parallax forum.

    Thanks,
    --Steve
  • Heater.Heater. Posts: 21,230
    edited 2012-08-31 15:21
    jac_goudsmit,
    I'll shut up now

    Oh please don't. Like any discussion of IDE's. editors languages, operating systems, there is no right and wrong, only various levels of disagremment:)
    I was interested in your views.
  • jac_goudsmitjac_goudsmit Posts: 418
    edited 2012-08-31 15:59
    jazzed wrote: »
    Can I call you Jac?

    Of course!
    GDB for P1 PropellerGCC has been pushed into the P2 project frame. We got very close to finishing it for P1, but we hit some circumstances that were beyond our control.

    I'll wait patiently! I'm used to working on systems with limited debugging facilities so to me a debugger is not that urgent. An LED in my hardware is usually enough :-)
    What version do you have? I've addressed the "quirks and weaknesses" you mentioned in version 0-8-1. Maybe I didn't go far enough?

    I think I'm using 0.8.2 or 0.8.3. I'll see if I can find some time this weekend to clarify what I call "missing features" and submit them as a thread here or as an issue on the Google Code site. It's pretty minor stuff really.
    Logic for doing context sensitive help with F1 is in the code base, but it's not turned on because of certain limits. It will be turned on at some point.

    I know this is a heavy feature to implement, in relation to what the benefits are. I don't really miss it much, except for Propeller-specific functions and macros.
    Your participation here is certainly welcome. I'll be doing a preview on Tuesday (if all goes well) for an updated SimpleIDE program and some new PropellerGCC features. Hopefully you will have a chance to try that and give feedback.

    I'll be sure to check it out!

    ===Jac
  • RaymanRayman Posts: 14,671
    edited 2012-09-01 05:54
    Jac makes some good points. I think it's nice for Parallax to have it's own IDE. But, personally I'd much rather use complete solutions like Visual Studio. Eclipse and Code::Blocks are OK too. I think I've heard that they might support Eclipse. I might try getting this to work with Code::Blocks just because I can then compile native GCC and Catalina too... I expect it to be very easy to get PropGCC working with Code::Blocks...

    I really like the F1 help in Visual Studio. I don't think Code::Blocks has this. Not sure about Eclipse.

    If Parallax can get some kind of debugging working with SimpleIDE though, that would be enough to make me use it, I think.
  • Heater.Heater. Posts: 21,230
    edited 2012-09-01 10:02
    So many times I have typed ":wq" into an IDE to write the filr and quit but those chars end up in the text and nothe else happens.
    Can't they even get that right:)
Sign In or Register to comment.