I don’t think the proposed syllabus really achieves what the author says it does. In education, neat plans often have a way of imploding when they meet students.
As I see it, the “WHY!?” has two components:
What’s my motivation to learn this?
How do I use this in practice?
The first is the hardest, especially if you have to teach a large group. Who’s to say they will be interested in your card game problem? Experience tells me most will see it as contrived.
As for the second, I’m fairly certain students will fail to generalise from solving one hyper-specific problem. Yes, you’ve taught them how to make a card game, but will they able to apply these tools to another problem?
Teaching is definitely easier when you can pair it with practical examples, but I think that’s how any decent teacher would teach the first syllabus anyway. People with no experience in education often like to armchair speculate on how it ought to be done, but the real problems in education tend to be systemic and institutional, which the teachers usually have no power to affect.
In my introductory robotics course we follow an approach similar to what he recommends, and although I loved the format and my students were overall very successful in the course, I noticed that other than a handful, students really struggled to take the previous material and apply it to a new domain. They tended to compartmentalize solutions versus seeing them as tools that could be used in other ways. It did improve some as we went but I think, like you said, that there are systemic issues that need to be addressed to change that kind of thinking. No CS course can be expected to overcome that without changes elsewhere too.
FWIW, this problem of “textbooks poorly motivating our tools” often comes up in higher mathematics, too. A lot of higher maths books are just like this – as a reader you get a bunch of definitions as a foundation, followed by chapters and chapters of theorems and new definitions using those foundations, but rarely are the foundations or theorems sufficiently motivated to the point where the reader can unironically say “ah yes, this is obviously useful.”
The way math books usually get around this problem is by, almost as an afterthought, having exercises at the end of each chapter. This offloads the discovery work of “what you would use this for” to the readers. But, unfortunately, the ubiquity of this approach makes a lot of mathematics really inaccessible to anyone who wants a cursory view of a field, i.e. can’t be asked to do exercise problems (a problem manifested in virtually every higher math Wikipedia page).
This isn’t so much a blog post on teaching, but on text materials. Those are an important part of teaching but often only a small part. In a classroom setting you also have a teacher that can input that “who cares” part, and that can motivate.
I think it’s a good point about text materials though. At the same time, many are geared towards being that reference material for a classroom…
I taught Intro to CS in Python at Idaho State University for one semester and a couple sections - we used this book:
It is geared towards the very beginner programmer, is free and open source, has examples you interact with built into the text, has collaboration features for asking and answering questions, and has example problems at the ends of chapters that range from easy to difficult. This was a fantastic book for the very beginner programmer and the student feedback reflected that.
I don’t think the proposed syllabus really achieves what the author says it does. In education, neat plans often have a way of imploding when they meet students.
As I see it, the “WHY!?” has two components:
The first is the hardest, especially if you have to teach a large group. Who’s to say they will be interested in your card game problem? Experience tells me most will see it as contrived.
As for the second, I’m fairly certain students will fail to generalise from solving one hyper-specific problem. Yes, you’ve taught them how to make a card game, but will they able to apply these tools to another problem?
Teaching is definitely easier when you can pair it with practical examples, but I think that’s how any decent teacher would teach the first syllabus anyway. People with no experience in education often like to armchair speculate on how it ought to be done, but the real problems in education tend to be systemic and institutional, which the teachers usually have no power to affect.
In my introductory robotics course we follow an approach similar to what he recommends, and although I loved the format and my students were overall very successful in the course, I noticed that other than a handful, students really struggled to take the previous material and apply it to a new domain. They tended to compartmentalize solutions versus seeing them as tools that could be used in other ways. It did improve some as we went but I think, like you said, that there are systemic issues that need to be addressed to change that kind of thinking. No CS course can be expected to overcome that without changes elsewhere too.
FWIW, this problem of “textbooks poorly motivating our tools” often comes up in higher mathematics, too. A lot of higher maths books are just like this – as a reader you get a bunch of definitions as a foundation, followed by chapters and chapters of theorems and new definitions using those foundations, but rarely are the foundations or theorems sufficiently motivated to the point where the reader can unironically say “ah yes, this is obviously useful.”
The way math books usually get around this problem is by, almost as an afterthought, having exercises at the end of each chapter. This offloads the discovery work of “what you would use this for” to the readers. But, unfortunately, the ubiquity of this approach makes a lot of mathematics really inaccessible to anyone who wants a cursory view of a field, i.e. can’t be asked to do exercise problems (a problem manifested in virtually every higher math Wikipedia page).
This isn’t so much a blog post on teaching, but on text materials. Those are an important part of teaching but often only a small part. In a classroom setting you also have a teacher that can input that “who cares” part, and that can motivate.
I think it’s a good point about text materials though. At the same time, many are geared towards being that reference material for a classroom…
I taught Intro to CS in Python at Idaho State University for one semester and a couple sections - we used this book:
https://runestone.academy/ns/books/published//thinkcspy/index.html
It is geared towards the very beginner programmer, is free and open source, has examples you interact with built into the text, has collaboration features for asking and answering questions, and has example problems at the ends of chapters that range from easy to difficult. This was a fantastic book for the very beginner programmer and the student feedback reflected that.