Skip to content

Latest commit

 

History

History
102 lines (71 loc) · 5.03 KB

lesson_03.md

File metadata and controls

102 lines (71 loc) · 5.03 KB

Lesson 0.3: Programming languages

Learning objectives

Students will be able to...

  • Complete small coding tasks (Hour of Code).
  • Explain why computer programs are written in specialized languages.

Materials and preparation

Video resources

Pacing guide

Duration Description
5 minutes Welcome, attendance, bell work, announcements
5 minutes Introductory discussion
35 minutes Coding activities
10 minutes Debrief and wrap-up

Instructor's notes

Introductory discussion

Introduce students to the concept of a Computer program: a sequence of instructions or steps, written in a language that can be understood by a computer, that will be used by the computer to complete a task or solve a problem.

  • Ask for any programming languages students are familiar with (even just names).
  • Draw distinctions between proper programming languages and other types of languages (such as markup languages e.g. HTML).

Lead the group to develop expectations about what aspects of programming might be most challenging and what skills might be most useful to be successful.

Guiding questions

What are the steps required to write a computer program?

  • This is essentially developing an algorithm for writing a program.

What knowledge might make writing a program easier? What might you need to do when writing a computer program that you have never or rarely done before? What parts of programming are most intimidating or scary? What are you good at that might help you be a better programmer?

Activity

Students should work through one of the Hour of Code activities of your choice.

  • Choose one activity as the requirement, and leave another for those who finish quickly.
  • Allow students to struggle with the activities if needed, stressing the importance of patience and persistence in programming.
  • Have students submit the certificate of completion of their hour of code to the instructor.
    • Remote Guidance: The certificates can be submitted digitally upon completion.

Debrief

Guide students in a discussion about the activities. Some sample guiding questions:

  • What was most challenging?
    • Put special emphasis on the iterative nature of programming, and the need to occasionally throw out a partial solution and start over.
  • What was different about solving these problems than solving other problems encountered in school?
  • Why can instructions not be given in simple English? Why must we be limited to certain operations from which we must build up solutions?
    • If students seem interested, this can be an opportunity for a brief conversation about the difference between high-level programming languages and machine languages (assembly code).

Accommodations and differentiation

If students appear to be frustrated enough to not be enjoying the activity, provide a step in the right direction and remind them that programmers rarely create a correct program on the first try.

University of California - Berkley teacher support resources

BJC Lecture 5: Programming Paradigms

  • Dilemma of Being a Cyborg 0:00-2:30
  • Programming Paradigms 2:30-3:50
  • Snap! BYOB (Hybrid) 3:55-4:45
  • Functional Programming (Cascading Values) 4:50-5:35
  • Imperative/Sequential 5:41-8:35
  • Object Oriented Programming (OOP Basic Explanation) 8:40-15:45

OOP Ex: Sketch Pad Dr. Ivan Sutherland "Father of Computer Graphics" 15:45-22:10

  • OOP in BYOB (Demo of Functions in BYOB) 22:35-29:20
  • Declarative Programming 29-22-31:20
  • Declarative Programming Examples in BYOB 31:25-35:20
  • Review of Paradigms 35:25-end