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 ...
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 ...
21
votes
Programming languages specifically designed for beginners
I would consider teaching in Python if you wanted to give your students a taste of programming in a text-based language—pretty much the only type of language used professionally. A visual programming ...
21
votes
Accepted
Programming languages specifically designed for beginners
Scratch is a visual block-based drag-and-drop programming language designed specifically for learners, especially children. It's created by the Lifelong Kindergarten Group at the MIT Media Lab.
The ...
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 ...
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
Accepted
Is it ok to use logic programming(like Prolog) as students' first language?
I do and am currently teaching a high school student Prolog but not as a first language.
Is it OK to use logic programming(like Prolog) as students' first language?
While you could do it I would ...
14
votes
What would be a good first choice to teach game programming to beginners?
For those interested in 3D (though, it can be used in 2D) game making with an engine, I would suggest teaching Unity. It's an engine and a platform for creating games.
Unity can be used with C# and ...
14
votes
Accepted
What can Snap! do that Scratch cannot?
The analogy is far from perfect, but Snap! is to Scratch as Mycroft is to Sherlock.
For me, the big advantage for Snap! is its provision of custom functions rather than just the custom blocks that ...
12
votes
What could be the possible advantages of teaching Scheme as first programming language?
Simplicity
You can write the definition of scheme on the back of a postage stamp. Therefore as @Buffy says, you don't have to learn the language at the same time as learning the concepts.
It is a ...
12
votes
Programming language for teenagers
I highly recommend checking out a language called Processing. Processing is designed for novices, and makes it easy to create visual and interactive programs without a ton of boilerplate.
Here's an ...
11
votes
Programming languages specifically designed for beginners
Processing probably ticks a lot of your boxes. It's essentially a framework built on top of Java and shipped with its own IDE (also free and open source). A lot of the boiler plate code that normally ...
11
votes
For a beginner, is it better to start with C or a higher level language?
Based on your history and preferences, you have a particular view about what it means to be a programmer. I have somewhat the same history, but come to a different conclusion. Start with a high level ...
10
votes
Programming languages specifically designed for beginners
The Racket team has argued that no language that is suitable for writing any real software is great for beginners: they contain too many warts, legacy features, complex corners, etc. And that includes ...
10
votes
What could be the possible advantages of teaching Scheme as first programming language?
Scheme is not that widely used in the industry, but that is not the point. The purpose of CS is not to teach you any particular language, but to teach fundamental concepts. When you know the ...
9
votes
What can Snap! do that Scratch cannot?
The middle column is Snap!.
In Snap! you can create your own C-shaped blocks, as well as functions (see range block), this is in addition to the procedures that can be done in scratch.
Note: I ...
9
votes
Programming language for teenagers
Tl;dr: use python. (Preferably python 3.)
Well, I’m a teenager in your age group, so hopefully I’m some level of qualified to respond.
I have to say as a bit of a disclaimer that python is my favorite ...
9
votes
Is it ok to use logic programming(like Prolog) as students' first language?
As Guy Coder says, Prolog doesn't help a lot with employment. But it goes a bit farther than that. As educators we normally teach students in CS how to build things. Logic Programming languages such ...
9
votes
Why do (all) professors teach C++ 11?
The advantage of C++ for teaching programming is that it is reasonably close to the actual raw workings of the computer whilst being high level enough to teach higher level concepts. The features ...
8
votes
Motivation for learning C++ when you know Java
I think you're having trouble justifying the study of C++ because of the way that you're thinking about it. If you are aiming towards the practical benefits, then you immediately get to the following ...
8
votes
Accepted
Thoughts on language for Intro to Data Science?
The biggest strength of R when it comes to Data Analysis is in its data visualization. As you've mentioned it is a more or less dedicated tool for statistical analysis.
The thing with Python is that ...
8
votes
Accepted
Teaching an absolute beginners class Operating Systems with Rust
Trying to learn many things at once: A language, an operating system, creating command line tools, compilation, etc. goes against cognitive load theory. That is why so many students fail. Keep it ...
7
votes
Accepted
Do I need Prolog to teach logic concepts?
Logic is a tool for distinguishing true and false statements. If a statement is proved, then it is true. If its negation is proved, then it is false. Hence the core skill is checking whether a proof ...
7
votes
Scheme vs Haskell for introducing functional programming
I suspect there'll be more universities switching from Scheme to Haskell for introductory functional programming (FP) courses, mainly for the 'real world' appeal of Haskell. I see 15 mentions of ...
7
votes
Programming languages specifically designed for beginners
I had great success by teaching kids (8 to 11 years old) to set up their sites. First, plain HTML to understand how model maps to presentation; then CSS to see how boring stuff can be factored out; ...
7
votes
Scheme vs Haskell for introducing functional programming
As the kids these days would say, you're doing it wrong.
Let me explain.
As I've commented elsewhere, every "full language" has a whole bunch of things that educators would find inconvenient or ...
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 ...
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 ...
7
votes
Accepted
Why do (all) professors teach C++ 11?
As a professor who teaches C++17/20(/23: mdspan for scientific computing): the 11 standard was the big evolution, and 14/17 are only minor improvements over it. If ...
6
votes
What can Snap! do that Scratch cannot?
The biggest features Snap! has that Scratch doesn't are first-class EVERYTHING and functions.
Scratch only lets you create custom command blocks, not reporter or Boolean blocks. This makes Snap! much ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
language-choice × 25curriculum-design × 4
self-learning × 3
programming × 3
java × 3
c++ × 3
secondary-education × 3
student-motivation × 2
scratch × 2
best-practice × 1
web-development × 1
functional-programming × 1
c × 1
javascript × 1
programming-paradigms × 1
operating-systems × 1
block-based-programming × 1
computer-history × 1
classroom-environment × 1
programming-environment × 1
assembly × 1
game-design × 1
scheme × 1
ruby × 1
snap × 1