54 votes

If a program does not compile, should it get a mark of zero?

This answer assumes that the course's goal is to teach programming (as opposed to teaching advanced algorithms or numerics etc. to which the programming would only be an end). In that case I'd hold: ...
51 votes

If a program does not compile, should it get a mark of zero?

Of course not, and I have trouble believing that anyone would truly entertain the other position in any serious way. The closest analog in another field would be if you were to present an essay in a ...
  • 32.2k
50 votes

Problems with students stuck in web-browser and what to do about it

In terms of instruction, especially at the beginning, I find it helpful to ask my students why I'm doing something at every step while demonstrating: I'm going to open the start menu, why am I going ...
45 votes

What is good age to start learning programming?

Let me urge a bit of caution if you try to combine teaching of youngsters with their parents. Before you decide, you should look at the work of Piaget on the stages of development. Adults and teens ...
  • 35.5k
42 votes

Why isn't there one language to use instead of different programming languages?

I'm going to echo what Buffy said, but in a different manner. All of the great languages have a sort of direction that they point in. For instance, the Excel language (yes! The one from the ...
  • 32.2k
37 votes

What's the benefit of prohibiting the use of techniques/language constructs that have not been taught?

Rules like this are generally instituted because the teacher is attempting to teach a concept made moot by one of these constructs. For example, as a teacher, if you're teaching bitwise operators and ...
  • 4,785
34 votes

What is the point of teaching coding and robotics to kids as young as six years old?

I think the intent of such courses is to teach Computational Thinking, not programming as such. Programming is, I think, just one tool among others. There has been quite a lot of activity recently ...
  • 35.5k
31 votes

Why do we practice printing patterns while coding?

Why do we practice printing patterns while coding? Because bugs love to hide in loops. Talk students into using loops to print these patterns and they will create bugs. Tracking down and squishing ...
30 votes

If a program does not compile, should it get a mark of zero?

Following further with @Ben I.'s answer, I think the real problem is often not giving feedback about whether the program builds to the student in an inspectable and rapid manner, while also allowing ...
  • 401
29 votes

What to tell students that plagiarised their programming assignment?

While there are an infinity of ways to write code that accomplishes any task, in tasks simple enough for labs, there are usually only two to four reasonable approaches for each step, and certain ...
  • 32.2k
28 votes

Teaching the tradeoffs of the foreach loop

I think the advantages are huge, overwhelming. They avoid off by one errors - the bane of the novice programmer needing to allocate an explicit iterator - avoiding adding names to the namespace. ...
  • 35.5k
27 votes

Realistic task for teaching bit operations

Maybe a bit too complicated, but fun nevertheless: Teach them about bitboards. Conveniently enough, a chess-board has precisely 64 squares, so a 64-bit integer can store one bit of boolean information ...
  • 371
25 votes

On studying Computer Science vs. Software Engineering to become a proficient coder

You can find a fair amount of information about accredited programs in the US here, including links to schools that have one or the other programs. In general, Software Engineering is more directed ...
  • 35.5k
25 votes
Accepted

Why teach C using scanf without talking about command line arguments?

I think that the rationale is so you don't have to introduce arrays and array notation on day 1. Typically, arrays enter into the picture at roughly the same time as loops, which would take place a ...
  • 32.2k
24 votes

Why isn't there one language to use instead of different programming languages?

Imagine you open a carpenter's toolbox and you see a hammer and some nails a screwdriver and some screws a bottle of glue You are incredulous. All three of these things are used for joining two ...
  • 349
24 votes
Accepted

What to tell students that plagiarised their programming assignment?

As a TA you are working for a professor. They are fundamentally responsible for grading. It would have been better had you checked with the prof before assigning grades and getting advice. But what ...
  • 35.5k
23 votes

What is good age to start learning programming?

The minimum age I honestly don't think there is a minimum age. While it's true that very young children have a harder time thinking in abstract terms than adults, it does not mean that children are ...
  • 330
23 votes

I am a CS student, but I don't know how to code projects. How do I learn this?

Computer Science vs. Programming Really worrying situation. I do well with CS subjects but at the end of day it is all useless as I don't know how to code. That is normal. Computer Science and ...
21 votes

What's the benefit of prohibiting the use of techniques/language constructs that have not been taught?

Where it stems from is, of course, because the lab is not the thing that the instructors want solved. After all, the lab problem is not an unsolved problem, and it will only be unique (if at all) in ...
  • 32.2k
20 votes
Accepted

Why isn't there one language to use instead of different programming languages?

In theory, you only need one language and, provided that it is Turing Complete, any language will do. But... "In theory, theory is the same as practice, but not in practice." (Often ...
  • 35.5k
19 votes

What is good age to start learning programming?

This is a much less useful answer than I wanted it to be, but I'm posting it in case it helps someone. I'm not a teacher, but I've found that most 13-year-olds can learn to program using production ...
  • 291
19 votes

Problems with students stuck in web-browser and what to do about it

I (thankfully) haven't had the problem you mention quite to the degree that you are having it, but I am seeing more and more of this issue with my students generally. My focus in this answer is ...
  • 32.2k
18 votes

Why isn't there one language to use instead of different programming languages?

This is a CS variant of the Sapir-Worff hypothesis: your world view is shaped by your language. Different programming languages make you think in different ways, and are suitable for different ...
18 votes

If a program does not compile, should it get a mark of zero?

I think giving a zero for a non-compiling program can be reasonable and expected behavior in many circumstances. It's pretty close to what I do now (more below). The Original Academia SE Question Note ...
17 votes

Why teach C using scanf without talking about command line arguments?

Because everything around C language education is just utterly awful. That's really all there is to it. scanf should not be taught, but it is. It's rarely useful, ...
16 votes

If a program does not compile, should it get a mark of zero?

I enforced this exact policy ("doesn't compile = failure") For several years I was the assessor on a postgraduate course on C++ (Financial computing with C++) given at the mathematics ...
  • 261
15 votes

What is good age to start learning programming?

Never. My parents sent me to programming courses when I was 7-9 years old or so, the first half of the 80s. Completely useless knowledge today, but that is not the worst part of it - the worst part of ...
  • 259
14 votes

Why teach C using scanf without talking about command line arguments?

Because, traditionally, programs iterate over data. See JSP. Admittedly, prompting the user for data is weird, however we're talking about beginners here, having them try to remember what the ...
  • 241
14 votes

What is the point of teaching coding and robotics to kids as young as six years old?

Why teach English or art at a young age? Because it's a mode of expression and communication. Because proficiency requires learning the tools, learning the idioms, experimenting and developing a voice ...
  • 320
14 votes
Accepted

Grading source code in an online environment

I would suggest you use a code review tool. This is something they will likely need to be using when working in industry. So worth upskill them on it now. You can use githubs one for free. (You are ...

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