Hot answers tagged

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" ...
user avatar
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 ...
user avatar
  • 3,485
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 ...
user avatar
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 ...
user avatar
  • 34.9k
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 ...
user avatar
  • 961
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 ...
user avatar
  • 9,032
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 ...
user avatar
  • 34.9k
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 ...
user avatar
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 ...
user avatar
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 ...
user avatar
  • 613
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 ...
user avatar
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 ...
user avatar
  • 290
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" ...
user avatar
  • 34.9k
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, ...
user avatar
  • 34.9k
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 "...
user avatar
  • 34.9k
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 ...
user avatar
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 ...
user avatar
  • 31.5k
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....
user avatar
  • 34.9k
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 ...
user avatar
  • 1,044
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 ...
user avatar
  • 1,113
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 ...
user avatar
  • 806
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 ...
user avatar
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 ...
user avatar
  • 31.5k
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 ...
user avatar
  • 1,874
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 ...
user avatar
  • 594
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 ...
user avatar
  • 101
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 ...
user avatar
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, ...
user avatar
  • 604
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 ...
user avatar
  • 2,279

Only top scored, non community-wiki answers of a minimum length are eligible