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 ...


9

TL;DR Teach CS50 AP. I taught AP CSP this past year, and I cannot speak highly enough for the curriculum that CS50 has written for this course. I'll try to enumerate its strengths as objectively as possible: It actually feels like a legitimate AP course in the sense that it is a college course (the most popular one at Harvard and I believe the most popular ...


8

I introduce C macros as a convenient way of using a single source file that can be used both when debugging code in development and for final delivery, without having to edit and and edit out test/debug code. I am doing it, in particular, in the context of using the compiler development tools flex and bison, but it would be equally valid when using just C. ...


7

Code.org is definitely meant to introduce more and more students to Computer Science. Students who are already familiar with the basics and want to learn more are likely to get bored with Code.org. We have instructors who use CS50 AP curriculum which serves as a great pre-req to what students will learn in college. The assignments focus on algorithms, ...


6

Yes, there is an email group dedicated to CS50 AP administered by Harvard. Reach out to the CS50 AP team (info here), and they will get you connected there. It has been an invaluable resource for me the past two years as I’ve been teaching their curriculum. Feel free to reach out (and post here!) if you have further questions about CS50 AP. I am a strong ...


6

The APCS community maintains an active web site and mailing list. It has many users who ask and answer many questions. Start here to learn more: https://apcommunity.collegeboard.org. Find your community from there. Note that the site has separate lists for APCSA and APCSP. You can join several of the communities. You need to join (free) and then just ask ...


5

This seems to me to be the sort of topic that is best covered with an assignment such as Write a paper, citing resources, on the topic of XYZ. There are a number of other things that can be addressed this way. One advantage of such an assignment is that students have to write using natural language, which often gets too little attention in technical ...


4

Your curriculum for CS Principles should evolve over time as your students' background evolves over time. If your students' background is not evolving from year to year, your district is implementing CS too late in the K-12 sequence. That is, if your AP CSP is a 10th grade course, a 2017 crop of 10th graders might be new to programming and you can softball ...


4

Just wanted to chime in here. I'm a bit biased as one of the founders of CodeHS, but I think you should take at look at the CodeHS AP CS Principles course we made. Here are a number of reasons why I think it's pretty great: It's free. You just need a free CodeHS account to track and save your work. Students and teachers can access the entire course for free,...


4

Have students analyze data about the inequity of access to computing resources, and facilitate the discussion of an assigned reading. Here's one procedure for doing that: Students could be asked to read an article (ideally containing tables or figures with large amounts of data with analysis in the text of the article) and write a few sentences about an ...


3

I don't have criteria with evidence that are indicators of success, but I have some I use that can indicate the lack thereof. At my school, although we are not allowed to specify prerequisites for our courses, the other programming teacher and I "vet" prospective programming students using data from students' literacy and math history (the two of us ...


3

Don't imagine that this problem is rare or that it is caused because the students don't "get it." Often they get it all too well. It is common in learning a new thing to base your understanding on what you already know about other things. This is just the sort of error I made myself as a beginning programmer, basing Fortran stuff on what I already knew about ...


3

As always with javascript, show the right&wrong: Show them, using the exact piece of code from your example, but add another line: var greeting = "Hello "; var first_name = prompt("What's your first name?"); var last_name = prompt("What's your last name?"); var reply = greeting+" "+last_name+", "+first_name; console.log("reply"); console.log(reply); ...


3

It is useful to create a macro to compute the maximum operation. The advantages of a macro over a function are: performance (which we all know is important to C programmers, although they can use an inline function) polymorphism (C won't allow you to have a single or multiple functions named max for different numeric types) The implementation turns out to ...


3

I work for UTeach CSP and as far as I understand, the College Board released has results to endorsed providers from 2017-2018 (meaning projects like CS50 and CodeHS aren't included because they were approved after the beginning of the year). They are not planning to release the scores themselves, but leaving it up to providers to share. Below are links to ...


2

I never explicitly assign homework. It's easier on everyone, and I don't think that they're getting that much out of homework anyway. We spend a majority of our in class time working on labs and projects. What I noticed is that most confusion can be cleared up with a 30 second conversation with me or another student. If the same thing came up at home it ...


2

My students are already slammed with homework, so when possible, I try not to add to their misery. I have done some formal polling of my students several years back, so I have used real data to balance my own approach. Of course, as of this writing, I cannot find those numbers any more, so I will be working from rough memory here: I mentally aim for 50% ...


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

Personal disclaimer: the best preparation for the exam is first to ensure that students master course content. If you have an AP CSP-aligned curriculum, then every day is a day of exam preparation. This touches on the biggest struggle I felt as a first-year AP teacher: am I teaching them computer science, or am I preparing them for a computer science exam? ...


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

This won't make a direct suggestion about criteria, but I think is an important note to guide your "admission" process. I doubt that you will find much reputable repeatable research to guide you, so a suggestion like this one (Java Jive) combined, perhaps with an aptitude test or an application for admission with an essay (What do I hope to gain from this ...


2

I really like Ben's answer, but I wanted to add my two cents: Like Ben and others have mentioned, Conway's Game of Life provides a "wow" factor that's useful in and of itself. It's simple to understand, and easily leads to pretty patterns and cool animations. This inspires students to want to play around with the code, which by itself is pretty valuable. ...


1

I would use it as an introduction / teaser about Finite Element Analysis. FEA is commonly used to simulate air / water flow in / around various shapes. Like GoL, the math for each cell is fairly straightforward but the resulting behaviors observed are much more complex. FEA is also used to map / model wave propagation through various fluids. On a more ...


1

I'm not sure that AP CS Principles has a lot of direct relation to Conway's Game of Life, but nevertheless there is real value in introducing it, and it ultimately features pretty prominently in my program. First off, as you pointed out, it is plenty of fun to watch, so you can spend some time creating glider guns and exploders. You can ask the students to ...


1

Both UTeach and Code.org have released their scores. 83% of UTeach students passed, 73% of code.org students passed. UTeach also published the results of females and underrepresented minority groups. In all categories, a higher percentage of UTeach students passed than the national averages. I've been trying to find released data from the others and I can'...


1

Note: I'm one of the founders of CodeHS We made a free review course on CodeHS that you can try out. It has hundreds of practice multiple choice problems broken down by topic as well as a complete practice exam. In particular, it's helpful to practice answering questions that use the pseudocode language because it has some quirks and may be new to students....


1

Timed and multiple choice means that the students have to work quickly. This means that there is a simple (easier said then done) solution: improving their quick thinking skills. There are many different ways to improve quick thinking but i think that a very nice way to practice this is to give your students code with no comments and ask them to debug it, ...


1

On CodeHS we have a block-to-text based programming environment and a full curriculum for AP CS Principles that you can use for JavaScript. It has a unit to teach JavaScript, including functions and lists among other topics, and also starts with a unit on Karel the Dog. Karel the Dog is a JavaScript implementation of the Karel programming language, which is ...


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