πŸ’‘πš‚π—†π–Ίπ—‹π—π—†π–Ίπ—‡ π™°π—‰π—‰π—ŒπŸ“±

@πŸ’‘πš‚π—†π–Ίπ—‹π—π—†π–Ίπ—‡ π™°π—‰π—‰π—ŒπŸ“±@programming.dev
7 Post – 282 Comments
Joined 11 months ago

I, as a teacher, have had to learn several languages, but that's not the dumb reason bit. The dumb reason bit was WHY I had to teach Python, which once I learnt it (so I cold teach it) I could see right away was NOT a suitable language for teaching to Year 7 (who up to now have only used Scratch). I was teaching the U.K. curriculum, and I found out that teaching C# was also allowed - still not ideal, but better than Python for learners -but pretty much all schools were teaching Python. When I dug into it I found I was far from alone in not wanting to use Python... and I also found out the reason schools were teaching Python. It was because from an ADMINISTRATIVE point of view it was much easier for the schools to have us teaching Python. In other words, the office-workers who didn't have to teach it, only had to admin it, were forcing everyone to teach Python because they wanted the lower overhead that came with installing/maintaining that vs. C#. ARGH! All the teachers who wanted to teach C# were running into exactly the same road-block.

18 more...

I actually was a teacher for a while (Computer Science and Maths), and I still do tutoring. When I started working with Xamarin, with no prior .NET/C#/GUI experience (just shell scripts and programs in DOS and Unix), it became clear as day to me that no-one at Microsoft had the slightest idea how to teach things. That hasn't changed even now. The documentation is horrendous - they don't even follow basic grammar rules like spell out an acronym in full the first time, so first time you hit one and you don't know what it is, now the document is useless (because they haven't linked to any assumed background knowledge either - have you tried Googling COM to find out what it is?). When I told someone there (who I won't name) they said "it's near impossible to cater for all levels". No it isn't - you start with the fundamentals (or link to them) and build your way up to the more advanced.

Microsoft documentation...

Here's my blog on writing a MAUI UI in C# which illustrates how to write a document (though I realised later I missed linking a few things and still need to go back and fix those) - Creating MAUI UI's in C#

It's also an issue with their templates - there's no such thing as a "blank" MAUI app. They stuff a bunch of stuff in there which violates "teach one concept at a time". I was so relieved when I found out how to make my own templates! (shell be gone! XAML be gone!)

Here are the basic rules of teaching...

I would add to that (for documentation) always spell out your acronyms in full the first time, link to any assumed knowledge, have step-by-step instructions, and make sure you cover different uses from basic to advanced (and don't damn well use Foo Bar - use a real world example).

For the people saying Python is beginner friendly, no, it isn't. I had to teach it to high school students (I had no choice in the language). Having to have exact indenting, whilst also not caring at all about how you use your variables, not to mention is OOP, is all a bit much for some students, some of whom don't even fully grasp how to use loops yet. One step at a time.

4 more...

I just replied to someone else with the same question. Less can go wrong (but in either case a non-OOP language, like Pascal, is a much better starting point. You should only ever teach students one concept at a time).

8 more...

It looks like pseudo code

P.S. as a teacher, I can tell you I have seen students who even struggle to write pseudo code. It's like trying to teach them Greek (not all students, but some, and we need to cater to the lowest common denominator).

4 more...

People also forget that smartphones existed before iPhones and MP3 players existed before iPods.

Look for every time Apple has said "reimagined" and you'll find a feature that Android had 5 years earlier.

Yeah, people were saying that when dotnet.social launched as well, despite that not being an official MS server either.

It’s like going to a mathematics forum and declaring β€œGuyz I forgot to carry a 1, screw Maths.

You may think you're joking, but as a Maths teacher I can tell you I have seen a lot of posts where someone makes a mistake with their signs, then uses their wrong answer to declare "The rules of Maths are wrong! Look - different answer!". Yeah umm, try working on getting your arithmetic right first before claiming to have "proved" something. πŸ˜‚

Pascal was designed for beginners, so I'd start there. Get a handle on the basics before you move onto something which is using object-oriented programming, as that's a whole thing to understand in itself. One step at a time (I'm a teacher, and we always only teach students one concept at a time). And once you've got the basics then C# in a Nutshell series of books (one for each version of C# as new features come out) is very good with explaining the next level stuff and not rehashing the basics (there may be similar books available for other languages, but that's outside my area of expertise).

5 more...

Well, I'm only speaking here for my experience with teaching the U.K. curriculum, but probably the same thing applies elsewhere. I know this much - as a teacher, it's very frustrating!

The source is Maho. He's a Microsoft employee who has added ActivityPub (via the Wordpress plug-in) in his spare time. The 2nd person to follow it was also a Microsoft employee - @DevLeader@programming.dev - who I'm sure would be happy to clear up anything about it (I'm not sure if Maho himself is on here,, but Nick is).

4 more...

...and riding a bike is easy. Now go watch some kids who have never ridden a bike before and see how that's working out for them.

The disagreement was actually all over whether the question was about a switch or a button, and so some people were answering as though it was a switch, and some people were answering as though it was a button - switches and buttons do indeed have opposite approaches usually (a switch usually shows the current state - such as "on" - but a button shows what action will be triggered by pressing it, such as "play").

1 more...

But it wouldn't only work on Android. It would also work on Windows and Unix and any other niche operating system that can run a browser (my Blu-ray recorder has a browser in it). There's a whole world outside Apple/Android. This message brought to you by a browser running on Windows...

3 more...

Again you're talking about switches. The thread is about normal buttons which have 2 states (the example being given is a button which can be a play button or a pause button depending on the current state). Buttons aren't like check-boxes, switches are. A button triggers an event, check-boxes don't. e.g. on a settings page, you tick all the check-boxes you want first, then click on the Save (or Cancel) changes button - one event for multiple changes. You don't tick a check-box to start playing something, you press a play button (which in this case would then change into a pause button).

1 more...

That doesn't make them trend-setters though - that just makes them big spenders on marketing. i.e. Android wasn't following what Apple did - they'd already been doing it first!

1 more...

As it is, when we had to teach them HTML, the resources we were given were using PHP at the same time, so I scrapped that and just taught them HTML myself. We never teach more than one concept at a time, so I don't know how these other things found their way into the curriculum/resources.

5 more...

People complain that there’s β€œtoo many parentheses”. People like to complain about dumb stuff.

πŸ˜‚I'm off on a tangent here, but this made me laugh so much! As a Maths teacher I see all the time people complaining about "this is ambiguous - add more parentheses for clarity!" when the reality is Maths is never ambiguous and they've just forgotten 2 of the most important rules of Maths (meaning we already have the correct amount). πŸ˜‚ These very same people often put the brackets in the wrong place anyway when they do add them adding/removing brackets

Not if the globe has blown out, in which case you need the switch to indicate which state it is in (unless you like to live dangerously and change globes in lights that may be still on :-) ).

Yeah I'll pop the link to the recording in after, but the advance warning is for anyone who wants to watch live to be able to ask any questions at the time (and also to share the link with anyone who might benefit from watching it. e.g. those still stuck over in the other places).

2 more...

Of course, I rarely hire unteachable folks,

There's not really any such thing as unteachable, just people who are too stubborn to admit they could learn a thing or two (or even worse, those who rebel against being told what to do).

That's ok. Thanks for being big enough to admit you were wrong - these days a lot of people aren't!

Oh! I just remembered this video. If you wanna know how students can struggle with pseudo code, watch the video. I use this video when I teach algorithms (students are even worse at that than pseudo code).

This would be correct if the post was about switches (which TBF many people made that mistake, including me initially), but it's about buttons - buttons should show what action will result from clicking on them. e.g. "Cancel" on a button which is going to cancel your process. For a play/pause button it should show play if you're paused (if I click on this it will start playing) and pause if you're playing (if I click on this it will pause).

1 more...

YIj54yALOJxEsY20eU has compromised on their privacy values by not including a special character in their username.

They're just trying to convey they're not THAT strong. πŸ˜‚

Some of my intended audience don't know about Lemmy yet... hence the talk. :-)

don’t have to learn about indenting until you cover flow control

Which is one of the very first things they're taught - "hello world", variables ("Enter your name", "hello {name}"), branches, and loops, in that order.

I’m not sure I can think of a language that would be better suited to learning

Pascal - it's what it was designed for. Variables, branches, and loops, with strong types and optional indenting. Once people have a handle on that, THEN move onto OOP.

2 more...

TI calculators disobey The Distributive Law and give the wrong answer when a bracketed term has a coefficient.

There’s only a bot sharing links. Federated would mean more than a bot, right?

When a new post is made in a Community here, the relevant Community bot sends out a link to the post (see screenshot of post the .NET Community bot sent out about this post) - is this Community federated? Same answer.

Correct! 2(2+2) is a single term - subject to The Distributive Law - and 2x(2+2) is 2 terms. Those who added a multiply sign there have effectively flipped the (2+2) from being in the denominator to being in the numerator, hence the wrong answer.

But it's not called "implicit multiplication" - it's Terms and/or The Distributive Law which applies (and they're 2 separate rules, so you cannot lump them together as a single rule).

Pays to know how to recover code from the reflog in these cases.

At first I read that as re-flog. Is that with a cat o' nine tails? πŸ˜‚

There's no multiplication in this question - multiplication refers literally to multiplication signs - only division and brackets, and addition within the brackets. So you have to use The Distributive Law to solve the brackets, then do the division, giving you 1.

infix doesn’t have any ambiguity either if you parenthesize all operations like that

There isn't any ambiguity even if you don't.

I’ve never had anyone tell me operations with the same priority can be done either way, it’s always been left to right

It's left to right within each operator. You can do multiplication first and division next, or the other way around, as long as you do each operator left to right. Having said that, you also can do the whole group of equal precedence operators left to right - because you're still preserving left to right for each of the two operators - so you can do multiplication and division left to right at the same time, because they have equal precedence.

Having said that, it's an actual rule for division, but optional for the rest. The actual rule is you have to preserve left-associativity - i.e. a number is associated with the sign to the left of it - and going left to right is an easy way to do that.

but the phone is actually correct

No, it's actually wrong.

8 / 2 * 4

It's 8/(2x4). You can't remove brackets unless there is only 1 term left inside.