# UTPA STEM/CBI Courses/Computer Science/Repetition

Course Title: Computer Science I
Lecture Topic: Repetition structure
Instructor: Gustavo Dietrich
Institution: UTPA

## Backwards Design

Course Objectives
* Primary Objectives- By the next class period students will be able to:
** Understand the advantage or necessity of using repetition structures to solve certain type of problems
** Recognize the categories and subcategories of loops (counter-controlled vs. event-controlled; eof,sentinel,flag)
** Understand the structure of loops (initialization of loop controller, testing of loop controller, updating of loop controller, body of the loop)
** Understand how different repetition structures work (pre-test vs. post-test)
** Write C++ code to implement the different repetition structures (while, for, do-while)
* Sub Objectives- The objectives will require that students be able to:
** Create logical and relational expressions
** Identify syntax and logical errors in repetition statements (the semicolon after the loop’s heading, the use of curly braces to specify a block of statements, wrong placement of the statement updating the loop controller, etc.)
* Difficulties- Students may have difficulty:
** Understanding the underlying concepts involved in looping (use analogies)
** Understanding when and how to use loops when given a problem (use analogies)
** Creating complex conditional expressions
* Real-World Contexts- There are many ways that students can use this material in the real-world, such as:
** Any of those situations that require the repetition of actions to solve a problem. For example,
*** Mathematical field: calculation of sin x, Euler’s value e, greatest common divisor, etc.
*** Business field: calculation of an average, validation of a password/user name combination, etc.
*** Engineering field: calculation and displaying of the trajectory of a projectile, filling of a table with values read from a sensor, etc.
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
***** 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
* Content Priorities
** Enduring Understanding
*** Have analysis skills
*** Have design skills ( includes knowledge of pseudo code)
*** Know Control Structures
**** Sequence
**** Module
**** Selection
**** Repetition
*** Know C++ syntax rules
** Important to Do and Know
*** Know how to use software development tools like MS VC++
*** Team work skills
** Worth Being Familiar with
*** Time management
Assessment of Learning
* Formative Assessment
** In lectures:
*** Asking questions to the students and providing feedback after their reply (informs me and them)
*** Asking the students to discuss with their partner the answer to a question or a topic just covered (informs them)
*** Developing a program on the screen with the students’ collaboration (informs me and them)
** In their own time:
*** Asking the students to use a software tool that presents them multiple choice questions and the corresponding feedback after their answer (informs them)
*** Asking the students to use the study guide provided a week before each test to self-evaluate their knowledge (an answer key is provided the day before the test) (informs them)
* Summative Assessment
** In labs/home:
*** Lab assignments for assessing their knowledge of the programming language syntax
*** Homework assignments for assessing their problem solving skills
*** Tests
**** MC T/F for assessing their knowledge of the concepts taught
**** Assessment questions in test to evaluate them individually

## Legacy Cycle

OBJECTIVE
By the next class period, students will be able to:
* Solve problems that require the use of loops
The objectives will require that students be able to:
* Analyze the problem
* Design the solution using pseudo code
* Recognize the type of repetition structure required to solve the problem
* Implement the algorithm using C++
THE CHALLENGE
Calculating the average temperature of the McAllen-Mission-Edinburg-Pharr metropolis would not be difficult since you would need to sum up only four temperatures. But how would you calculate the average temperature of the whole planet?
GENERATE IDEAS
* Grab a calculator and imagine you have to determine the average temperature of the whole planet. List the steps that you would take to do this
* Is this a repetitive task?
* How many values do you process at a time? Can you process hundreds of them in just one step?
* Do you know how many values you need to process in total?
* Where would you expect to get the data from?
* Would you do any validation?
MULTIPLE PERSPECTIVES
* Discuss the problem with your partner
* Look for possible solutions in the textbook
* Search the web to find out what is done in the real world
RESEARCH & REVISE
* Same as above
TEST YOUR METTLE
* Discuss with your partner a possible solution for the problem
* Create the algorithm and walk through it
* Run my sample solution and check if the results are what you expected from your algorithm walk through
GO PUBLIC
* Write a program that reads the temperatures from a file and determine the average (group evaluation)
* Answer the assessment questions at the end of the test (individual evaluation)

## Pre-Lesson Quiz

True/False
Indicate whether the statement is true or false. When you are finished making your selections, click the "Submit" button.

## Test Your Mettle Quiz

Multiple Choice
Identify the choice that best completes the statement or answers the question. When you are finished making your selection, click the "Submit" button.