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 (...
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 ...
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:
...
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 ...
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 ...
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 "...
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 ...
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 "...
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 ...
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 ...
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 ...
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.
...
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/
...
4
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 ...
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 ...
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 ...
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:
...
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 ...
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 ...
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.
...
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, ...
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 ...
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 ...
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 ...
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 ...
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 ...
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. ...
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 ...
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, ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
syntax × 11programming × 2
best-practice × 2
secondary-education × 2
lesson-ideas × 1
curriculum-design × 1
undergraduate × 1
teaching-analogy × 1
object-oriented-paradigm × 1
introductory-lesson × 1
grading × 1
assessment × 1
adult-education × 1
c × 1
ap-cs-principles × 1
javascript × 1
programming-paradigms × 1
arrays × 1
variables × 1
abstraction × 1
layperson × 1
robotics × 1
cs0 × 1