2
$\begingroup$

I am currently a senior in high school who runs a club centered around teaching C++ to interested people. However, my fellow board members and I have recognized that our style of teaching the programming language is very sequential and lecture-like if that makes sense. If anyone has experience in running clubs, teaching software development and/or programming languages, or if you just have ideas that might benefit the club as a whole, it'd be much appreciated.

$\endgroup$
10
  • 3
    $\begingroup$ Why C++ may I ask. It is one of the hardest to use properly. Nor is it specifically object-oriented. $\endgroup$
    – Buffy
    Dec 6, 2023 at 12:45
  • $\begingroup$ @Buffy We had it in the curriculum at our school, then they took it out, but I still found it to be useful so I wanted to continue teaching it to people who were interested. Additionally, we try to teach it like an OOP, that way it can be implemented in other languages that students would want to learn in the future. $\endgroup$
    – Selisine
    Dec 6, 2023 at 13:50
  • 2
    $\begingroup$ It is very awkward to teach and use C++ as an OOP. I have a lot of experience with that. It is properly a multi paradigm language focused on data abstraction, not OOP. The true polymorphism of OOP is painful in C++ and prone to errors. OOP means more than classes. And the idea of a class in C++ and in, say, Python or Java are very different. One (C++) creates stack objects without polymorphism. The others are heap based with automatic garbage collection. You have taken on a very heavy task for secondary school. That is probably why the school switched languages. $\endgroup$
    – Buffy
    Dec 6, 2023 at 14:12
  • $\begingroup$ I could see that being awkward. That being said, it has stuck decently well on those trying to learn it from us (we’re on basic C++ so it might become quite difficult when we dive into classes and stuff along those lines). Whatever language it might be, I was more wondering about some exciting and memorable methods to teaching a programming language. $\endgroup$
    – Selisine
    Dec 6, 2023 at 14:17
  • $\begingroup$ What is your school's primary language now? Would you be willing to switch to that? I probably have some ideas. $\endgroup$
    – Buffy
    Dec 6, 2023 at 15:13

2 Answers 2

6
$\begingroup$

Lectures? Boring.

Give me a puzzle. Who can modify this code so the computer says their name? Can you make it add 2 plus 2? How would you get it to list prime numbers?

Show me the challenge. Then reveal the tools. Do it this way and I’ll stop asking if this will be on the test.

$\endgroup$
12
  • $\begingroup$ I like this idea a lot, and I could see it working pretty well. However, what if they start to apply things incorrectly, and it veers them off course to the many methods of solving the puzzle? $\endgroup$
    – Selisine
    Jan 11 at 3:16
  • $\begingroup$ @Selisine (1+1)+(1+1) works. It’s just pointlessly hard to read. You’re looking for good solutions to the puzzle. Not making them play, “guess what the instructor was thinking”. Teach them what a code review is. Make them read each other’s code. Making the CPU happy with the code is only part of the job. $\endgroup$ Jan 11 at 10:37
  • $\begingroup$ That’s fair. If I can figure out how to incorporate this, I could see it working well. What are some examples of times you’ve either used this method or been apart of it? $\endgroup$
    – Selisine
    Jan 18 at 0:44
  • 1
    $\begingroup$ @Selisine I remember it being used in my data structures class. We started with a problem then learned what structures could solve it (and the pros and cons of each). I also remember reading each chapter in my textbooks backwards. I'd start with the homework then read similar looking examples until I knew how to solve the homework. Text books sometimes try to do this by listing the objectives. But it's more fun when the teacher asks the class how solve something without telling you how right away. It lights up your imagination. $\endgroup$ Jan 18 at 1:23
  • 1
    $\begingroup$ @Selisine congratulations! $\endgroup$ Jan 29 at 12:47
2
$\begingroup$

I teach python using jupyter-lab. I can create my notebooks in jupyter with interactive exercises and share them with my students.

$\endgroup$
3
  • $\begingroup$ I might be able to use this, but I’m working with limited resources. Currently we have access to chromebooks, and we’re working to see if we can find a sponsor that can allow us to use their computer lab. $\endgroup$
    – Selisine
    Jan 18 at 0:55
  • $\begingroup$ You can always use "Google Colab", which is based on Jupyter notebooks and does not need any installation, it's cloud based. $\endgroup$
    – rodrunner
    Jan 19 at 11:37
  • $\begingroup$ I’ll definitely look into that then. I’ll likely do some tests with friends to get a gist of what we’d be working with, then implement it. Thanks! $\endgroup$
    – Selisine
    Jan 22 at 12:58

Not the answer you're looking for? Browse other questions tagged or ask your own question.