CSCI 1103 Computer Science I Honors |
1: |
|
Overview, administration, OCaml setup and introduction.
Types, literals, operators and expressions. Simplification,
and values. Functions, libraries, function calls, function
definitions.
|
01.1.introduction.pdf,
areaVolume.ml,
01.2.typesExprsFuncsLibs.txt.
|
2: |
|
Let-bound variables, binding patterns, type notation.
Tuples and records. Sum types, constructors.
Branching with match expressions.
More on sum types, function definitions and calls and the
simplification/replacement model of computation.
|
02.1.namesStructuredTypesMatching.zip,
namesStructuredTypesMatching.ml,
02.2.sumTypesLines.zip,
reviewOfSums.ml.
|
3: |
|
Repetition with integers: primality testing.
Tessellation.
|
03.1.repetitionIntegers.zip,
repetition.ml,
03.2.repetitionImages.zip.
|
4: |
|
Lists: length, sum, appending, reversal,
Work/complexity, local definitions, tail-recursion.
More on lists, a greedy algorithm for making change.
|
04.1.lists.zip,
04.2.lists.zip.
|
5: |
|
Sorting: insertion sort, mergesort.
First Quiz.
Sorting: split, quicksort.
|
05.1.sort.zip,
sort.ml,
firstQuizKey.pdf.
|
6: |
|
Functions are values: mapping, filtering and folding.
Animation, Rain.
|
06.1.animationMap.zip,
06.2.filterFoldRain.zip.
|
7: |
|
Option types. Dictionaries: association lists and binary search trees.
A bisection algorithm for square roots.
|
07.1.dictionariesBSTs.zip,
optionsMaps.ml,
07.2.bisectionSqrt.zip,
bisection.ml.
|
8: |
|
Numeral systems, positional addition.
Binary and Hexidecimal.
|
08.1.numeralSystems.zip,
08.2.binaryAndHex.zip.
|
9: |
|
Machines and Storage Architecture.
SVM: A Simple Virtual Machine; Machine Code and Assembley Code.
|
machinesAndStorageArchitecture.zip,
svm.zip.
|
10: |
|
Dynamic Memory: the Call Stack and the Heap; storage diagrams.
A Storage Model of Evaluation.
|
10.1.dynamicStorage.zip.
|
11: |
|
Second Quiz,
Imperative Storage: mutable references; 1D and 2D-arrays.
Imperative Control: sequencing, while-loops, for-loops and exceptions.
|
secondQuizKey.pdf,
11.1.imperativeStorage.zip,
11.2.imperativeControl.zip.
|
12: |
|
Working with Text Files and strings.
Working with Strings.
|
12.txt,
12.2.workingWithStrings.zip.
|
13: |
|
Search: The 8-Queens Problem.
Thanksgiving
|
13.1.searchQueens.zip.
|
14: |
|
Defining new types: ADTs in OCaml -- the module system.
Defining new types: ADTs in Java -- interfaces and classes.
|
14.1.newTypesOCaml.zip,
14.2.newTypesJava.zip.
|
15: |
|
Review of Binary Trees and Tree Traversals.
Review and wrapup.
|
15.1.reviewBinaryTrees.zip,
finalExamKeyS15.pdf,
finalExamKeyS16.pdf.
|