159
votes
How bad is a Computer Science course that doesn't teach Design Patterns?
There is more to a CS degree than programming and more to programming than Design Patterns. I'm actually an expert in such things and have designed and published a few as a committed member of the ...
55
votes
What are healthy, productive ways to encourage students to progress to more advanced constructs as opposed to staying with the familiar?
I'm afraid that there is no single silver bullet. The problem you've pointed to is very real, and isn't limited to students. All of us tend to stick to our own familiar toolsets because, well, it's ...
54
votes
What controversies in computer science education exist today?
There is a big controversy about the purpose of "Computer Science" education specifically. This controversy has become hotter the the last few decades as CS has come to the fore as an ...
52
votes
How bad is a Computer Science course that doesn't teach Design Patterns?
Buffy's answer perfectly addresses your question about design patterns. I would just like to add a bit of perspective about CS curricula in general.
Computer Science (CS) is very young compared to ...
44
votes
How can I convince my fellow CS teachers that reaching every student is a worthwhile goal?
Please don't...
...give the students who are ahead more of the same kind of work to do. Please. That's just boring. If they get it, they get it.
...make groups by mixing the students who are ahead ...
35
votes
Accepted
What could be the possible advantages of teaching Scheme as first programming language?
I think that the purpose of such a course is not to teach you a language. After all, Scheme, with its abstract syntax, is pretty minimal as a language. The purpose of a course like that is to teach ...
33
votes
How bad is a Computer Science course that doesn't teach Design Patterns?
It has been well known for decades by anyone coming out of University that, as you say, "the problems in the real world, both in academia and in the industry, can be more easily handled with a good ...
31
votes
Students can solve programming exercises but not explain their solutions. What to do?
I have seen my share of this 'program gets output' but the programmer has no clue how she/he got there. It's funny how that happens so many times.
This is what I have done to at least handle the ...
27
votes
How important is learning Binary for first-year college students?
I see no reason to teach binary in an introductory programming class. It is not generally needed (see exceptions below) when programming in high-level languages, which is usually what is taught to ...
27
votes
What controversies in computer science education exist today?
I just did a quick scan of the SIGCSE-MEMBERS mailing list for the past year and nothing stands out.
The language wars continue to smolder with some balkanization (Java, Python, C#, JavaScript, ...) ...
26
votes
What are healthy, productive ways to encourage students to progress to more advanced constructs as opposed to staying with the familiar?
I'm not sure the following will work for all students, but I remember this being a transformative "aha" moment in my own education:
Show them your code.
Preferably contrasted against a functioning ...
25
votes
Accepted
How important is learning Binary for first-year college students?
Binary is fundamental to programming, but this has a lot more to do with logic than just with data storage.
Computers work on "yes greater than no" or "no greater than yes." There are only two ...
25
votes
On studying Computer Science vs. Software Engineering to become a proficient coder
You can find a fair amount of information about accredited programs in the US here, including links to schools that have one or the other programs.
In general, Software Engineering is more directed ...
24
votes
Accepted
Students can solve programming exercises but not explain their solutions. What to do?
If I understand your problem correctly, it's that students can create programs that behave correctly without understanding why they behave correctly. I assume that they do this by some combination of ...
24
votes
What could be the possible advantages of teaching Scheme as first programming language?
There's one more reason I'd like to add to those here, less high-minded, but also a genuine consideration. One of the practical difficulties of teaching an introductory course is that the students ...
24
votes
How do you teach Big O to high schoolers with varying degrees of math exposure?
One good overall educational strategy is to teach the same thing to students repeatedly, using a Spiral approach, in which each turn of the spiral teaches at a deeper level. Don't expect the students ...
23
votes
Should assembly language be taught in an introductory course (or soon after)?
I think there is very limited benefit in teaching assembly so early, and it's more likely to just scare away your students.
When I started learning programming, I thought bare-metal OS development ...
23
votes
What program follows "hello, world"?
When I was teaching and mentoring first-time students, what got them really excited for the first time was seeing their name in lights. Write a program that allows a student to enter their name, then ...
20
votes
Accepted
How to teach students not to use jump statements
I don't believe that your question is entirely valid; some languages require jumping. The first principle, therefore, is to follow the norms of your language.
However, I suspect that you are asking ...
20
votes
Accepted
The impact of switching to Java 10
General overview on updating to Java:
First, a general observation about updating to Java. Previous versions of Java used to be released about once two years or so. As of 2017, Java has switched to a ...
18
votes
What controversies in computer science education exist today?
One controversy within my department is whether it is a good idea to take time to both teach about and enforce the very basics of coding style. (Think indentation, variable naming, vertical spacing, ...
17
votes
What could be the possible advantages of teaching Scheme as first programming language?
Every second you spend explaining a programming language is a second you are not teaching programming, software development, software engineering, software design, or computer science.
You can teach ...
16
votes
What are healthy, productive ways to encourage students to progress to more advanced constructs as opposed to staying with the familiar?
There are a number of facets to this question. But the first thing you need to remember is that students (like anyone) will tend to apply solutions that they are most familiar with. In the student ...
16
votes
What controversies in computer science education exist today?
There is debate over how to respond to students' changing mental model of files and directories (as highlighted in a recent Verge article.) This doesn't solely affect computer science education, but ...
15
votes
What ethical practices do students (as potential software engineers) need to be trained in?
I'm going to begin by quoting Ken Thompson's Turing Award Lecture "Reflections on Trusting Trust" (link).
To what extent should one trust a statement that a program is free of
Trojan horses? ...
15
votes
What could be the possible advantages of teaching Scheme as first programming language?
With Scheme, you start teaching programming concepts on day 1 - and also implementing them as working code on day 1.
With a typical procedural language (C++, Java, etc) you first have to crawl ...
15
votes
How bad is a Computer Science course that doesn't teach Design Patterns?
Buffy has stated much of what I would have, so I won't repeat. But do read that answer carefully.
The first point is, university is for proper formal education, which means heavy theory and less ...
14
votes
What are healthy, productive ways to encourage students to progress to more advanced constructs as opposed to staying with the familiar?
Rather than trying to motivate the students, or the reluctant ones, to progress into using your new tool (foreach after for), ...
13
votes
What program follows "hello, world"?
I did a (rather unscientific) study of a few popular tutorials for Python to see what they did after "Hello, world":
Learn Python the Hard Way introduces expressions (...
13
votes
What belongs in a low-math undergraduate AI elective besides ML?
I took both the AI and (basic) ML undergrad courses at Princeton and currently teach an AI elective at the HS level for some very bright students. I've seen some good online material from Berkeley (...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
curriculum-design × 108secondary-education × 12
undergraduate × 11
lesson-ideas × 8
resource-request × 8
best-practice × 8
self-learning × 5
student-motivation × 5
java × 4
object-oriented-paradigm × 4
language-choice × 4
artificial-intelligence × 4
exercises × 3
c × 3
differentiation × 3
variables × 3
ethics × 3
programming × 2
project × 2
introductory-lesson × 2
adult-education × 2
web-development × 2
functional-programming × 2
coding-style × 2
resource-information × 2