Skip to content

Commit 1e482ca

Browse files
committed
Improve the writing in the cs101F2019_studyguide_exam02.
1 parent bf7860b commit 1e482ca

File tree

1 file changed

+40
-8
lines changed

1 file changed

+40
-8
lines changed

exam02/cs101F2019_studyguide_exam02.tex

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ \section*{Introduction}
108108
\program{ls}); building and running Java programs with Gradle; knowledge of
109109
the basic commands for using Docker and GitHub
110110
111-
\item Your class notes and the discussion slides available from the course web
111+
\item The class notes and the discussion slides available from the course web
112112
site
113113
114114
\item Source code and writing for all of the assigned laboratory and practical
@@ -240,15 +240,22 @@ \subsection*{Chapter Two}
240240
241241
\item The goals, principles, and patterns of object-oriented design in the
242242
Java language
243+
243244
\item An understanding of the principles known as abstraction, encapsulation, and modularity
245+
244246
\item How to use inheritance hierarchies to create an ``is a'' relationship
245247
between Java classes
248+
246249
\item The meaning and purpose of abstract classes and interfaces in the Java
247250
programming language
251+
248252
\item How to create, catch, and handle exceptions thrown in a Java program
253+
249254
\item How to performing casting to convert a variable from one data type to another
255+
250256
\item The ways in which generics promote the implementation of reusable Java
251257
programs
258+
252259
\item Knowledge of the Java syntax needed to declare data structures
253260
that are generically typed
254261
@@ -262,22 +269,36 @@ \subsection*{Chapter Three}
262269
\setlength{\itemsep}{0.05in}
263270
264271
\item How to use arrays to store primitive and reference variables
272+
265273
\item The algorithms for sorting arrays into ascending and descending order
274+
266275
\item How to use psuedo random number generators in Java programs
276+
267277
\item The similarities and differences between one- and two-dimensional arrays
278+
268279
\item The meaning and purpose of techniques for cloning data structures
280+
269281
\item The similarities and differences between ``deep'' and ``shallow'' copies
270282
of arrays
283+
271284
\item How to use the Java methods to construct ``deep'' and ``shallow'' copies
272285
of data structures
286+
273287
\item An understanding of the types of nodes in a \program{SinglyLinkedList} and \program{DoublyLinkedList}
288+
274289
\item The benefits and trade-offs associated with the \program{SinglyLinkedList} and \program{DoublyLinkedList}
290+
275291
\item Knowledge of the worst-case time complexity for all methods of node-based structures
292+
276293
\item Why the \program{removeLast} implementation is inefficient when
277294
implemented in a \program{SinglyLinkedList}
295+
278296
\item The meaning of the term ``equivalence testing'' and how it connects to data structures
297+
279298
\item The ``equivalence relationship'' that must be upheld by, for instance, a \program{DoublyLinkedList}
299+
280300
\item The trade-offs associated with using either arrays or linked lists to implement data structures
301+
281302
\item The benefits that come from using Java's generics to implement node-based list
282303
structures
283304
@@ -292,25 +313,36 @@ \subsection*{Chapter Four}
292313
293314
\item A strategy for timing the implementation of an algorithm in the Java
294315
programming language
316+
295317
\item The challenges associated with experimentally studying an algorithm's
296318
performance
319+
297320
\item A comprehensive understanding of why to use a doubling experiment to
298321
study efficiency
299-
\item An understanding of all of the steps and source code needed to conduct a
322+
323+
\item An understanding of all the steps and source code needed to conduct a
300324
doubling experiment
301-
\item The challenges associated with conduct an experimental evaluation of an
325+
326+
\item The challenges associated with conducting an experimental evaluation of an
302327
algorithm
328+
303329
\item The meaning and purpose of the terms ``basic operation'' and ``psuedo code''
330+
304331
\item An intuitive understanding of best-, worst-, and average-case analytical
305332
evaluations
333+
306334
\item Knowledge of the seven functions used to characterize an algorithm's
307335
complexity class
336+
308337
\item The relationship between an order-of-growth ratio and the worst-case
309338
time complexity
310-
\item The meaning of the ``Big-Oh'' notation used during the
339+
340+
\item The meaning of the ``Big-Oh'' notation used as part of the
311341
analytical evaluation of algorithms
342+
312343
\item Knowledge of the patterns in psuedo code that suggest certain
313344
worst-case time complexities
345+
314346
\item How to intuitively prove the worst-case time complexity of an algorithm
315347
using psuedo code
316348
@@ -403,8 +435,8 @@ \subsection*{Chapter Eight}
403435
\item The benefits that come from using Java's generics to implement
404436
a \program{Tree} data structure
405437
406-
\item The formal definition of a tree $T$ as a data structure with a set of
407-
nodes related by edges
438+
\item The intuitive definition of a tree $T$ as a data structure with a set
439+
of nodes related by edges
408440
409441
\item The meaning of tree-related terms such as ``subtree'', ``ancestor'',
410442
``descendent'', and ``leaf''
@@ -430,8 +462,8 @@ \subsection*{Chapter Ten}
430462
431463
\begin{itemize}
432464
433-
\item The meaning of the term ``associative array'' and how it is evidenced in
434-
the \program{HashMap} structure
465+
\item The meaning of the term ``associative array'' and how it is implemented
466+
in the \program{HashMap}
435467
436468
\item Knowledge of how other data structures create an ``associative array''
437469
with efficiency problems

0 commit comments

Comments
 (0)