AP Computer Science A Course Home Page
http://apcentral.collegeboard.com/apc/public/courses/teachers_corner/4483.html
Tips:
Introduce a new concept by having students modify existing, well-defined programs before writing programs from scratch.
http://www.csteachingtips.org/tip/introduce-new-concept-having-students-modify-existing-well-defined-programs-writing-programs
Prepare example projects and code to inspire students and clarify expectations.
http://www.csteachingtips.org/tip/prepare-example-projects-and-code-inspire-students-and-clarify-expectations
Allocate the last 15 minutes of class for students to share their work with each other in beginning Scratch classes because students enjoy seeing each others projects and demonstrating their progress.
•This activity provides an opportunity for you to model appropriate feedback, responses, and constructive criticism.
http://www.csteachingtips.org/tip/allocate-last-15-minutes-class-students-share-their-work-each-other-beginning-scratch-classes
Install the offline editor on student machines in your Scratch course in case the online editor is not available.
http://www.csteachingtips.org/tip/install-offline-editor-student-machines-your-scratch-course-case-online-editor-not-available
Professor Colleen Lewis’ online Scratch curriculum
http://blogs.hmc.edu/lewis/scratch
http://colleenmlewis.com/scratch_offline
Create a classroom routine where students write regularly using a discussion board to help students get practice writing …
http://www.csteachingtips.org/tip/create-classroom-routine-where-students-write-regularly-using-discussion-board-help-students-get
Pick an article from the ACM TechNews newsletter for students to read, summarize, and write a reflection on …
http://www.csteachingtips.org/tip/pick-article-acm-technews-newsletter-students-read-summarize-and-write-reflection-find-relevant
Break necessary skills for students down to a meaningful difficulty level to motivate students designing games.
http://www.csteachingtips.org/tip/break-necessary-skills-students-down-meaningful-difficulty-level-motivate-students-designing
Tell students to experiment and break things so they maximize their learning opportunities and exposure to different aspects of Scratch to gain experience and build competency.
http://www.csteachingtips.org/tip/tell-students-experiment-and-break-things-so-they-maximize-their-learning-opportunities-and
Ask students “What were you trying to do?” when they ask for help to help answer their own questions because they may already have the skills to debug their own Scratch programs.
http://www.csteachingtips.org/tip/ask-students-%E2%80%9Cwhat-were-you-trying-do%E2%80%9D-when-they-ask-help-help-answer-their-own-questions
the coordinate system
Show students what code looks like with and without loops to motivate the reasons for using them.
http://www.csteachingtips.org/tip/misconception-students-get-confused-reconciling-coordinate-system-point-scratch-uses-center
Mention to students that individual blocks in Scratch and Snap can be tested by double clicking them in the block library so they know this useful, non-intuitive trick for learning what an individual block does.
http://www.csteachingtips.org/tip/mention-students-individual-blocks-scratch-and-snap-can-be-tested-double-clicking-them-block
Scaffold students through reverse engineering existing Scratch projects to help them gain competency in important concepts like message passing, variables, and event-based programming.
http://www.csteachingtips.org/tip/scaffold-students-through-reverse-engineering-existing-scratch-projects-help-them-gain
Give students guided notes (i.e., partially-completed notes that students complete) to help them stay engaged and learn from lectures or readings.
http://www.csteachingtips.org/tip/give-students-guided-notes-ie-partially-completed-notes-students-complete-help-them-stay-engaged
Check out the Computing At School website for resources for a variety of CS courses.
http://www.csteachingtips.org/tip/check-out-computing-school-website-resources-variety-cs-courses
regular expressions
Prototype Makey Makey, a simple invention kit for the classroom that helps students turn everyday items into keyboard buttons, to bring Scratch programming projects into the real world and engage your students.
http://www.csteachingtips.org/tip/prototype-makey-makey-simple-invention-kit-classroom-helps-students-turn-everyday-items-keyboard
Have students make a simple, one-level game with a dog, a cat, and a mouse to teach them basic CS skills as their first major Scratch game/project.
http://www.csteachingtips.org/tip/have-students-make-simple-one-level-game-dog-cat-and-mouse-teach-them-basic-cs-skills-their
Organize curriculum around building a one-level mini-game to introduce elementary school students to introductory computer science.
http://www.csteachingtips.org/tip/organize-curriculum-around-building-one-level-mini-game-introduce-elementary-school-students
visual programming language
Start the day with students pair programming and then split them up; it makes later collaboration natural and reduces frustration.
http://www.csteachingtips.org/tip/start-day-students-pair-programming-and-then-split-them-it-makes-later-collaboration-natural-and
Have students create games that mimic those they play in real life.
http://www.csteachingtips.org/tip/have-students-create-games-mimic-those-they-play-real-life
Teach the concept of a variable’s scope in Scratch by explaining the difference between “For this sprite only” and “For all sprites.”
http://www.csteachingtips.org/tip/teach-concept-variable%E2%80%99s-scope-scratch-explaining-difference-between-%E2%80%9C-sprite-only%E2%80%9D-and-%E2%80%9C-all
Use Snap! as a more advanced alternative to Scratch in an introductory programming course.
https://snap.berkeley.edu
http://www.csteachingtips.org/tip/use-snap-more-advanced-alternative-scratch-introductory-programming-course
Create pain points for material you want to introduce that motivate the need for abstraction and programming language features so that students realize the need for concepts before you introduce them.
http://csteachingtips.org/tip/create-pain-points-material-you-want-introduce-motivate-need-abstraction-and-programming
Have students sign a “Computer Use Agreement” before giving them access to machines to hold them accountable for using computers responsibly.
http://csteachingtips.org/tip/have-students-sign-%E2%80%9Ccomputer-use-agreement%E2%80%9D-giving-them-access-machines-hold-them-accountable
To integrate CS with other disciplines, have students write algorithms for activities they’re already doing for other classes.
http://csteachingtips.org/tip/integrate-cs-other-disciplines-have-students-write-algorithms-activities-they%E2%80%99re-already-doing
Gradually increase the grading strictness about styling to help students become more meticulous about naming and documentation.
http://csteachingtips.org/tip/gradually-increase-grading-strictness-about-styling-help-students-become-more-meticulous-about
Use CodePen and jsFiddle to teach web development.
http://codepen.io
http://csteachingtips.org/tip/use-codepen-and-jsfiddle-teach-web-development
When teaching really difficult or confusing materials like Javascript, quizzes can really help reinforce covered topics.
http://csteachingtips.org/tip/when-teaching-class-especially-outside-school-environment-use-sticker-badges-or-free-1-month
Examples in intro textbooks can be boring; create your own examples to match your students’ interests.
http://csteachingtips.org/tip/examples-intro-textbooks-can-be-boring-create-your-own-examples-match-your-students%E2%80%99-interests
Judge students’ participation along multiple dimensions, rather than prioritizing one dimension like accurate execution of procedures,
http://csteachingtips.org/tip/judge-students%E2%80%99-participation-along-multiple-dimensions-rather-prioritizing-one-dimension
cf: a rubric
Seven Big Ideas in Robotics, and How To Teach Them
David S. Touretzky
Computer Science Department
Carnegie Mellon University
SIGCSE’12, February 29–March 3, 2012, Raleigh, North Carolina, USA.
Copyright 2012 ACM
Click to access Touretzky-SIGCSE-2012.pdf
Encourage students to develop solutions in their natural language before considering syntax to improve their general problem solving abilities.
•Consider requiring that your students turn in a pseudocode solution to an assignment before allowing them to begin programming.
http://csteachingtips.org/tip/encourage-students-develop-solutions-their-natural-language-considering-syntax-improve-their
Terminus
http://www.mprat.org/projects/terminus
Have students turn in an “exit slip” at the end of class before they leave each day to demonstrate what they learned.
Employ vocabulary lists in class so that students who are uncomfortable asking about terms are not at a disadvantage.
Students are used to viewing computers from a user’s perspective, which may conflict with using them as a programmer.
Use metaphors to describe how concepts work.
Motivate your students by setting goals and connecting with them individually.
Model how breaking down a problem into bite-size pieces can be an important tool for success.
Use popular, repetitive music to teach loops in a beginning course because this motivates the purpose and application of loops while keeping students engaged by referencing popular culture.
http://www.csteachingtips.org/tip/use-popular-repetitive-music-teach-loops-beginning-course-because-motivates-purpose-and
Students who observe a peer or role model succeed at a task believe more in their ability to do the same.
https://www.facebook.com/csteachingtips
You will learn a lot by looking at examples, tweak them, clone and modify them, etc.
https://courses.edx.org/courses/course-v1:W3Cx+W3C-HTML5+2015T3