And 90 percent of that is knowing if what is desired is within the abilities of your current and planned environment.
It might be easier with a more structured course plan laid out for you. There’s Nand 2 Tetris which goes through the steps of building a modern computer from the ground up using simulated hardware, all the way to the stage of building a higher-level language and writing Tetris in it.
It recommends you know some Java to actually do it, since the high-level language you end up creating is Java-like, but if you struggle through it beforehand you may be able to provide enough guidance once you get to that section.
As a computer science teacher can I point out something that the OP indicated and I hinted to.
<personal rant>Please Please PLEASE use a language that is practical outside of your classroom. Some have mentioned Python. I mentioned Java if your students are going to move on to AP:CS and hell one could even argue teach them C because of the Ardino or javascript for web programming. I just see a lot of teachers that use specialized languages that are primarly used to teach programming yet provide no (simulated) real-life experience </pr>
Umm, for some people. Not at all true for many others. When teaching, you can’t assume that everybody will always do X. You have to be general. Spread the topics around.
Someone who dwelt almost exclusively on UI in a general programming course would be one crappy teacher.
What areas have you worked in? Because I know of areas which are < 1% UI, and that only for showing the software at trade shows. No one actually uses the UI in real life. Other applications may be more like what you say, but I don’t recall every working on one that is close to 90% UI.
Yep. Like I said in my post #41.
Of course the UI is important, and lot’s of code goes into it. But from a teaching standpoint, it means nothing if you don’t know what drives it.
To the OP. You can be an excellent chef with never seeing a cow. But be prepared to have a lot of cowboys in your class. And they will know how to cook.
I disagree to a point. The OP is teaching HS seniors; few, if any, will be getting a job based on this one class. The OP will be introducing the seniors to basic concepts and what programming entails and he doesn’t have to get it all perfectly correct. It’s up to the students to continue their education, most likely in college.
There’s no way the OP should be teaching a college class but he’s not attempting to do that.
I would argue Racket is the easiest language to learn basics of. Its syntax is simplest and you can manipulate images very quickly, unlike with other languages. Its also not strongly typed.
If I had to do what you are about to do, I would really try to find a summer class to take.
I’ve been trying to teach myself Python for about half a year now. It’s an occasional project.
I find myself both challenged and frustrated by the project.
Some of my sources explain some things well, but not others. Sometimes examples are helpful, other times, they are just “plopped out there”, so you can do that one thing, but can’t go further.
I feel I am missing fundamental things, especially about classes and program design. I know that I am missing skills in reading documentation. I’m still having fun struggling along, but if I had to do this well enough to teach in just a few months, I would absolutely take a class. I may break down soon and look for a night class in a nearby college, anyway.
Unless you already know a number of programming languages, tutorials are going to be insufficient to really learn a programming language. You should get a proper book.
I did give up on tutorials and got a proper book for Xmas.
It’s been pretty good. But there are occasional flies in the ointment. I like to use Pythonista to program on my Ipad, which runs 2.7, but my book is Python 3 (not so bad, author points out how to do things if using 2.7). But Pythonista is sand-boxed, so it’s not always possible to use the modules the projects call for, so I try to figure out how to work things out. Sometimes I break down and use my laptop, instead.
But still, I figure that by “working things out”, I’ll learn stuff. Sometimes it works, sometimes I scrape by without learning much, and sometimes I’m just frustrated. I have no idea how many bad habits I’m teaching myself. That’s where I think I’m about ready for a live teacher.
Also, I’m constantly tempted off track by side projects…
Management, Transport, Finance, Medicine, Production, Embedded, IOT. (Also DBA and DBdev.)
Missing IBM (and enterprise in general), Internet (except HTML), Apps, although I have of course been exposed to all those as a user.
Asm, Basic, C, C++, FORTRAN, Machine Code, Pascal, Python, Scheme (missing Java/.PHP/Perl.)
Today I’m reviewing ASM and doing DB scripting, investigating a timing bug in the coms system of an embedded device.
How do define UI? An IOT device with 90% UI code would be scary. I don’t see how any database stuff could be called UI. Embedded certainly not, by definition.
I wrote a web based serial number translation tool that to the user looked 100% UI but was only 5% UI in terms of code.
Embedded devices? By definition? Even a pacemaker has to have a command and control interface.
Our IOT devices use code libraries. Like all IOT devices. And we have a private library for the local protocol. The web page has to be completely custom.
But seriously, are you trying to pin me down to an exact amount? Because I’ll go 80/20 rather than argue.![]()
I was just wondering what you meant by UI. Most web pages I’ll give you. But I wouldn’t call code which communicates with other devices a UI. If you call it that, then it might be a bit closer to what you say - but designing such an interface doesn’t seem very much like designing a UI.
The point is that most embedded devices have a user interface for command and control. Even (looking at my desk), my mouse, keyboard and WiFi dongle have configuration gui’s. Hearing aids, pacemakers, insulin pumps – there’s always a gui.
There’s a UI. I run into non-GUI stuff all the time. I mean, very, very often. When programming on it, that’s okay. When using it for an actual end-app …