Is PropGCC ready for Education?
SRLM
Posts: 5,045
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.
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
Send email to education@parallax.com
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
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.
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.
Yes! Or send me a PM directly, either way.
--Andy
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.
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
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.
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
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.
Of course!
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 :-)
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.
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.
I'll be sure to check it out!
===Jac
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.
Can't they even get that right:)