a set of cs 1 labs utilizing graphical objects and...

39
A Set of CS 1 Labs Utilizing Graphical Objects and Inheritance Peter Andrews Duane Broline William Slough Nancy Van Cleave Eastern Illinois University Department of Mathematics Frontiers in Education 2001 – Reno, NV 1

Upload: dinhnhu

Post on 16-May-2018

217 views

Category:

Documents


1 download

TRANSCRIPT

A Set of CS 1 Labs Utilizing GraphicalObjects and Inheritance

Peter Andrews Duane BrolineWilliam Slough Nancy Van Cleave

Eastern Illinois University

Department of Mathematics

Frontiers in Education 2001 – Reno, NV 1

Overview

• Cohoon & Davidson: C++ Program Design

• Math 2170 — CS 1

• Multi-part Weekly Labs

• Graphics

• Themes

• Object–Oriented

Frontiers in Education 2001 – Reno, NV 2

Cohoon & Davidson

C++ Program Design: An Introduction to Programming

and Object–Oriented Design

Graphics Package: EzWindows

• Object–Oriented

• Engaging

• Allows Animation

• Provides Immediate Feedback

Frontiers in Education 2001 – Reno, NV 3

Background

• EIU: A regional university

• Department of Mathematics

• Students: Pre–Engineering, Math, Math Ed, and CS

• Teaching Team

Frontiers in Education 2001 – Reno, NV 4

Math 2170 — CS 1

• Lab-based

• Uses C++

• Two 50–minute lectures per week

• One 100–minute lab per week

• Co-requisite: Calc I

Frontiers in Education 2001 – Reno, NV 5

Lab Components

• Reference to Reading (text and handouts)

• Preview Exercises, Submission Sheet

• Lab Exercises

• Makefile

• Lab Check-off Sheet

• Gradesheet

• Follow-up Programming Exercise

Frontiers in Education 2001 – Reno, NV 6

Example—Week 5 Lab

Laboratory 5Key Concepts

• EzWindows graphics

• Classes: RandomInt, Position, SimpleWindow,RectangleShape, RaySegment, and CircleShape

• Using messages with classes

Frontiers in Education 2001 – Reno, NV 7

Week 5 Lab

Lab PreviewReading

• Class and Library Descriptions manual

(written by team)

• §3.9

• All program listings in appendix

Frontiers in Education 2001 – Reno, NV 8

Week 5 Lab

Lab PreviewExercisesF 1. Locating RectangleShapes on a grid

Frontiers in Education 2001 – Reno, NV 9

Week 5 Lab

Lab PreviewExercises—continuedF 2. How to declare a specific RectangleShape

F 3. How to display that RectangleShape in a

graphics window

4. Various position displacement expressions

(F parts b & c) needed for lab exercises

Frontiers in Education 2001 – Reno, NV 10

Week 5 Lab

Lab Exercises1. Download, uncompress lab files

2. Compile, execute lab5a.cpp

Frontiers in Education 2001 – Reno, NV 11

Week 5 Lab√

3. Add RectangleShapes in corners, change

windowsize

Frontiers in Education 2001 – Reno, NV 12

Week 5 Lab

4. lab5b.cpp: Compile, Execute, Observe...

Frontiers in Education 2001 – Reno, NV 13

Week 5 Lab

5. Add a green bar behind circle

Frontiers in Education 2001 – Reno, NV 14

Week 5 Lab

6. Add a red bar below the box... Oops

Frontiers in Education 2001 – Reno, NV 15

Week 5 Lab√

6. Add a red bar below the box...

Frontiers in Education 2001 – Reno, NV 16

Week 5 Lab

7. Complete the red frame around the box...

Frontiers in Education 2001 – Reno, NV 17

Week 5 Lab

7. Now the sides... Oops

Frontiers in Education 2001 – Reno, NV 18

Week 5 Lab

7. Try again... Oops

Frontiers in Education 2001 – Reno, NV 19

Week 5 Lab√

7. Voila, the framed box

Frontiers in Education 2001 – Reno, NV 20

Week 5 Lab

8. lab5c.cpp: Compile, Execute, Observe...

Frontiers in Education 2001 – Reno, NV 21

Week 5 Lab

9. Delete arrowheads, modify width

Frontiers in Education 2001 – Reno, NV 22

Week 5 Lab√

10. Add bisecting lines

Frontiers in Education 2001 – Reno, NV 23

Week 5 Lab√

11. Add Label in window center

Frontiers in Education 2001 – Reno, NV 24

Week 5 Lab

Lab Followup—given skeleton program...

Get four percentages, declare and draw four corner

squares, declare and draw connecting ray segments

Frontiers in Education 2001 – Reno, NV 25

Week 5 Homework

Create the figure shown below—get center and diameter

of large circle from user:

Frontiers in Education 2001 – Reno, NV 26

Themes

Concepts are:

• Introduced in lecture and lab (already coded)

• Expanded upon following week (need to modify)

• Significant student involvement by third week

• Use in new context; from “scratch”

Frontiers in Education 2001 – Reno, NV 27

Input File Theme

1. Present concept

• “hardcoded” file name

• code already present in lab exercise(s)

• loop to read file contents (int, string) in place

2. Expand on concept

• code present in lab exercise(s)

• modify to obtain filename from user

• modify to get character at a time

3. Follow–up requires code from “scratch”

Frontiers in Education 2001 – Reno, NV 28

Function Theme

1. Practice—Predefined functions—Messages to objects

2. Practice

• EzWindows classes and messages

• sleep function (delay execution for animation)

3. Practice—library functions: math, ctype, iomanip

4. Practice—header files, pre-compiled implementation

• focus on interface

• testing

Frontiers in Education 2001 – Reno, NV 29

Function Theme—Continued

5. Completing function implementations

6. Writing functions with reference parameters, function

templates

7. Completing/Writing member functions

Frontiers in Education 2001 – Reno, NV 30

File Processing–Bar Chart–Scaling Themes

Follow–up 6: statistics about text file, bar chart scaled

to window

Follow–up 7: scale a Lissajous curve to fit background

RectangleShape

Follow–up 10: two–pass processing of file of integers,

represent as bar chart scaled to window

Follow–up 12: approximating the area under a curve,

display as RectangleShapes scaled to window

Frontiers in Education 2001 – Reno, NV 31

Inheritance Theme

Week 3: window coordinates, spiral coordinates

(no graphics)

Week 5: EzWindows classes RectangleShape,RaySegment

Week 6: graphing a spiral, drawing a checkerboard

Week 9: completing class messages for:

SmartSquareShape and MovingSquareShape

Frontiers in Education 2001 – Reno, NV 32

Week 10: completing class messages for:FramedRectangleShape, Board, GameBoard,and Piece

– Follow–up: interactive Tic–Tac–Toe

– Project: FractalBoard — using JuliaColor to rewrite

GetBlockColor()

Frontiers in Education 2001 – Reno, NV 33

Graphics Theme

Week 3: Window coordinate system

Week 5: Introduction to EzWindows classes

RectangleShape, RaySegment

Week 6: Checkerboard using nested loops

Week 7: Bar Chart, string file statistics; first animation

Week 8: Lissajous Curve—animated

Week 9: Derived SquareShape classes, animation

Frontiers in Education 2001 – Reno, NV 34

Week 10: Derived Board classes

Week 11: Derived Grid class

Week 12: Bar Chart, int file statistics

Week 13: Area Under a Curve

Frontiers in Education 2001 – Reno, NV 35

Conclusion

• Cohesive and comprehensive

• Basic concepts of C++, reinforced by themes

• Incorporates object–oriented aspects of C++

• Graphics—good for visual learners; interesting

Frontiers in Education 2001 – Reno, NV 36

Homework 7 – Chaos Game

B

A

C

D

E

FG

1

3

2

Frontiers in Education 2001 – Reno, NV 37

Homework 7 – Chaos Game

Frontiers in Education 2001 – Reno, NV 38

Homework 7 – Final Results

Frontiers in Education 2001 – Reno, NV 39