UTPA STEM/CBI Courses/Computer Science/Arrays
Course Title: Computer Science I
Lecture Topic: Arrays
Instructor: Christine Reilly
Institution: University of Texas - Pan American
Backwards Design
[edit | edit source]Course Objectives
- Primary Objectives- By the next class period students will be able to:
- Identify cases where arrays are useful
- Write C++ code to create an array
- Write C++ code to access an array element
- Sub Objectives- The objectives will require that students be able to:
- Understand how array elements are indexed
- Have a good understanding of basic C++ programming
- Difficulties- Students may have difficulty:
- Understanding how one variable can hold multiple values
- Remembering the correct syntax for accessing elements of an array
- Real-World Contexts- There are many ways that students can use this material in the real-world, such as:
- Games that use a series of data. Any game that uses a hand of cards or a series of dice. Board games such as checkers, chess, and Connect-Four can be represented using a two dimensional array.
- Data management systems can be represented using arrays. Examples are the contents of a shopping cart and information about the employees of a company.
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
- Modular programming
- Arrays -- this lesson
- Abstract data types
- Pointers
- Data structures and algorithms
- Use of design tools - pseudo code writing skills
- Implementation of solution - tools of the trade
- Learned in lectures through
- Slides
- Analogies
- Simple programs
- Group exercises
- Using C++ to implement underlying concepts
- Applying underlying concepts, covered in lectures using
- In-class exercises
- Lab assignments
- Homework assignments
- Learned in lectures through
- Analysis of problem, requires
- Content Priorities
- Enduring Understanding
- Create an array
- Initialize the array
- Retrieve the value of a single element of the array
- Important to Do and Know
- How to iterate through an array
- Change the value of an array element
- Worth Being Familiar with
- How to use a programming environment such as Visual C++
- Enduring Understanding
Assessment of Learning
- Formative Assessment
- In Class (groups)
- Working in groups to brainstorm an algorithm and write short segments of code to solve a small problem
- Working in groups to trace a code fragment and determine the output of that code fragment
- Homework (individual)
- Programming project where the students use arrays to solve a given problem
- Worksheet on basic array creation, initialization, and element access
- In Class (groups)
- Summative Assessment
- Exam
- Code trace problems
- Writing short fragments of code
- Exam
Legacy Cycle
[edit | edit source]OBJECTIVE
By the next class period, students will be able to:
- Write C++ code to create and initialize arrays of any size
- Write C++ code to access an element within an array
- Write C++ code to iterate through an array
The objectives will require that students be able to:
- Understand basic C++ programming
- Understand how arrays are indexed
THE CHALLENGE
<Part 1> You are the programmer for MicroAir Airline. Every MicroAir airplane has 10 seats. You are given the task to write a program to manage the seat assignments on an airplane. The names of the passengers are stored in a file. The seats are numbered 1 through 10. Your program reads this file and assigns each passenger to a seat. The program needs to have a function to print the passenger list starting at seat 1 and going to seat 10, and another function to print the list starting at seat 10 and going to seat 1.
<Part 2> You have changed jobs and now work for JumboAir Airlines. Every JumboAir airplane has 200 seats. JumboAir also wants you to write a program that manages the seat assignments on an airplane. Can you make some small modifications and reuse the program you built while you were working at MicroAir?
GENERATE IDEAS
- Have the students work in groups on Part 1 of the challenge. Ask them to write an algorithm to solve the problem.
- What is your approach to the problem?
- What are the strengths and weaknesses of your approach?
- Add Part 2 of the challenge. Have the students go back to their groups.
- Can the Part 1 solution work for Part 2?
- What are the strengths and weaknesses of Part 1 applied to Part 2?
- Are there changes to the solution to Part 1 that might make the program work better for Part 2? You don't need to know how to write a program for these solutions, just outline your ideas.
MULTIPLE PERSPECTIVES
- Discuss a sample of the students' solutions to Part 1 and Part 2.
- Point out the strengths and weaknesses to the Part 1 solutions.
- Discuss the ideas generated in Part 2.
- Lecture on Arrays. Focus on how we could build a good solution for Part 2 of the challenge question.
- How to store people's names and their airplane seat.
- How to access an element of the array.
- How to iterate through the array to print each element.
RESEARCH & REVISE
- Students will work on exercises to practice simple problems using arrays.
- Have the students outline a solution for Part 2 of the challenge, using arrays.
TEST YOUR METTLE
- In-class exercises: students work individually or in small groups on code trace or short programming problems. We then discuss the solution, and try another similar problem.
GO PUBLIC
- Students will complete a programming assignment that requires them to use arrays to solve a complex problem.
- Students will take an exam where they have to answer questions about using arrays.
Pre-Lesson Quiz
[edit | edit source]
Test Your Mettle Quiz
[edit | edit source]NOTE: The wiki code for this quiz has some errors