UTPA STEM/CBI Courses/Computer Science/Selection
Course Title: Computer Science I
Lecture Topic: Selection
Instructor: Laura Grabowski
Institution: UTPA
Backwards Design
[edit | edit source]Course Objectives
- Primary Objectives- By the next class period students will be able to:
- Understand concepts of how selection structures work: Test current condition (while program executes), outcome of test, decision based on outcome
- Understand how different selection structures work (if, if/else, nested if/else, switch)
- Write C++ code for different selection structures
- Sub Objectives- The objectives will require that students be able to:
- Write logical and relational expressions
- Identify syntax errors in selection statements
- Difficulties- Students may have difficulty:
- Understanding the underlying concepts involved
- Remembering the correct syntax for the conditional expressions
- Real-World Contexts- The concepts of decision-making are grounded in the real world -- we do it all the time. The details of this lesson, however, relate specifically to the context of learning how to design and write computer programs. In that context, some interesting applications include:
- Designing video games
- Comparison-based searching and sorting algorithms
Model of Knowledge
- Concept Map
- Analysis of problem, requires
- Critical thinking skills
- Summarizing skills
- Design of solution (algorithm design), requires
- Problem decomposition skills
- Understanding of underlying programming concepts
- Data types
- Sequence
- Control structures
- Selection -- this lesson
- Repetition
- Modular programming (functions)
- Arrays
- Abstract data types
- Structures
- Classes
- Pointers
- Data structures and algorithms
- Trees
- Searching
- Sorting
- Use of design tools -- pseudo-code writing skills
- Implementation of solution
- Tools of the trade
- Learned in Lectures through
- Slides
- Analogies
- Sample programs
- Group exercises
- Using C++ to implement underlying concepts (listed above)
- Applying underlying concepts, covered in lectures using
- In-class exercises
- Lab assignments
- Homework assignments
- Learned in Lectures through
- Tools of the trade
- Analysis of problem, requires
- Content Priorities
- Enduring Understanding
- Understand fundamental programming concepts
- Understand basics of algorithm design
- Be able to design, write, debug, and test simple programs in C++
- Important to Know and Do
- Familiarity with programming environments such as Microsoft Visual C++
- Document algorithm design with tools such as pseudo-code and flow diagrams
- Worth Being Familiar with
- Time management
- Enduring Understanding
Assessment of Learning
- Formative Assessment
- In Class (groups)
- Pre-lesson quiz after student has read chapter.
- Team coding exercises: Work with the group to write code for selection statements.
- Code traces. Walk though code fragments provided and determine how statements will execute based on differing conditions at run-time.
- Homework (individual)
- Lab assignments using selection
- Worksheet: writing selection code fragments, executing code traces
- In Class (groups)
- Summative Assessment
- Unit quiz
- Exam
Legacy Cycle
[edit | edit source]OBJECTIVE
By the next class period students will be able to:
- Understand concepts of selection structures: Test current condition (while program executes), outcome of test, decision based on outcome
- Understand how different selection structures work (if, if/else, nested if/else, switch)
- Write C++ code for different selection structures
The objectives will require that students be able to:
- Write logical and relational expressions
- Identify syntax errors in selection statements
THE CHALLENGE
You want to enter a game programming contest. You need to write a program to play the game “Rock-Paper-Scissors”. To win the contest, your game must be able to beat a human player in at least five out of ten consecutive games. How can you make your program win the contest?
GENERATE IDEAS
- Play several rounds of two-player “Rock-Paper-Scissors” with your group.
- Make sure everyone understands how the game works.
- Observe, record your ideas about, and then discuss:
- What strategies did you try?
- What strategies seem to win?
- Think about and write down your ideas about how you might write an algorithm to implement the game (individually).
- Discuss your algorithm ideas with your group.
- Brainstorm on what you need to implement your algorithms in C++
- What do you know that you can use?
- What do you sort of remember but need to review or have more details on?
- What don’t you know that you need to know in order to solve the problem?
MULTIPLE PERSPECTIVES
- From the group discussions, groups share with class
- What sorts of strategies do you need to implement to program the game?
- What do you know? What do you need to know to solve the problem?
- Lecture on selection (if, if/else, nested if/else) to help students gain understanding of selection structures. Organizing question for the lecture is “What do we need to know in order to write our “Rock-Paper-Scissors” program?
- The rules of the game
- How to compare the players’ actions (relational and logical tests) and make decisions based on what is happening at program run-time (selection).
RESEARCH & REVISE
- Students will work in groups to complete an exercise on writing code for simple selection statements.
- Students will outline their ideas for the “Rock-Paper-Scissors” program.
TEST YOUR METTLE
Students will receive feedback on their exercise solutions and on their game program ideas. Students will be given a quiz at the beginning of the next class.
GO PUBLIC
Students will be able to answer the questions about how to make run-time decisions in a program. Students will also complete lab assignments and homework assignments that focus on using selection structures.
Pre-Lesson Quiz
[edit | edit source]For Questions 1-4, use the following declarations to evaluate the given expressions as TRUE or FALSE.
int x = 8;
int y = 15;
double myVal1 = 2.5;
double myVal2 = 5.8;
Test Your Mettle Quiz
[edit | edit source]