exam01
-
The exam is 3hrs, asynchronous, open-note, closed-friend.
-
It will be due on D2L, 3hrs after you access the pdf from D2L.
It will be available from 2020-Oct-?? (TBA) until …24 hrs later? (
-
The exam is geared to be finished within 1h30m,
so the 3-hour limit already includes
“interruption time”
for minor things that may arise while you are taking it.
-
You may refer to
your notes,
Zoom lectures for this course,
the course textbook,
any web pages on the course site (i.e. with prefix
http://www.radford.edu/itec380/2020fall-ibarland/),
as well as
D2L
and
standard racket / Java documentation pages.
-
You will submit a .rkt file
with runnable, well-written code,
and any non-code answers in comments.
You may use DrRacket or other editors/IDEs.
The following covers most of the topics we've covered:
-
Families of programming languages (paradigms -- low-level, procedural, O.O., functional, declarative), and being able to name the primary features of each family/paradigm and noteworthy languages.
-
vocabulary terms & concepts
(e.g. parameter
vs. argument
vs. local variable
;
statically typed
vs. dynamic typing
vs. untyped
;
compiled
vs. interpreted
)
-
The design recipe (incl. union types and product(compound) types),
following recipe in racket.
-
built-in types (not much to say here)
-
union-types (incl. the template for it)
-
product types / structs (incl. template)
-
combos: union-of-union, struct-of-struct, and struct-of-unions (defer to helpers appropriately);
-
union-of-structs and its template
-
union-of-structs with a self-reference in the data def'n (add natural-recursive call, to template)
Note: Lists are merely an example of this last category.
-
scope (
binding occurrence
vs. a bound occurrence
)
scoping and `let*`, as we've discussed in lecture.
…The sample-exam mentions both `let` and `let*` -- this is the difference: In `let`, the scope of the introduced-variable is *just* the body of the `let`-expr. However, with `let*`, the scope of an introduced-variable includes all the following right-hand-sides of further variables, in addition to the body of the `let`. If the scope of `let` is on the exam, it will not heavily emphasize the distinction. Btw, in practice `let*` is the version people prefer using, since they often want to define a new variable in terms of another they just-barely-finished-defining.
-
Pros and cons of a functional approach
Here is exam01-practice (w/ soln).
Note that it does not necessarily cover all of the above topics
(and, covers grammars, which we haven't yet covered).
I suggest you sit and take the practice exam directly,
writing down all answers (not just thinking about them in your head),
before looking at the solution.
Also, for all the D2L quizzes, be sure you know why you missed any points;
ask on discussion-board (anonymously or otherwise) or office hours, if you're not sure.
You should easily get 90-100% on all such quizzes, if similar questions were to be re-asked.
(The flip-check D2L questions are notably easier than exam questions.)