We’re rewarding the question askers & reputations are being recalculated! Read more.
24

Two thoughts: I'd start with telling them why you think it's worth their time. Whatever I or anyone else says on here, you're the one who thought it would be fun and worthwhile, and you must have reasons for that. Your reasons are more authentic and probably more applicable to your students than our reasons will be. Just be straight with the kids about ...


12

Everyone uses high-level languages these days, and we let compilers do the grunt work. Block-based programming is just a kind of IDE with a slightly different autocomplete mechanism. Block-based code can be trivially transpiled to textual form. After they complete an exercise, you can have them perform that conversion to textual code or pseudocode. To ...


11

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 Scratch 2 offers - Snap! functions return values that can be passed to other functions and so on, making it much easier to implement mathematical ideas and to ...


11

You will probably want to look into Snap!. It was built upon Scratch and would probably meet your needs. This is from its About page: Snap! (formerly BYOB) is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your ...


11

You could use some environment that lets you switch between blocks and text and work in both. That way, students can see firsthand that the code in the blocks converts to textual "real" code. This can help them understand the leap. Here's one example of blocks switching with text on a Karel program on CodeHS (Note: I'm one of the founders of CodeHS)


10

Here's how I explained it to my students after teaching with App Inventor during a pre-college summer program: With textual programming languages, your program won't work if you have a semicolon or even a space character (in Python) out of place. This can be frustrating, especially for beginners. They might conclude that programming is about punctuation, ...


10

For context, I teach high school students as part of a 4-year high school computer science major. My students do, during their 4th year, a full-year project for a client who has a need. (The clients do not pay for this, they provide a client experience for our budding developers.) At the end, we have a big event with presentations, outside judges, and a ...


8

I was at this camp one summer, and it was a programming camp for building models of different systems. I was super excited - I'd already been programming on Khan Academy and Codecademy. So I walk in, and they say that we'll be using this language called StarLogo Nova. We open our chromebooks, go to the site - and I begin questioning things, because I figure ...


7

Here I would go to Microsoft's Project Spark (even though it is discontinued, I think it is still downloadable. I have a local copy, so I'm not sure. But it's worth a shot) Project spark is Microsoft's "experiment" as a game for making games. It is visual. And you can say block based. It's not like Scratch or Snap!, but it is visual. It makes game ...


6

Students use the colors for more than just interpreting the purpose of the block. In my introductory classes, the color assists early-learners with locating the blocks within an extensive collection of choices. When give a chunk of pre-existing code to recreate, a block's color helps communicate where in the collection to look for it.


6

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 could not get the last one to work, but some times you only need to get the image. However the others do work (fully functional).


5

I think @Ben I.'s suggestions are great, but let me present a completely different take. Don't prepare them for science fairs, prepare them for industry. Introduce them to git/open source/collaboration by creating an "open source" project on github, involving whatever languages you're using. Open issues and have students assemble into teams and work ...


5

Since you said that it is a "high poverty school," I assume that some students may have some financial/material needs... So, you could suggest the development of an app that allows the students to anonymously post things that they are in need of (a pair os shoes, one math book, food, ...) and let other more fortunate students (also anonymously) provide what ...


5

It isn't very "fun", but there are visual languages widely used in the industry. For example the FBD language. From Wikipedia: The Function Block Diagram (FBD) is a graphical language for programmable logic controller design, that can describe the function between input variables and output variables. A function is described as a set of elementary blocks....


5

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 more suitable for writing algorithms that rely on return values. In Snap!, everything is first class. You can pass around scalar values, lists, blocks (and ...


4

The colour of a block is a 'way in' for students, helping them to figure out what type of block they have. Ultimately, the important thing here is that there are logical categories of blocks—the colours just provide a way of visually showing what category a block is in, without an information overload of too much text. To Block or not to Block, That is the ...


4

You used two key words here: "persuade" and "convince." Let's approach this issue from the perspective of the three Aristotelian rhetorical appeals: logos, ethos, and pathos. Logos: Appeal to their reason as programmers. Have them create a program in Scratch or Snap!, and as they add each block, have them write the corresponding line(s) of code in a ...


4

Full disclosure: I'm generally not a fan of DnD programming languages in high school (maybe even late middle school) and I think DnD languages are frequently used by stem oil salesmen and used incorrectly so I'm frequently down on them. More disclosure: DnD languages can be real languages and can be properly and soundly used in educational settings. Ok, ...


3

Find a real project (or series of small projects) that your students can do, and build up their skills and resume's together. For example, back in 1988(ish), a high school computer class won a contract from the Canadian National Parks service to build a tourist kiosk system. It saved the parks service money, gave the students an industry project that they ...


3

First and foremost, don't let your feeling about their feelings affect your judgement. It seems to me that most kids want to learn new things, they want to be 'beta testers' and on the cutting edge. Visual programming is something relatively new, let them be an early adopter as this new form of programming matures. More importantly though, programming isn'...


3

A lot of people are talking about how visual scripting is a higher abstraction, and that's all the difference, and the debate has moved more to a question of "is visual scripting 'real' programming?" The general consensus appears to be that yes, DnD languages are still real languages, and sure, it's a higher abstraction, but what does that mean? There's a ...


3

I, too, was going to form part of my answer around the article Aurora shared on the development of Scratch. Snap! makes its debt to Scratch explicit. In the "About" section, the its creators discuss their design choices for that which is an extension from Scratch: Visual Representation for Advanced Ideas Part of the genius of Scratch is the way it ...


3

Student's Opinion Not a definitive answer by any means, but thought that I might add what I have learnt... I am 16, but first got exposed to block-coding at the age of 9. While I continued with more advanced forms and still make use of them (notably, LEGO Mindstorms), I grew out of block-coding very soon, and progressed to what one may call "real"-er ...


3

The main attraction of block-based programming languages is that they expose users to the fun aspects of programming (creativity and design) without requiring them to deal with the less fun aspects (such as syntax and obscure errors). This enables students who might have dropped out of an introductory C++ course to get a taste of programming, both to expand ...


2

Not strictly block based, but I like Codesters as a nice midway point. It has a DnD interface but the blocks you drop become Python code.


2

While I definitely recommend Snap!, for completeness sake you might take a look at: Scratch -- though w/o custom functions this may be limiting PencilCode -- a blocks+text environment around CoffeeScript GP (gpblocks.org) -- a desktop environment that looks similar to Scratch/Snap! But has dozens more blocks as well as a very interesting model for exploring ...


2

Code.org has a CS Principles curriculum available for free, and I think this would meet your needs. https://studio.code.org/courses/csp I've never used it with a class, but it starts with an implementation of blockly (https://developers.google.com/blockly/) and transitions to Javascript in Units 3 and 5. It also allows students to create apps, using ...


2

Real-world motivation I have a neutral opinion on visual programming. I have dabbled in it and decided that I am not interested. But. It is simply a tool. Tools are complicated to motivate. Just enter any room of programmers and give them the exercise to, once and for all, decide on whether vi or Emacs is better. You might as well ask them to choose the ...


2

Have your students write a visual programming editor. It sounds like your students are pretty savvy, so what better way to show them how awesome a visual editor can be than to have them build their own! There are many benefits to this approach. Relevancy They're creating software to make them more efficient at what they already do and love. Flexibility ...


2

Four relatively easy ideas would be to: Conduct periodic code reviews where you point out style issues like these. If you make code reviews a regular thing, the repetition should hopefully help students eventually start using functions independently. Since your students are in elementary school, this should obviously be a very lightweight and informal code ...


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