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 ...
Ben I.'s user avatar
  • 33.6k
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 ...
Buffy's user avatar
  • 36.3k
7 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 ...
pojo-guy's user avatar
  • 998
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 ...
Aurora0001's user avatar
  • 3,516
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 ...
Jörg W Mittag's user avatar
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 ...
hotpaw2's user avatar
  • 1,905
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 ...
Kevin Workman's user avatar
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 ...
Buffy's user avatar
  • 36.3k
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 ...
Peter's user avatar
  • 9,102
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 ...
lfalin's user avatar
  • 456
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 ...
RoboticForest's user avatar
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 ...
Buffy's user avatar
  • 36.3k
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-...
Ben I.'s user avatar
  • 33.6k
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 ...
Ben I.'s user avatar
  • 33.6k
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, ...
Plato's user avatar
  • 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. ...
Gypsy Spellweaver's user avatar
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 ...
ItamarG3's user avatar
  • 6,297
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 ...
Oleg Lobachev's user avatar
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 ...
Buffy's user avatar
  • 36.3k
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 ...
Gypsy Spellweaver's user avatar
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 ...
Buffy's user avatar
  • 36.3k
2 votes
Accepted

When teaching Java, should I teach try-catch from the outset?

I'm not sure what the progression is in your education system, but the one I went through to learn programming as a complete novice in Java (~2015, in the USA, at a community college) went roughly ...
ggorlen's user avatar
  • 772
2 votes

When teaching Java, should I teach try-catch from the outset?

This answer is based on a software engineering point of view, in not teaching things that contradict best practices. (And there are lots of misconceptions and bad practices around exception handling, ...
Ralf Kleberhoff's user avatar
2 votes

When teaching Java, should I teach try-catch from the outset?

You may need to teach this concept, but I'd do it at the point it becomes be best option. If things can fail, some sort of test or similar action is needed. For a list of objects, one can return null ...
Buffy's user avatar
  • 36.3k
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 ...
Fritz Sieker's user avatar
  • 1,203
1 vote

When teaching Java, should I teach try-catch from the outset?

Create a type value or error (but nothing else: so not object) e.g. ...
ctrl-alt-delor's user avatar
1 vote

When teaching Java, should I teach try-catch from the outset?

In Java and many other languages that followed it, Exceptions are un-exceptional: e.g. it is not exceptional to get to the end of a file. Your example of removing an item from an empty list, is a ...
ctrl-alt-delor's user avatar
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, ...
Fritz Sieker's user avatar
  • 1,203

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