CS 1103 Computer Science I Honors
Fall 2016

Computer Science Department
The Morrissey College of Arts and Sciences
Boston College

About Staff Textbook Grading Schedule Resources
Notes Labs Piazza Canvas GitHub Problem Sets
Manual StdLib Pervasives UniLib OCaml.org

WEEK
TOPIC
CSCI 1103 Computer Science I Honors
1:
8/30
9/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:
9/6
9/8
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:
9/13
9/15
Repetition with integers: primality testing.

Tessellation.
03.1.repetitionIntegers.zip, repetition.ml, 03.2.repetitionImages.zip.
4:
9/20
9/22
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:
9/27
9/29
Sorting: insertion sort, mergesort.

First Quiz. Sorting: split, quicksort.
05.1.sort.zip, sort.ml, firstQuizKey.pdf.
6:
10/4
10/6
Functions are values: mapping, filtering and folding.

Animation, Rain.
06.1.animationMap.zip, 06.2.filterFoldRain.zip.
7:
10/11
10/13
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:
10/18
10/20
Numeral systems, positional addition.

Binary and Hexidecimal.
08.1.numeralSystems.zip, 08.2.binaryAndHex.zip.
9:
10/25
10/27
Machines and Storage Architecture.

SVM: A Simple Virtual Machine; Machine Code and Assembley Code.
machinesAndStorageArchitecture.zip, svm.zip.
10:
11/1
11/3
Dynamic Memory: the Call Stack and the Heap; storage diagrams.

A Storage Model of Evaluation.
10.1.dynamicStorage.zip.
11:
11/8
11/10
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:
11/15
11/17
Working with Text Files and strings.

Working with Strings.
12.txt, 12.2.workingWithStrings.zip.
13:
11/22
11/24
Search: The 8-Queens Problem.

Thanksgiving
13.1.searchQueens.zip.
14:
11/29
12/1
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:
5/3
5/5
Review of Binary Trees and Tree Traversals.

Review and wrapup.
15.1.reviewBinaryTrees.zip, finalExamKeyS15.pdf, finalExamKeyS16.pdf.
Created on 08-30-2016 07:04.