7

Students latch on to the familiar which is usually what they're introduced to first. So... teach objects first and unless you work hard at it, the kids will tend to use an OOP hammer on every problem regardlessof appropriateness. Teach procedural / language constructs first and the kids will tend to write HUGE main functions and static methods if left to ...


7

I'd definitely go for objects-late, or even objects-never in the introductory course (as you seem to mean "class-based OOP"). To teach programming, and work with a particular language, you first need to establish the basic syntax and builtin types and operators. (If there's a REPL, you can start with expression syntax and keep statements for later). You'll ...


6

tl;dr: When you teach with the OO paradigm, you get to control the flow of ideas and the level of complexity at any moment. Here we examine the first course in computing, no matter the educational level. Presumably this is for a formal course, though it can be adapted to self-study. Presumably the students have mixed ability and backgrounds, neither all ...


5

I'm not a teacher, but my experience is that OO (and other related encapsulation techniques) teach you to write what you want the computer to do, while procedural coding teaches you to write how you want the computer to do it. OO is a powerful way to ignore the how until you need it. As a result, anyone learning in an objects-early approach is going to ...


4

I'll try not to write a book as an answer here, but my experience with this is long and deep. The first thing you need to know is that you don't start with just the programming language itself. If you try to teach integer variables and 'if' and 'while' statements before you get to objects you may fail. I'm going to assume that your intention is to teach a ...


4

Objects can be more intuitive than procedural programming for children. Think about the huge success that MIT's Scratch has had in introducing programming concepts at all ages. To pick up the basics, all you need is an understanding that "if I tell the sprite to move, it will move; if I tell it to speak, it will speak; if I tell a second sprite to move, ...


4

I looked into this very issue when I researched different books/curricula to consider integrating into my AP CS A course. One of the books I discovered was Objects First with BlueJ (book website). Here is an excerpt from their justification: One of the reasons for choosing BlueJ was that it allows an approach where teachers truly deal with the important ...


4

The Justification is simple: this is how programming is largely done these days. Everything that people learn should be practical, something that exists outside the classroom. Whatever the students are taught should be something that they can use in many situations, and as others have said, should not have to be unlearned in order to learn something else. So ...


3

This started as a comment, but got too long, and I realized I was moving well into answer land. Understand I'm not a teacher with a class full of kids, so this may be too esoteric of a way to look at the question. However I have worked with students at different times from different types of backgrounds. Those who were in classes where OO programming is ...


3

The book “a touch of class” — bertrand meyer. Teaches Object orientation in a first year undergraduate cause. He claims that in his course he teaches Eiffel, then a bunch of other OO languages at the end (C#, Java, …) quicker than any of the others can be taught alone. This seems reasonable, as Eiffel is very well mapped to OO. There is on the most part a ...


2

I have used the following approach successfully. Know the outcomes you are teaching to, and use your materials and tools to achieve them. My goal is to develop strong computational problem-solving skills and methodologies. This is the foundation I use to leverage an early objects approach with no prior experience: Introduce the idea of objects and ...


2

An Early Objects approach should focus on problem solving techniques based on object interactions. If your focus is to teach a (specific) programming language you should indeed have an objects late approach. The key difference between early/late objects is the thinking paradigm you establish for your students. You want the most important ideas and skills ...


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