Open bkc39 opened 9 years ago
Oh as a note, I think that predicate logic will naturally be included during the "refl
will be treated similarly, although we may want to include that in the treatment of IPL.
For 1, I was thinking
Also I think the rest of the lectures are great. We may want to turn up on more data structures, or write typed / dep.typed interpreters as the final, but this is exactly what I was thinking (monads included) for the core of the course.
Ok, I agree that the beginning may have IPL sort of coming out of left field and perhaps it will be a bit unmotivated to a novice. I think using Curry-Howard is a good way to introduce programming and proving simultaneously, even if the deeper implications are ignored at the beginning or put in a black diamond section. Basically,
Nat
, List
and Tree
, namely:
This way our treatment of algebraic data types and structural induction are all instances of the same unifying framework. I think that the benefits of this make up for the apparent non-sequitur in Lecture 2.
Also, I agree that testing should be covered in the beginning. The question is how to integrate it correctly.
I haven't given any thought to how the problem set schedule would correspond to this. The only thing I know is that PS 1 gets released on the day of the first lecture. We should probably make a separate issue to talk about problem sets though.
Ok, we are finally getting this repo up to a point where we can start writing lecture notes. I think we should agree on what topics we plan to cover as well as the individual lectures that we plan to write so that we can start making issues and working on these individually.
Here is a rough outline for how I think that this should go. I think we should model the course at a high level off of the version offered by Nate in 2014sp. He has 6 high level topics:
Here are my feelings:
At a high level I think our syllabus should look like:
Here is the lecture schedule that I propose:
Here is my rationale for the above:
This totals 24 lectures, compared to the 27 lectures and 27 recitations of CS 3110. Overall, I think this syllabus better reflects the title Functional Programming and Data Structures.
We should discuss and finalize this syllabus ASAP so we can begin working on writing the notes.