2022 Developer Survey is open! Take survey.

Hot answers tagged

11 votes

Should I have written tests on basic programming skills?

As a tool for differentiation, writing out code by hand is absolutely worthwhile. I taught this year in a classroom with whiteboard top desks, and students loved a) getting to writing on their desks (...
user avatar
  • 8,992
11 votes

Lesson Idea: Arrays, Pointers, and Syntactic Sugar

You overestimate the complexity of 0-based indexing a lot. There is nothing complex in 0-based indexing. On the other side, the topic of the pointers is relatively complex. I don't think it has any ...
user avatar
  • 320
10 votes

Lesson Idea: Arrays, Pointers, and Syntactic Sugar

This is a great explanation of why 0-indexing exists. As someone who barely knows what a pointer is, your explanation made perfect sense. If you wanted to dumb it down a little you could phrase it as: ...
user avatar
  • 4,754
10 votes

What are some non-CS concepts that can be defined using BNF notation?

Going with real-world things which they should be familiar with are best, even if it is completely outside of education. As you have applied the tag for adult education, I'm going to presume it is ...
user avatar
6 votes

Should I have written tests on basic programming skills?

I think having kids write code by hand can be incredibly worthwhile, but be careful of how you assess it. I wouldn't take points off for mistakes that would be easily caught by a compiler such as a ...
user avatar
6 votes

Lesson Idea: Arrays, Pointers, and Syntactic Sugar

Draw ongoing attention to the potentially confusing point by banning cardinal descriptions of an element's position. Avoid referring to the "first element" or "second element" and talk only about "...
user avatar
5 votes
Accepted

How can I help students develop intuition about a programming language?

I think this is a structure of knowledge problem. I suspect the disconnect is that you have organized your knowledge in a way your students haven't. You understand that strings, lists, dicts, and ...
user avatar
  • 1,955
4 votes

How can I help students develop intuition about a programming language?

If the student is asking such questions, then we're already off to a great start. You have meta-cognitive learners! Now, I must caution you to be reasonable about your expectations. You write that "...
user avatar
  • 31.2k
4 votes

Lesson Idea: Arrays, Pointers, and Syntactic Sugar

I am not advocating teaching pointers to explain 0-indexing (see mine and other's answers on your other question for how to do that). However, if we have good reason to teach pointers, here is a tip ...
user avatar
4 votes

Should I have written tests on basic programming skills?

Is there a better way? Consider using an authentic activity that both exercises and motivates the learning. For example, often the author of code has difficulty finding and repairing errors in the ...
user avatar
  • 104
4 votes

Is it a good idea to have students see syntax much earlier than they write it themselves?

Boldly Go... First, I'll just say yes, it is a good idea to introduce things (let students see them) before they have to deal with them in detail. There is actually a Pedagogical Pattern, See Before ...
user avatar
  • 34.7k
4 votes

What are some non-CS concepts that can be defined using BNF notation?

The literary arts are full of structured strings. The main problem there is finding ones which have sufficiently interesting structure. E.g. ...
user avatar
  • 1,683
4 votes

What are some non-CS concepts that can be defined using BNF notation?

Mathematical expressions or natural language are good candidates for these. e.g. from http://matt.might.net/articles/grammars-bnf-ebnf/ ...
user avatar
3 votes

Is it a good idea to have students see syntax much earlier than they write it themselves?

I have not seen research, but this is my practice. I teach print before, teaching how to implement print. I teach use of ...
user avatar
3 votes

App Lab/JS confusion between strings and variables

Don't imagine that this problem is rare or that it is caused because the students don't "get it." Often they get it all too well. It is common in learning a new thing to base your understanding on ...
user avatar
  • 34.7k
3 votes

App Lab/JS confusion between strings and variables

As always with javascript, show the right&wrong: Show them, using the exact piece of code from your example, but add another line: ...
user avatar
  • 6,227
3 votes

How to teach beginning students how to find and fix syntax errors?

I would start by showing them a few natural language examples, where changing one letter in a sentence completely changes the meaning, perhaps into nonsense. Most computer languages respond similarly ...
user avatar
  • 1,897
3 votes

Lesson Idea: Arrays, Pointers, and Syntactic Sugar

Let me suggest, pretty strongly, that you may be mixing up too many ideas in too short space for novices to grasp in one go. Spread it out. There is no real reason to introduce arrays along with ...
user avatar
  • 34.7k
3 votes

Teaching syntactic sugar

The ?: operator is not syntactic sugar (OK in most languages it is, and no guarantees/checks are made). It is a different construct. ...
user avatar
3 votes

Should I have written tests on basic programming skills?

After reading the answers here I'm left thinking... What about doing classroom code review? That is, have the students take the assignment they've completed, print it out, hand it to someone else, ...
user avatar
3 votes

Should I have written tests on basic programming skills?

Seems like an objective test early in the year over syntax is a really good way to run off rookies. If your kids write enough code, they'll pick up the syntax. After forgetting a semicolon for the ...
user avatar
  • 3,029
3 votes

Are there any recommended tools for teaching syntax and grammar of programming languages?

I agree with @Buffy's comment. If your goal is to teach the concepts of lexical rules and context-free grammar, I would focus on that rather than on using tools to build parsers from those grammar ...
user avatar
  • 436
2 votes

Should I have written tests on basic programming skills?

I think that you could achieve your intended goal more easily simply by waiting. People naturally learn from their mistakes and I think that the wrong equals or no semicolon at the end of a line will ...
user avatar
  • 4,754
2 votes

How can I help students develop intuition about a programming language?

Well, my first thought is an analogy. Lots of things follow patterns, right? English is a massive, complicated, crazy language, that often disobeys its own rules. (Python is much nicer.) But it, like ...
user avatar
  • 4,684
2 votes

A category to classify expressions, statements and blocks

This is a surprisingly complex question. In many languages one can distinguish between commands and expressions. A command is something that changes the state of the computation. An expression is ...
user avatar
  • 34.7k
2 votes

Teaching syntactic sugar

While I agree with this answer that the conditional expression is more than just sugar, I think the following consideration is important in many languages: While the student can be led to always ...
user avatar
  • 34.7k
2 votes

Teaching syntactic sugar

Generally I feel one element should be core when it comes to this and that is readability. From my own experience when I was just starting off with programming I'd always explicitly define my scopes. ...
user avatar
  • 191
2 votes

Going from syntax to CS concepts

tl;dr Make the mapping between the software and the hardware explicit at the start and then show the code, rather than the other way round. Draw pictures. Give them a mental overall image, not just ...
user avatar
  • 34.7k
2 votes

What are some non-CS concepts that can be defined using BNF notation?

Let me try to give a more interesting example, that can't be expressed as a set of simple regular expressions. BNF, properly speaking, is about the structure of a thing, such as a language. As such, ...
user avatar
  • 34.7k

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