15 votes
Accepted

What makes imperative programming easier or harder to learn?

This is a topic very close to my heart. I think that the skeptical attitude you've alluded to simply comes from the fact that most people were taught imperative programming first (and some were never ...
  • 31.7k
8 votes

How is computer science (and education) different today than some decades ago?

Like any field with an active research community, Computer Science changes over the decades, sometimes quite drastically. If a practitioner doesn't keep up he or she will be left behind, not ...
  • 35.1k
7 votes
Accepted

Event-driven or polling for beginning programming environments?

On the face of it, event-driven programming seems far easier to explain. "This code will run when the button is clicked" seems obvious, and similarly, visual environments that favour this technique ...
  • 3,485
6 votes
Accepted

How is computer science (and education) different today than some decades ago?

I think this question is confusing "Computer Science" and "Software Engineering" / "Software Development" / "Programming". Computer Science has nothing to do with "cutting & pasting code". Type ...
6 votes

How to phrase questions about spotting design issues in programs

It is true that these issues can be problematic in some cases, however, this depends on the context and the usage of the class. The "design problem" that you were hoping they would find also depends ...
6 votes

What makes imperative programming easier or harder to learn?

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 ...
  • 1,897
5 votes

Event-driven or polling for beginning programming environments?

This is a technical response, rather than a response of a teacher for beginner students. One of the big "aha" moments for me was understanding that they are the same thing. Under the covers, for a ...
  • 968
4 votes
Accepted

How to phrase questions about spotting design issues in programs

My worry here is that there is no general solution other than to improve any question when you reuse it based on the answers you saw in the past. I have to admit that, even as a very experienced Java ...
  • 35.1k
4 votes
Accepted

What 'procedural' habits to break when teaching 'functional' programming?

I undertook this study myself about a year ago. I started working through the Programming Languages MOOCs on Coursera (Part A Part B Part C), which are based on a UW course of the same name. I didn't ...
  • 9,032
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 ...
  • 446
3 votes
Accepted

What are Macros in programming language am little bit confuse . why we use them for which perpose?

What macro are, and how the work, changes from language to language. That said, they are very generally a way to reuse code, often by doing searches and replacements within the code before it gets ...
3 votes

is there any good specific pedagogy research to teach spreadsheets?

While I've never taught spreadsheets to anyone other than myself, I don't think there is any unique magic here. In fact, since a spreadsheet is its own metaphor, the pedagogy should be fairly straight ...
  • 35.1k
3 votes

How to embed TIC-80 into Computer science 101 course

Being on this site since the beginning, I have many times now encountered this notion that for introductory courses, higher level languages mean that students will deal with more abstraction and lower-...
  • 31.7k
3 votes

What 'procedural' habits to break when teaching 'functional' programming?

When I created my course for Scheme (under not dissimilar circumstances from yours), I used The Little Schemer as my primary source. The book itself rapidly became too dense for my HS students, so I ...
  • 31.7k
3 votes

Event-driven or polling for beginning programming environments?

It almost entirely depends on the context of the function within the program and the program within its usage context. Here's my general approach: If only one event can happen at one time, ...
  • 31
3 votes

How to phrase questions about spotting design issues in programs

Simple demonstration: Presenting this and asking, "What do you see?" is sure to get a variety of answers. Most might be along the line of a bird feeding baby birds. Not all will be, however. ...
3 votes

How to phrase questions about spotting design issues in programs

I would break the question into parts. You can put a short paragraph describing what the code in front of them is supposed to do. When one (or more) writes code for something, the design is ...
  • 6,227
3 votes

What 'procedural' habits to break when teaching 'functional' programming?

I taught a "Functional Programming" course on multiple occasions. It was basically a Haskell course. Phew, can't wait to teach it again. To answer you question precisely: you have no state, no ...
2 votes

Does teaching an intro course with a functional language really help level the playing field?

Let me mention, at least, another dimension to this. There are various functional languages and some of them are closer to what your students may have in their backgrounds. A language with dynamic ...
  • 35.1k
2 votes

is there any good specific pedagogy research to teach spreadsheets?

I have never taught spreadsheets, per se, but have given projects to create a working spreadsheet. To test theses implementations, one needs a sample spreadsheet that exercises the various functions ...
  • 1,113
2 votes

How to recast an ASPX application as Object Oriented

The object-oriented and procedural, or imperative, paradigms, and the functional, logical and mathematical, or declarative, paradigms are just that "paradigms." They are the embodiment of thought ...
2 votes

What makes imperative programming easier or harder to learn?

I think that both the question and the answers to date conflate two things that can be separated: imperative programming and programming with primitive data. These are not the same thing and thinking ...
  • 35.1k
1 vote

How is computer science (and education) different today than some decades ago?

For background, I'm answering this question as an individual who got an engineering degree, spent 30 years programming in industry, and now teach and mentor at the local university. In many respects, ...
  • 1,113
1 vote

What makes imperative programming easier or harder to learn?

My earlier answer focused on overall program structure, not assignment and mutable state explicitly. The originator was focused otherwise, on assignment. One of the difficulties for beginners, I ...
  • 35.1k

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