Skip Navigation

πŸ’‘πš‚π—†π–Ίπ—‹π—π—†π–Ίπ—‡ π™°π—‰π—‰π—ŒπŸ“±
πŸ’‘πš‚π—†π–Ίπ—‹π—π—†π–Ίπ—‡ π™°π—‰π—‰π—ŒπŸ“± @ SmartmanApps @programming.dev
Posts
22
Comments
591
Joined
2 yr. ago

  • Oh definitely! Different students have different learning styles - some learn by memorising rules (ROTE), some learn by understanding the rules (Constructivist), some are visual learners, some are better at learning in group activities, etc. - and we have to cater to them ALL, to keep them all engaged (here's WHY we have this rule, here's a video about it, here's a group activity about it, here's a worksheet to practise it). But I was referring to the TOOLS that we use with class. We can't use a tool that the advanced students have no trouble with but the less adept students struggle with - we have to use a tool that the whole class can use, and that's what I meant about catering to the lowest common denominator.

    Also some (not all) schools have special classes for gifted and talented (G&T) students. And in fact one class I've had in my time is a class which was comprised of half the students had various learning difficulties (such as being dyslexic), though they weren't told that (these days it's all about trying to keep them in the mainstream as much as possible. So in this class the dyslexic student had a regular student sitting next to him for immediate help with reading anything, which left me free to only need to help him with actual educational issues).

  • My first language was Basic, and Pascal is definitely better than that as a first language (it's what it was designed for).

  • Python does have OOP but you are not at all forced to use it.

    Not as an individual, but I'm talking about a situation precisely where the individual choices of teachers are ignored, in some cases by school admins, in some cases by faculty choices. Fortunately I also ran a computing club, in which I was autonomous with how I ran it, and I taught my computing club students C#/MAUI... but even then still saw some of the issues you run into with teaching students. e.g. I told them to install Visual Studio ready for next week, showed them where it was, what workloads to install, and then the next week one of the students had installed Blend for Visual Studio, not Visual Studio. "Look, it has Visual Studio in the name!". (sigh)

    I think weakly typed variables will actually help beginners as it is less to think about to start off with

    No, that's exactly the problem to start with. Another rule of teaching (see below for the full list I'm quoting these from) is "never let the first impression be a wrong one". If you let students think they can use variables for anything, then you run into problems when they can't. This is why teaching them with strong types first is better - they learn you need to be careful with how to use them, THEN maybe you can let them have some more freedom like Python allows.

    In other languages it is considered good style to use indentation anyway

    Yes, but in those languages it's optional. In Python it's mandatory, and if someone's code isn't working it's far easier to spot a missing bracket than a missing space.

  • That’s silly

    Agreed.

    This was at a university

    As I said elsewhere, I had a much more sensible approach when I went to Uni - we learnt Pascal in first year, and then did OOP in second year, which follows the tradition of only teaching one concept at a time.

  • 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!

  • Why do you even have to mention OOP?

    Because I was saying why it's a bad choice to teach to Year 7. I already said if it was up to me I'd teach them Pascal.

    C# is object oriented too

    Yes, I know, but in this case it's the lesser of 2 evils, for the other reasons I gave.

    Python is comparatively easier as it’s nearly literally pseudo-code

    And as I just said to someone else, students even struggle with pseudo code.

    e.g no need for semi-colon, brackets

    And I already said that's one of the drawbacks - indenting has to be EXACT or your program doesn't work anymore.

    As for indentation being exact, IMO that’s on you

    It's not on me - it's in the language itself to begin with. I have no control over it.

    Beginners should be given a proper development environment to work in that helps them as much as possible. Modern editors and IDEs point out syntax errors and indentation errors are incredibly basic

    Now see if you can get the school admin's to install those ones. As I said, that's the root issue to begin with - the school admin's.

    If they are working in an environment that doesn’t even point that out to them, they have been setup incorrectly

    Now see if you can get the school admin's to fix it. Welcome to the struggle the teachers face in teaching what WE want to teach them.

  • 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).

  • 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).

  • 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.

  • 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).

  • Notably, when I did my C.S. degree, they knew to only teach one concept at a time. We learnt Pascal in first year, then did OOP in second year.

    • object-oriented (this is their FIRST proper programming language - they don't even know how to write loops yet and you want us to teach them OOP at the same time?! And as it turns out, I had one student who literally could NOT work out how to use a loop - kept writing 20 variables for 20 iterations. i.e. her variables never varied!)
    • variables are weakly-typed (use it for anything, whether it's what you first used it for or not, Python doesn't care)
    • indentation has to be exact (i.e. no brackets, just exact indentation). I had one student whose program wasn't working, and it even took ME a while to find what was wrong with it (a missing space).

    I think there was more, but that's what I remember off the top of my head. If it was up to me then I would've used Pascal - that's what it's designed for! But at least C# has strongly-typed variables, and doesn't care about your indentation (and unfortunately there was no non-OOP language choice available - I'm not sure how this got in the curriculum when every teacher knows you only teach one concept at a time). As I said, many other teachers felt the same way, but couldn't get it past their school admin's.

  • 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.

  • I came here because I noticed I wasn't getting the posts from here on Mastodon anymore, since sometime a day ago (newest post in my Mastodon "Programming.dev" List says 1 day old). Sounds like the same issue, but thought I'd add this info as all the other comments are about not getting posts from other places here, but I'm not getting posts from here at Mastodon.

  • 10x = 0.999… + 9 (true by algebraic manipulation)

    No, you haven't shown that, because you haven't shown yet that 9x=9. Welcome to why this doesn't prove anything. You're presuming your result, then using it to "prove" your result.

    What we know is that the right hand side is 10 times 0.9999..., so if you want to substitute x=0.99999... into the right hand side, then the right hand side becomes 10x (or 9x+x)... which only shows what we already know - 10x=10x. Welcome to the circularity of what you're trying to achieve. You can't use something you haven't yet proven, to prove something you haven't yet proven.

  • According to me, talking about the origin of the 0.999…

    Right. So not according to the meme, which doesn't tell us where the 0.999... comes from. Nor the 1 - could be an integer, floating point, or an estimation. Thanks for playing.

  • you can substitute anywhere

    And if you are rearranging algebra you have to do the exact same thing on both sides, always

  • This isn’t about limits of accuracy

    According to who? Where does it say what it's about? It doesn't.

    please show me how basic arithmetic can make 0.999

    You still haven't shown why you're limiting yourself to basic arithmetic. There isn't anything at all in the meme to indicate it's about basic arithmetic only. It's just some Maths statements with no context given.

    then a correct use of the system must be applicable to everything, right?

    Different systems for different applications. Sometimes multiple systems for one problem (e.g. proofs).

    You shouldn’t need a new system like algebra to be correct, right?

    Limits of accuracy isn't algebra.