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: ...
Peter - Reinstate Monica's user avatar
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 ...
Ben I.'s user avatar
  • 32.9k
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 ...
Henry Ecker's user avatar
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 ...
Buffy's user avatar
  • 36k
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 ...
Ben I.'s user avatar
  • 32.9k
38 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 ...
thesecretmaster's user avatar
  • 4,795
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 ...
Buffy's user avatar
  • 36k
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 ...
candied_orange's user avatar
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 ...
ti7's user avatar
  • 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 ...
Ben I.'s user avatar
  • 32.9k
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. ...
Buffy's user avatar
  • 36k
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 ...
mlk's user avatar
  • 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 ...
Buffy's user avatar
  • 36k
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 ...
Ben I.'s user avatar
  • 32.9k
24 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 posed lab problem is not unsolved, and your solution will only be unique (if at all)...
Ben I.'s user avatar
  • 32.9k
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 ...
Daniel K's user avatar
  • 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 ...
Buffy's user avatar
  • 36k
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 ...
forest's user avatar
  • 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 ...
Jörg W Mittag's user avatar
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 ...
Buffy's user avatar
  • 36k
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 ...
wizzwizz4's user avatar
  • 291
19 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 ...
Victor Eijkhout's user avatar
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 ...
Ben I.'s user avatar
  • 32.9k
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 ...
Daniel R. Collins's user avatar
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, ...
R.. GitHub STOP HELPING ICE's user avatar
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 ...
oliversm's user avatar
  • 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 ...
d-b's user avatar
  • 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 ...
Grump's user avatar
  • 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 ...
hobbs's user avatar
  • 330
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 ...
DarcyThomas's user avatar

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