-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcs100_chapter6.html
190 lines (152 loc) · 8.84 KB
/
cs100_chapter6.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Computer Science 100: Computational Expression</title>
<meta name="description" content="Teaching Slides for Computer Science 100">
<meta name="author" content="Gregory M. Kapfhammer">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="css/reveal.css">
<link rel="stylesheet" href="css/theme/night-gkapfham.css" id="theme">
<!-- For syntax highlighting -->
<link rel="stylesheet" href="lib/css/zenburn.css">
<!-- Install Font Awesome and the Google Web fonts -->
<link href="https://netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Montserrat|Roboto+Slab" rel="stylesheet" type="text/css">
<!-- If the query includes 'print-pdf', include the PDF print sheet -->
<script>
if( window.location.search.match( /print-pdf/gi ) ) {
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'css/print/pdf.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
}
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-background-transition="none" data-background="https://images.unsplash.com/photo-1528901166007-3784c7dd3653" style="background: rgba(29,31,33,0.9)">
<h1>Computer Science 100</h1>
<h2>Computational Expression</h2>
<p>Gregory M. Kapfhammer</p>
</section>
<section>
<h1>Color Scheme</h1>
<p class="fragment"><b class="orange">Key Concept</b></p>
<p class="fragment"><b class="purple">Corresponding Diagram</b></p>
<p class="fragment"><b class="green">In-Class Discussion</b></p>
<p class="fragment"><b class="red">In-Class Activity</b></p>
<p class="fragment"><b class="blue">Details in the Textbook</b></p>
</section>
<section>
<h1 id="switch_statements">Switch Statements</h1>
<p class="fragment"><b class="orange">An alternative to using if statements</b></p>
<p class="fragment">Cannot encode complex boolean expressions</p>
<p class="fragment">Sometimes simpler for a programmer to understand</p>
<p class="fragment"><b class="green">Which approach do you prefer? Why did you pick it?</b></p>
<p class="fragment"><b class="blue">See Section 6.1 for more details!</b></p>
</section>
<section>
<h1 id="do_statements">Do statements</h1>
<p class="fragment"><b class="blue">Please see page 263 for an example!</b></p>
<p class="fragment"><b class="red">Work with a partner to compare while and do-while loops</b></p>
<p class="fragment"><b class="green">What is the key difference?</b></p>
<p class="fragment"><b class="green">How do pick between these options?</b></p>
<p class="fragment"><b class="green">Can you draw a picture to visualize their execution?</b></p>
<p class="fragment"><b class="purple">Visualize these loops with a diagram</b></p>
</section>
<section>
<h1 id="for_statements">For Statements</h1>
<p class="fragment"><b class="green">When is it best to use a while loop?</b></p>
<p class="fragment">What if we know the number of iterations?</p>
<p class="fragment">We should try to use the for loop!</p>
<p class="fragment"><b class="green">What is the structure of a for loop?</b></p>
<p class="fragment"><b class="purple">Visualize the for loop with a diagram</b></p>
</section>
<section>
<h1 id="finding_multiples">Computing Multiples</h1>
<p class="fragment"><b class="red">Run the <code>git pull</code> command!</b></p>
<p class="fragment"><b class="red">Build the ComputeMultiples.java program</b></p>
<p class="fragment"><b class="red">Run this program like it was on page 282</b></p>
<p class="fragment"><b class="red">Try five different inputs for this program</b></p>
<p class="fragment"><b class="red">Record one output of this program</b></p>
<p class="fragment"><b class="green">How does this program use for loops?</b></p>
<p class="fragment"><b class="red">Document each part of the code</b></p>
</section>
<section>
<h1><b class="orange">Master the use of a complex for loop</b></h1>
</section>
<section>
<h1><b class="green">Any questions about for loops?</b></h1>
</section>
<section>
<h1 id="printing_stars">Printing Stars</h1>
<p class="fragment"><b class="orange">This program uses iteration constructs</b></p>
<p class="fragment"><b class="orange">We will investigate this program during a practical</b></p>
<p class="fragment"><b class="green">Do you understand how to this program works?</b></p>
<p class="fragment"><b class="green">Could you extend this program with new loops?</b></p>
</section>
<section>
<h1 id="review_of_iteration_constructs">Iteration Constructs</h1>
<p class="fragment"><b class="orange">Three basic loop statements are functionally equivalent</b></p>
<p class="fragment"><b class="green">What if we want to run the loop body at least one time?</b></p>
<p class="fragment"><b class="green">What if we know the number of times iteration will occur?</b></p>
<p class="fragment"><b class="green">What if we want to use an <code>Iterator</code>?</b></p>
<p class="fragment"><b class="blue">Make sure that you understand the trade-offs!</b></p>
</section>
<section>
<h1 id="design_exercise"><b class="orange">Complete a Design Exercise</b></h1>
</section>
<section>
<h1 id="extra">Extra Fun</h1>
<p class="fragment"><b class="red">Create a program called <code>PrintStatusBar.java</code></b></p>
<p class="fragment"><b class="red">The program should accept two command-line arguments</b></p>
<p class="fragment"><b class="red">The first input should be the number of printed symbols</b></p>
<p class="fragment"><b class="red">The second input should be the printed symbols</b></p>
<p class="fragment"><b class="red">Print the specified number of symbols in the terminal</b></p>
<p class="fragment"><b class="green">Can you create, compile, and run this program?</b></p>
<p class="fragment"><b class="green">What output does it produce?</b></p>
</section>
<section>
<h1 id="questions"><b class="green">Any questions about iteration constructs?</b></h1>
</section>
<section>
<h1 id="reminder"><b class="orange">We will practice during upcoming assignments</b></h1>
</section>
<section>
<h1 id="officehours"><b class="orange">Schedule office hours for further discussion</b></h1>
</section>
</div>
</div>
<script src="lib/js/head.min.js"></script>
<script src="js/reveal.min.js"></script>
<script>
// Full list of configuration options available here:
// https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: true,
theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
transition: Reveal.getQueryHash().transition || 'none', // default/cube/page/concave/zoom/linear/none/none
// Parallax scrolling
// parallaxBackgroundImage: 'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg',
// parallaxBackgroundSize: '2100px 900px',
// Optional libraries used to extend on reveal.js
dependencies: [
{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
{ src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
]
});
</script>
</body>
</html>