hotpaw2
  • Member for 4 years, 8 months
  • Last seen more than a month ago
How to teach the importance of indentation
16 votes

Indentation (in most languages) is just for readability. This aids in maintainability and other good stuff, all of which an intro student is completely unaware of or uninterested in. So it is best ...

View answer
Why did interest in CS majors plummet in the United States after the mid-80s?
10 votes

The Atari VCS game E.T. came out in December 1982, which led to the start of North American video game crash of 1983, the end of a video game software industry boom. That market fell from 3.2B to ...

View answer
Simple Pointer Examples in C
8 votes

I would teach the use of arrays and array indices first (with pictures of a long row of physical mailboxes, or school lockers, etc.) Then later explain that all of a computer's and/or C program's (...

View answer
Recommended IDE for teaching web development to beginners
8 votes

I don't think the tool (or learning the tool) should get in the way of learning the initial core of the subject. If students are already comfortable with NotePad (or TextEdit, et.al.), why add to ...

View answer
What makes imperative programming easier or harder to learn?
6 votes

The difference may be partially related to whether or not the student has a mental model of the machine (as in simple, possibly physically mechanical, computing hardware), rather than more abstract ...

View answer
What hardware can I use when teaching Compiler Language and Assembly Code
5 votes

The 32-bit subsets of ARM assembly language are fairly clean, orthogonal and RISC-like, as well as being a reasonably nice target for a simple compiler. Inexpensive Raspberry Pi's run 32-bit ARM code,...

View answer
Is there any value in teaching pseudo code?
4 votes

Pseudo-code allows expressing that an algorithm to solve some problem is not the same as the syntax (formatting, punctuation abuse, etc.) required to make any particular compiler or interpreter happy. ...

View answer
How to convey how much computing power has grown since the 1960s?
4 votes

The problem with teaching the trajectory of computing technology is with basic numeracy. The orders of magnitude are just too big for many students to comprehend without more numeracy and feeling for ...

View answer
Why did the percentage of CS bachelor's degrees going to women peak in 1984?
4 votes

The fall in CS degrees seems to match a rise in women getting degrees in business, psychology, science, and biology, which might be due to a higher proportional interest in those fields. Easier to ...

View answer
Order to Teach Topics in an Intro Programming Class
4 votes

I am of the school of thinking that starting at an abstract level causes too many students to consider computation as inscrutable magic. And that can lead to broken mental models and buggy ideas ...

View answer
Is there any value in teaching goto statement or flowcharts?
3 votes

Binary digital computers (and the execution of most programming languages) are just big state machines at their very heart. State machines usually require non-sequential state changes. e.g. gotos A ...

View answer
How to teach beginning students how to find and fix syntax errors?
3 votes

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 ...

View answer
The order of subjects in beginner's curriculum
3 votes

Consider that the best way to teach Java might not be to teach Java (at first). For several programming languages (those that were not designed for pedagogy/teaching), starting with a teaching ...

View answer
Programming languages specifically designed for beginners
3 votes

Although out-of-style, historically, BASIC was designed for the education of non-STEM college students, is time tested, and probably allowed one of the highest ever programming literacy rates among ...

View answer
How to teach students not to use jump statements
3 votes

Teach them to use jump statements (but only within suitable contexts). Jumps are perfectly normal in assembly language, machine code, and state machines (Turing machine advance tape by N). Teach ...

View answer
Would you mentor other people for free/voluntary donations?
2 votes

A key difference with stackoverflow vs. private mentoring is that one doesn't need to be invested in any particular person's understanding. If the OP doesn't get it, marks my answer down, upvotes or ...

View answer
What are the advantages/disadvantages of teaching how to implement Nodes, Linked Lists, Stacks, and Queues before showing built-in implementations?
2 votes

Programmers who learn only how to use libraries, without having even an inkling of what’s inside them or how they might be constructed, often become apprentice magicians throwing together opaque ...

View answer
Is the CRT still relevant when introducing display hardware
2 votes

Except for the latest iPad Pro and a few other specialized displays (vector, etc.), most laptop and mobile devices displays still update a 2D bitmap raster or composited texture quad at some fixed ...

View answer
Benefits of explaining low-level architecture in a programming class
2 votes

A touch of some minimal explanation of logic gates, binary numbers, state machines and the processor-memory divide helps make computing seem less like magic, and more like technology (something of ...

View answer
How to teach the value of the command line in high school?
2 votes

Teach the command line as part of a brief history of computing. Let them know how good they have it, not having to punch cards and wait overnight, or use a command line on a clanking teletype over a ...

View answer
The use of the Octal system
2 votes

An octal representation is shorter, in characters, than a binary representation for data with any number of bits greater than one. Unlike hexadecimal, an octal representation can be displayed using ...

View answer
How can we measure proficiency in programming languages?
1 votes

One type of assessment might be to focus on the key differences between their previous knowledge and the new programming language. One key difference of C from Python is that C natively deals with a ...

View answer
Through what basic programming language can beginners easily get the concept of programming?
1 votes

Once upon a time, a lot of medical professionals picked up Mumps and Basic all by themselves. Simple interactive command line Basic, not even requiring a programming editor or IDE to complicate ...

View answer
How to learn to program compiled languages efficiently when coming from an interpreted language?
1 votes

I would say that you need to learn a completely different (old fashioned, perhaps archaic) programming paradigm, non-interactive coding. In Ye Olden Ancient days, a programmer would often write out a ...

View answer
How can I remain a programmer and move into currently "hot" areas?
1 votes

What's "hot" changes. And, as Yogi Berra said: "It's tough to make predictions, especially about the future." However, fairly often, kids (high school, college, or even school drop-outs) are among ...

View answer
Why isn't Functional Programming Taught First?
1 votes

The computing ecosystem keeps making smaller and smaller things. Imperative programming is far better matched to Arduinos and other small cheap computers that a k12 and earlier student is likely to ...

View answer
How to stop being The Oracle
1 votes

Randomly be "too busy with something" for a few minutes, but say you'll get back to them. Then set a timer, and then check with them some number of minutes later. Reward them (somehow, depending on ...

View answer
How can I prepare CS majors for non-programming jobs?
1 votes

A CS graduate with good writing and people skills might want to look into entry level product or project management positions. Adding a few business management courses might help with that.

View answer
Do your students pay attention when you speak?
1 votes

Bonus points for pop quiz questions about something you just explained from the front of the room. Randomly done.

View answer
When should I scrap my projector for a blackboard?
1 votes

There may be a psychological-physiological learning advantage to having students see solutions or code presented at nearly the same rate as the student would write or type in the code themselves. ...

View answer