Texas Computer Science
  • Home
  • TEKS & Courses
    • State Requirements
    • Credits
    • Endorsements
      • STEM Endorsement
      • Business & Industry Endorsement
      • Multidisciplinary Studies Endorsement
    • Funding
    • Teacher Certification
    • Online CS Courses
  • Textbooks & Resources
    • State-Adopted Materials
    • More Textbooks & Curriculum
    • AP Computer Science Principles Resources
    • AP Computer Science A Resources
    • Assignment Ideas
    • Topic Resources
    • Connect CS Concepts to Other Disciplines & Real World
    • Visual Programming Environments
    • Robotics
    • Cybersecurity
  • Preparing & Thriving
    • Learn Java
    • Outline the Year
    • Instruction Methods
      • Pedagogy Best Practices
      • Flipped Classroom
      • Project Based Learning
    • Assessment & Grading
      • Daily Work: Programming Assignments
      • Formative Assessment
      • Summative Assessment: Tests & Projects
    • Classroom Management
    • Maintaining Your Sanity
  • Professional Learning
    • Trainings & Workshops
    • Professional Organizations & Networks
    • Blogs & Social Networking
    • Articles & Publications
    • Professional Awards
  • Student Opportunities
    • Student Contests
    • Student Camps & Learning Opps
    • College Degrees
  • Recruit & Advocate
    • Advocate at Your Campus
    • Encouraging Diversity in CS
    • CS Ed Week & Hour of Code
      • Hour of Code: CS Classes
      • Hour of Code: K-12
  • About
    • Presentations
  • Home
  • TEKS & Courses
    • State Requirements
    • Credits
    • Endorsements
      • STEM Endorsement
      • Business & Industry Endorsement
      • Multidisciplinary Studies Endorsement
    • Funding
    • Teacher Certification
    • Online CS Courses
  • Textbooks & Resources
    • State-Adopted Materials
    • More Textbooks & Curriculum
    • AP Computer Science Principles Resources
    • AP Computer Science A Resources
    • Assignment Ideas
    • Topic Resources
    • Connect CS Concepts to Other Disciplines & Real World
    • Visual Programming Environments
    • Robotics
    • Cybersecurity
  • Preparing & Thriving
    • Learn Java
    • Outline the Year
    • Instruction Methods
      • Pedagogy Best Practices
      • Flipped Classroom
      • Project Based Learning
    • Assessment & Grading
      • Daily Work: Programming Assignments
      • Formative Assessment
      • Summative Assessment: Tests & Projects
    • Classroom Management
    • Maintaining Your Sanity
  • Professional Learning
    • Trainings & Workshops
    • Professional Organizations & Networks
    • Blogs & Social Networking
    • Articles & Publications
    • Professional Awards
  • Student Opportunities
    • Student Contests
    • Student Camps & Learning Opps
    • College Degrees
  • Recruit & Advocate
    • Advocate at Your Campus
    • Encouraging Diversity in CS
    • CS Ed Week & Hour of Code
      • Hour of Code: CS Classes
      • Hour of Code: K-12
  • About
    • Presentations

Instruction Methods

Picture
When I took Computer Science classes in college, all of my professors lectured while I took notes or followed along in the textbook.  If this is how you learned Computer Science, then lecturing might seem like the most natural way to teach your classes.  

In your first year teaching Computer Science, you will likely have three or four (or more!) different courses to prepare for, so it is understandable that you may start out with a lecture approach.

However, there are many different ways to engage students in Computer Science instruction.  As you get a feel for the content in all of your classes, implement some of the other instruction methods described below.


Lecture
  • Teacher lectures or demonstrates a programming concept using the computer, document camera, interactive whiteboard, or dry erase board
  • Students listen, watch, take notes, for follow along with a handout or textbook
  • Teacher and students may ask and respond to questions

I always found that I learned a lot when preparing for a lecture, and I felt really confident with the topic after giving the lecture or demonstration three or four times.  And this makes sense because I was the one doing all of the work!

I also found that my students understood the least when the instruction method I chose was a lecture followed by a programming assignment.

  • Tips for Lecturing, from CS Teaching Tips


Picture
Manipulatives, Toys, and Stories
  • Teacher uses manipulatives while describing a programming concept that help students connect the concept to something in their world

When I started using manipulatives, such as toys, boxes, and egg cartons, to explain programming concepts, I could tell that students were making better connections to the topic.  The manipulative gave them a visual representation of the programming concept.  I encourage you to use manipulatives when teaching Java.  Try to have enough of each manipulative so that every student or pair of students can have one.

I also read my students Dr. Seuss stories that related to programming concepts.  My high school students were genuinely excited, and they remembered the stories' connections to programming.

Teaching Computer Science Using Toys Google Drive folder: Ideas for using manipulatives, toys, and stories, as well as more student involvement activities

Type-Along
  • Create a program together so students can experience the code as it is developed, rather than always analyzing a complete program.
  • Instruct the students to type the program bit by bit. Each section compiles and displays information so students feel accomplishment as they learn what the section of code does.
  • Occasionally instruct students to type code that generates compiler errors for discussion purposes.
  • Ask students to vote on whether a particular piece of code will work or to shout out what they think will be displayed.


Type-alongs helped my students develop problem-solving skills as they heard other students describing aloud why a piece of code generated an error and how to fix it.  These activities created community in my classroom, as well.  Computer Science classes can be very isolating, and through type-alongs, students began to view programming as a was to learn with and from classmates.
Picture

Picture
Partner Practice
  • Create a fill-in-the-blank program. Blanks are put in place of important keywords.
  • Students work in pairs to complete the program on paper. Students are allowed to use their notes and example programs to help fill in the blanks.
  • Circulate as pairs are working to check each pair’s level of understanding.
  • When everyone has finished, fill in the blanks together.

Pair Programming
  • Students work in pairs to complete a programming assignment.


When students are working in groups, I think every teacher is worried at one time or another about whether students are cheating or whether one group member isn't pulling his or her weight.  It can be argued that every students should be able to demonstrate every concept on his or her own in order to complete the course.

However, along the way, I found that partner practice and pair programming were incredibly effective ways for students to learn with and from each other.  Students were more confident about their programming ability, perhaps because their ideas were being validated by a peer.  Students had <gasp> fun debugging their programs with a partner.  Working with a partner is not a motivator for all students, but it is a great instruction method to include in your classroom repertoire.

  • Tips for Pair Programming, from CS Teaching Tips
  • How to use Pair Programming video by Code.org


Picture
Flipped Classroom
  • Outside of class, students watch a video, usually created by teacher.
  • Outside of class, students respond to questions posed by the teacher about the content.  This helps the teacher understand what topics are still not clear to students.
  • In class, the teacher clarifies points the students did not understand from the video and/or engages students in discussion/interaction about the topic of the video.
  • In class, students work on an assignment related to the topic, such as a programming assignment.
  • In class, the teacher provides additional help to students who need more one-on-one assistance.

See the Flipped Classroom page of this site for more information about flipping some of your Computer Science content.

Peer Instruction
  • Practice: Peer Instruction - Rochester Institute of Technology Teaching & Learning Services

Process Oriented Guided Inquiry Learning
  • CS-POGIL Process Oriented Guided Inquiry Learning in Computer Science + Overview & Sample Activity presentation by Clif Kussmaul & Tammy Pirmann
  • POGIL-CSP Community of Practice
Powered by Create your own unique website with customizable templates.
  • Home
  • TEKS & Courses
    • State Requirements
    • Credits
    • Endorsements
      • STEM Endorsement
      • Business & Industry Endorsement
      • Multidisciplinary Studies Endorsement
    • Funding
    • Teacher Certification
    • Online CS Courses
  • Textbooks & Resources
    • State-Adopted Materials
    • More Textbooks & Curriculum
    • AP Computer Science Principles Resources
    • AP Computer Science A Resources
    • Assignment Ideas
    • Topic Resources
    • Connect CS Concepts to Other Disciplines & Real World
    • Visual Programming Environments
    • Robotics
    • Cybersecurity
  • Preparing & Thriving
    • Learn Java
    • Outline the Year
    • Instruction Methods
      • Pedagogy Best Practices
      • Flipped Classroom
      • Project Based Learning
    • Assessment & Grading
      • Daily Work: Programming Assignments
      • Formative Assessment
      • Summative Assessment: Tests & Projects
    • Classroom Management
    • Maintaining Your Sanity
  • Professional Learning
    • Trainings & Workshops
    • Professional Organizations & Networks
    • Blogs & Social Networking
    • Articles & Publications
    • Professional Awards
  • Student Opportunities
    • Student Contests
    • Student Camps & Learning Opps
    • College Degrees
  • Recruit & Advocate
    • Advocate at Your Campus
    • Encouraging Diversity in CS
    • CS Ed Week & Hour of Code
      • Hour of Code: CS Classes
      • Hour of Code: K-12
  • About
    • Presentations