UTPA STEM/CBI Courses/Computer Science/Repetition
Course Title: Computer Science I
Lecture Topic: Repetition structure
Instructor: Gustavo Dietrich
Institution: UTPA
Backwards Design
[edit | edit source]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.
- Any of those situations that require the repetition of actions to solve a problem. For example,
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
- Learned in Lectures through
- Tools of the trade
- Analysis of problem, requires
- 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
- Enduring Understanding
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)
- In lectures:
- 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
- In labs/home:
Legacy Cycle
[edit | edit source]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
[edit | edit source]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
[edit | edit source]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.