44
votes
Accepted
Interesting Programming Exercises to Teach Inheritance?
I'm not as familiar with Python as I am with other languages, but I'm sure your students have played Minecraft.
If you haven't, I suggest taking a few minutes to find some introductory "Lets Play" ...
19
votes
Accepted
What to consider when choosing version of Python?
A few years ago, the answer to this would have been "stick with Python 2; the libraries aren't ready for Python 3 yet". In many cases, that would have been a deal-breaker, because many of the older ...
19
votes
Accepted
IDE vs Editor and terminal for CS1
TL;DR Those two aren't your only options.
The main concern is cognitive load: learning to program is difficult enough without adding incidental complexity.
We've seen an explosion of hybrids in ...
16
votes
Interesting Programming Exercises to Teach Inheritance?
Too many examples that you find are (IMO) fatally flawed. The Animal->Dog is especially flawed, though widely used. The problem is that these sorts of examples almost require that the superclass has a ...
12
votes
IDE vs Editor and terminal for CS1
Here are my thoughts on this.
Editor and Terminal
This is most likely the more lightweight solution. Editor and terminal often don't consume much space (or, at least, come bundled with the operating ...
11
votes
Accepted
How do I approach teaching Python to 12-year-olds as a first-time teacher?
Check out the Python books written by Al Sweigart. His homepage Invent with Python includes some great, free resources that are geared to the age range of your students. In particular he focuses on ...
11
votes
IDE vs Editor and terminal for CS1
Of course it depends on your overall goals. For me, however, the answer is clear: Use the most powerful IDE that I can find (Eclipse or NetBeans fit my def).
I started programming on primitive ...
11
votes
Any simple Python GUI projects for beginner/novice programming students?
In my experience, good introductory programming courses meet three overarching goals:
Empower students to create simple programs outside of the scope of the class by giving them the technical skills ...
11
votes
Accepted
First programming Language : C or Python?
The question is actually more complex than it might appear, and really the answer can depend on the context. For example, at what age are the students when they are first taught to program? Is this ...
10
votes
IDE vs Editor and terminal for CS1
The real question is this: do you want to teach your students what is actually going on, or teach them which magic buttons to press in an IDE?
Of course for professional programming work nobody would ...
10
votes
Starting open source
Since you specifically mention high-schoolers getting started with open source, i have to recommend the Google Code-In. I participated all 4 years as a high-schooler and really learned a lot about ...
10
votes
Interesting Programming Exercises to Teach Inheritance?
I've got one that might help, modified/simplified from an actual problem I had to solve at my current job.
Imagine you're writing a Content Management system - this system will store four types of ...
10
votes
Accepted
Will I Regret Using Python As A Teaching Language When I Later Need to Teach Static Typing?
If you teach Python's typing system correctly, you should have no problem later. The rule in Python is that names don't have a type associated with them, but all values do. It isn't that "things" ...
10
votes
Accepted
Any simple Python GUI projects for beginner/novice programming students?
Unfortunately, GUI programming is sufficiently different from algorithmic programming that if you start with it students can get the wrong idea about what a program should look like.
For example, ...
9
votes
Pedagogical issues with Stack Implementation
Actually, the code is terrible, but I don't think its purpose is to illustrate a stack so much as to illustrate in a very rudimentary way how heap allocation works. (Worse than "terrible", it isn't "...
8
votes
Interesting Programming Exercises to Teach Inheritance?
My coding school gave one particular (weeks-long) project that I felt nailed the concept of inheritance, and why it could be useful:
Simulating a circuit board with logic gates.
The framework of the ...
8
votes
Explaining why arrays are important for statisticians
If you are tutoring her, it is wonderful that you are trying to motivate the material in a practical way, but don't beat yourself up too much if you aren't that successful at persuading her. Some ...
7
votes
What is the best way to learn an object oriented programming language with framework, data structure and alogrithms?
You certainly don't need a list longer than this one. If you do even half of this you will have learned enough to know pretty much what should be next. Having a complete list now gives you very little....
6
votes
How do I approach teaching Python to 12-year-olds as a first-time teacher?
I agree with Peter. It needs to be fun, and games really help. It doesn't take much to exercise basic programming concepts such as variables, loops, selection, input, and output. I would start with ...
6
votes
Explaining why arrays are important for statisticians
Have you tried a simple statistics formula such as $$mean = \left(\sum_{i=1}^{n} x_i\right) / n$$ This maps exactly to array notation. Explain that the array x ...
5
votes
Starting open source
Before contributing to an open source project it can be useful to become familiar with the tools and concepts involved in version control systems.
Write some code that is unfinished with some ...
5
votes
Do Python and Java lead students to construct different mental models of memory?
I think that this is an interesting question, and one the textbooks often ignore or treat as unimportant. I've noticed it because I end up teaching Python, Java and C++ and have seen how my student's ...
5
votes
Do Python and Java lead students to construct different mental models of memory?
I am not aware that cognitive modeling of memory structures in early programming education has been directly studied, so anything that I say here is entirely speculative. However, I suspect that the ...
5
votes
IDE vs Editor and terminal for CS1
I like to ease people in. You have mentioned that this is for first year. So, yeah, easing in would really have a positive impact on the overall learning experience.
I would like to draw from my own ...
5
votes
Will I Regret Using Python As A Teaching Language When I Later Need to Teach Static Typing?
Maybe it is a bit overkill, but I'm teaching python and C in parallel to CS beginners.
The languages are syntactically similar enough to lower the burden of learning two languages, but the students ...
5
votes
Explaining why arrays are important for statisticians
I had a student some time back who also really struggled with concepts like this, but who was interested in research in psychology which for her was largely about statistics.
Statistical data is ...
5
votes
What is the best way to learn an object oriented programming language with framework, data structure and alogrithms?
Your list of items is very complete and would fill a good part of a Bachelor's degree curriculum. One thing to not overlook is that some of the aspects you highlight make little sense in the context ...
5
votes
First programming Language : C or Python?
Python is a fine language for learning algorithmic thinking and problem solving (see e.g. Downey's "Think Python" (Green Tea Press, 2nd edition 2016)). Python has an enormous ecosystem, ...
5
votes
First programming Language : C or Python?
I started teaching Python at NCSSM in 2004. Here are some reasons I chose it.
It is direct and simple, and there is not a whole ton of boilerplate to deal with at the beginning. Hello, World looks ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
python × 31programming × 6
lesson-ideas × 5
self-learning × 5
object-oriented-paradigm × 3
resource-request × 2
java × 2
algorithms × 2
project × 2
ide × 2
student-motivation × 1
best-practice × 1
undergraduate × 1
introductory-lesson × 1
textbook × 1
adult-education × 1
struggling-students × 1
c × 1
javascript × 1
lecture-tools × 1
differentiation × 1
careers × 1
code-example × 1
machine-learning × 1
auto-graders × 1