Lesson Plans – Week of 2018-02-25

Lesson Plans – Week of 2018-02-25

  • (1 A/B) Principles of Applied Engineering
  • (2A) Computer Science 1
  • (2B) Computer Science 2
  • (3A) Robotics 1 / Robotics 2 / FTC 11242
  • (3B) Robotics 1 / Robotics 2 / FTC 12645
  • (4A) Computer Science 1
  • (5 A/B) Principles of Applied Engineering

Eric Evans – Planboard Week – 2018-02-25

Deques of Python Stories

I was introducing deques in my Computer Science 1 class today in Python and decided to tell a story around the lesson. I figured I would share as this seemed to sink-in with my classes.

Zara loves Computer Science and using technology. She is hosting a party with several of her friends and wants to have their names displayed on the screen in the order they arrived and then remove them when they depart.

The friends of Zara are:

  • Alice
  • Betty
  • Christy
  • Darla
  • Elizabeth
  • Fran
  • Ginger
  • Holly

Alice, Betty and Christy arrive at the party at the same time and enter in that order.

from collections import deque
myGuestList = deque(["Alice", "Betty", "Christy"])
print(myGuestList)

At this point, we have 3 guests at the party: Alice in index 0, Betty in index 1, and Christy in index 2.

Darla and Elizabeth arrive at the party at the same time and enter in that order.

myGuestList.append("Darla")
myGuestList.append("Elizabeth")
print(myGuestList)

We now have 5 guests at the party: Alice in index 0, Betty in index 1, Christy in index 2, Darla in index 3, and Elizabeth in index 4.

Alice and Betty H-A-T-E Elizabeth. Almost instantly upon seeing her name on the screen, they both leave the party.

myGuestList.popleft()
myGuestList.popleft()
print(myGuestList)

We now have 3 guests at the party: Christy has now moved to index 0, Darla has moved to index 1, and Elizabeth has moved to index 2.

Ginger and Holly arrive at the party at the same time and enter in that order.

myGuestList.append("Ginger")
myGuestList.append("Holly")
print(myGuestList)

We now have 5 guests at the party: Christy is in index 0, Darla is in index 1, Elizabeth is in index 2, Ginger is in index 3, and Holly is in index 4.

Regretfully, Holly had been to another party before coming to Zara’s party and gets sick when she gets inside and has to leave.

myGuestList.pop()
print(myGuestList)

We now have 4 guests at the party: Christy is in index 0, Darla is in index 1, Elizabeth is in index 2, and Ginger is in index 3.

Elizabeth is Holly’s sister and leaves to take care of her sister and possibly ridicule her for her choice of the day.

del myGuestList[2]
print(myGuestList)

We now have 3 guests at the party: Christy is in index 0, Darla is in index 1, and Ginger who has moved to index 2.

Zara realizes that while the computer shows 3 guests at the party, there are 4 guests there. Somehow, Fran came in right after Elizabeth and did not get entered into the computer during the “drama” between Alice and Betty with Elizabeth. Fran needs to be entered into the correct location.

myGuestList.insert(2,"Fran")
print(myGuestList)

We now have 4 guests at the party: Christy is in index 0, Darla is in index 1, Fran in index 2, and Ginger who has moved to index 3.

Zara realizes that there is one person who has been there the entire time, but is not on the list – herself. Since she has been there the entire time, she should be placed at the bottom of the deque.

myGuestList.appendleft("Zara")
print(myGuestList)

We now have 5 people at the party: Zara is in index 0, Christy moves index 1, Darla moves to index 2, Fran moves to index 3, and Ginger moves to index 4.

Everyone, including Zara agrees that the party is pretty lame and that there is a better party down the street. So, everyone is going to leave the party.

myGuestList.clear()
print(myGuestList)

We now have nobody at the party and the deque is empty!

Lesson Plans – Week of 2018-02-18

Lesson Plans – Week of 2018-02-18

  • (1 A/B) Principles of Applied Engineering
  • (2A) Computer Science 1
  • (2B) Computer Science 2
  • (3A) Robotics 1 / Robotics 2 / FTC 11242
  • (3B) Robotics 1 / Robotics 2 / FTC 12645
  • (4A) Computer Science 1
  • (5 A/B) Principles of Applied Engineering

Eric Evans – Planboard Week – 2018-02-18

CS1 07-Feb-2018 to 13-Feb-2018

Lesson Name:

Women Pioneers in Computer Science

TEKS – §126.33 (Computer Science 1):

  • c.1 – Creativity and innovation. The student develops products and generates new understandings by extending existing knowledge. The student is expected to:
  • c.1.C – participate in relevant, meaningful activities in the larger community and society to create electronic projects.
  • c.5 – Digital citizenship. The student explores and understands safety, legal, cultural, and societal issues relating to the use of technology and information. The student is expected to:
  • c.5.E – investigate how technology has changed and the social and ethical ramifications of computer usage.

Lesson Objectives:

  1. The student will be able to identify key women pioneers in the field of Computer Science
  2. The student will be able to identify the contributions of women pioneers in the field of Computer Science

Materials Needed:

  1. Group Assignments
  2. Pioneers Assigned to Research

Description of Lesson:

Students will be assigned to groups and each group will be assigned a woman pioneer in Computer Science to research.

Each group will have two (2) full class sessions to develop a presentation about their assigned pioneer.

The presentation can be in any media the group chooses (PowerPoint, song, round table discussion, Socratic seminar, etc…). The presentations will be conducted on the 3rd day of the project.

Grade(s):

  • Major Grade – Project Presentation

CS1 26-Jan-2018 to 05-Feb-2018

Lesson Name:

Iterative Loops Project in Python

TEKS – §126.33 (Computer Science 1):

  • c.2 – Communication and collaboration. The student communicates and collaborates with peers to contribute to his or her own learning and the learning of others. The student is expected to:
  • c.2.A – create and properly display meaningful output
  • c.2.D – write programs with proper programming style to enhance the readability and functionality of the code by using meaningful descriptive identifiers, internal comments, white space, spacing, indentation, and a standardized program style
  • c.4 – Critical thinking, problem solving, and decision making. The student uses appropriate strategies to analyze problems and design algorithms. The student is expected to:
  • c.4.E – identify reusable components from existing code
  • c.4.H – identify and debug errors
  • c.4.I – test program solutions with appropriate valid and invalid test data for correctness
  • c.4.J – debug and solve problems using error messages, reference materials, language documentation, and effective strategies
  • c.4.U – demonstrate proficiency in the use of the relational operators
  • c.4.V – demonstrate proficiency in the use of the logical operators
  • c.6 – Technology operations, systems, and concepts. The student understands technology concepts, systems, and operations as they apply to computer science. The student is expected to:
  • c.6.O – choose, identify, and use the appropriate data types for integer, real, and Boolean data when writing program solutions
  • c.6.P – demonstrate an understanding of the concept of a variable
  • c.6.V – compare and contrast strongly typed and un-typed programming languages

Lesson Objectives:

  1. The student will demonstrate mastery of for loop programming in Python.
  2. The student will demonstrate mastery of do loop programming in Python.
  3. The student will demonstrate mastery of do while loop programming in Python.

Materials Needed:

  1. Repl.it Access

Description of Lesson:

Students will be given 5 different problems to solve involving iterative loops. Students will be given 5 class periods to develop a solution to each of the given problems.

Grade(s):

  • Minor Grade – Solution to Problem 1 (50%) & Solution to Problem 4 (50%)
  • Major Grade – Solution to Problem 2 (33%), Solution to Problem 3 (33%), & Solution to Problem 5 (33%)

CS1 24-Jan-2018

Lesson Name:

Programming Iterative Loops in Python

TEKS – §126.33 (Computer Science 1):

  • c.2 – Communication and collaboration. The student communicates and collaborates with peers to contribute to his or her own learning and the learning of others. The student is expected to:
  • c.2.A – create and properly display meaningful output
  • c.2.D – write programs with proper programming style to enhance the readability and functionality of the code by using meaningful descriptive identifiers, internal comments, white space, spacing, indentation, and a standardized program style
  • c.4 – Critical thinking, problem solving, and decision making. The student uses appropriate strategies to analyze problems and design algorithms. The student is expected to:
  • c.4.E – identify reusable components from existing code
  • c.4.H – identify and debug errors
  • c.4.I – test program solutions with appropriate valid and invalid test data for correctness
  • c.4.J – debug and solve problems using error messages, reference materials, language documentation, and effective strategies
  • c.4.U – demonstrate proficiency in the use of the relational operators
  • c.4.V – demonstrate proficiency in the use of the logical operators
  • c.6 – Technology operations, systems, and concepts. The student understands technology concepts, systems, and operations as they apply to computer science. The student is expected to:
  • c.6.O – choose, identify, and use the appropriate data types for integer, real, and Boolean data when writing program solutions
  • c.6.P – demonstrate an understanding of the concept of a variable
  • c.6.V – compare and contrast strongly typed and un-typed programming languages

Lesson Objectives:

  1. The student will demonstrate mastery of for loop programming in Python.
  2. The student will demonstrate mastery of do loop programming in Python.
  3. The student will demonstrate mastery of do while loop programming in Python.

Materials Needed:

  1. Repl.it Access

Description of Lesson:

Students will cover hands-on how to create a for, do, and do while loop in Python. Further discussion on benefits and pitfalls of each iterative looping structure will be discussed.

Grade(s):

  • Daily Grade – Guided Practice Lesson File

CS1 22-Jan-2018

Lesson Name:

Iterative Loops – Hands-On

TEKS – §126.33 (Computer Science 1):

  • c.4 – Critical thinking, problem solving, and decision making. The student uses appropriate strategies to analyze problems and design algorithms. The student is expected to:
  • c.4.U – demonstrate proficiency in the use of the relational operators
  • c.4.V – demonstrate proficiency in the use of the logical operators

Lesson Objectives:

  1. The student will demonstrate an understanding of the three main iterative looping structures (do, do while, and for).

Materials Needed:

  1. Worksheets – 2018-01-22 – Hands-On with Iterative Loops

Description of Lesson:

Students will be given a list of physical instructions to repeat in an iterative pattern in a do, do while, and for loop. Students will perform the physical tasks the number of times the iterative instructions provide.

Students will then complete a worksheet using Python to solve for given iterative mathematical problems enclosed in various loop structures.

Grade(s):

  • Daily Grade – Participation in Physical Iterative Loops
  • Daily Grade – Iterative Mathematical Problems

CS1 16-Jan-2018

Lesson Name:

Casting Variables in Python

TEKS – §126.33 (Computer Science 1):

  • c.2 – Communication and collaboration. The student communicates and collaborates with peers to contribute to his or her own learning and the learning of others. The student is expected to:
  • c.2.A – create and properly display meaningful output
  • c.2.D – write programs with proper programming style to enhance the readability and functionality of the code by using meaningful descriptive identifiers, internal comments, white space, spacing, indentation, and a standardized program style
  • c.4 – Critical thinking, problem solving, and decision making. The student uses appropriate strategies to analyze problems and design algorithms. The student is expected to:
  • c.4.E – identify reusable components from existing code
  • c.4.H – identify and debug errors
  • c.4.I – test program solutions with appropriate valid and invalid test data for correctness
  • c.4.J – debug and solve problems using error messages, reference materials, language documentation, and effective strategies
  • c.6 – Technology operations, systems, and concepts. The student understands technology concepts, systems, and operations as they apply to computer science. The student is expected to:
  • c.6.O – choose, identify, and use the appropriate data types for integer, real, and Boolean data when writing program solutions
  • c.6.P – demonstrate an understanding of the concept of a variable
  • c.6.V – compare and contrast strongly typed and un-typed programming languages

Lesson Objectives:

  1. The student will demonstrate mastery of casting variables as strings in Python.
  2. The student will demonstrate mastery of working with strings and substrings in Python.

Materials Needed:

  1. Repl.it Access

Description of Lesson:

Students will cover hands-on how to cast basic variables in Python and when casting may be necessary.

Grade(s):

  • Daily Grade – Guided Practice Lesson File

CS1 11-Jan-2018

Lesson Name:

Variables in Python

TEKS – §126.33 (Computer Science 1):

  • c.2 – Communication and collaboration. The student communicates and collaborates with peers to contribute to his or her own learning and the learning of others. The student is expected to:
  • c.2.A – create and properly display meaningful output
  • c.2.D – write programs with proper programming style to enhance the readability and functionality of the code by using meaningful descriptive identifiers, internal comments, white space, spacing, indentation, and a standardized program style
  • c.4 – Critical thinking, problem solving, and decision making. The student uses appropriate strategies to analyze problems and design algorithms. The student is expected to:
  • c.4.E – identify reusable components from existing code
  • c.4.H – identify and debug errors
  • c.4.I – test program solutions with appropriate valid and invalid test data for correctness
  • c.4.J – debug and solve problems using error messages, reference materials, language documentation, and effective strategies
  • c.6 – Technology operations, systems, and concepts. The student understands technology concepts, systems, and operations as they apply to computer science. The student is expected to:
  • c.6.O – choose, identify, and use the appropriate data types for integer, real, and Boolean data when writing program solutions
  • c.6.P – demonstrate an understanding of the concept of a variable
  • c.6.V – compare and contrast strongly typed and un-typed programming languages

Lesson Objectives:

  1. The student will demonstrate mastery of the integer, string, and floating variables.
  2. The student will create a basic program that utilizes each of the covered variable types.

Materials Needed:

  1. Repl.it Access

Description of Lesson:

Students will cover hands-on how to create a basic application in Python that utilizes integer, float, and string variables.

Students will create their own application in Python that utilizes integer, float, and string variables correctly.

Grade(s):

  • Daily Grade – Guided Practice Lesson File (50%) & Independent Practice File (50%)

CS1 09-Jan-2018

Lesson Name:

Introduction to Repl.it and Python

TEKS – §126.33 (Computer Science 1):

  • c.2 – Communication and collaboration. The student communicates and collaborates with peers to contribute to his or her own learning and the learning of others. The student is expected to:
  • c.2.A – create and properly display meaningful output
  • c.2.D – write programs with proper programming style to enhance the readability and functionality of the code by using meaningful descriptive identifiers, internal comments, white space, spacing, indentation, and a standardized program style
  • c.4 – Critical thinking, problem solving, and decision making. The student uses appropriate strategies to analyze problems and design algorithms. The student is expected to:
  • c.4.E – identify reusable components from existing code
  • c.4.H – identify and debug errors
  • c.4.I – test program solutions with appropriate valid and invalid test data for correctness
  • c.4.J – debug and solve problems using error messages, reference materials, language documentation, and effective strategies
  • c.6 – Technology operations, systems, and concepts. The student understands technology concepts, systems, and operations as they apply to computer science. The student is expected to:
  • c.6.V – compare and contrast strongly typed and un-typed programming languages

Lesson Objectives:

  1. The student will be able to create a functional user account on repl.it and join the Computer Science 1 on repl.it.
  2. The student will be able to create a basic literal output application in Python of “Hello World”.
  3. The student will be able to create a basic literal output application in Scratch of “Hello World”
  4. The student will compare and contrast the process and output of “Hello World” in both programming languages.

Materials Needed:

  1. Repl.it Access
  2. Scratch Access

Description of Lesson:

Students will create user accounts on repl.it for programming in Python. Students will join the Computer Science 1 class on repl.it. Students will then create a basic literal Python output program. while also creating the same program in Scratch. Students will create “Hello World” and compare and contrast in both programs.

Grade(s):

  • Daily Grade – Creation of Repl.it Account and Joining Class
  • Quiz Grade – Compare and Contrast Hello World in both Scratch and Python