Programming: from an Art to a Science - course materials

(Spring 2018)


wood
Course curriculum
Coding notes - Pascal, C#, and pseudo-code
Example of C# console application in online C# environment
Homework 1 (orientation)
     Problems
    Solutions: 1 2 3 4 5 6 7
Homework 2 (loops)
    Problems (solved: 1-4)
    Reading: Contracts, correctness, loop invariant.
    Reading: Design examples and techniques.
    Solutions: 1 2 3 4 5
Homework 3 (inductive functions)
    Problems (solved: 3-4)
    Solutions: 1 2 3 4 5
Homework 4
    Problems (solved: 1M)
    Solutions: 1 1M 2
Homework 5 (computational complexity)
    Problems (solved: 1 - 5)
    (Book reading: 1.1.3, 1.1.4, 1.2.27)
    Solutions: 1 2 3 4 5
Homework 6 (partitioning and sorting)
    Problems (solved: 1, 2, 4, 5)
    Solutions: 1 2 3 4 5
Midterm
    Problems
    Solutions: 1 2 3 4 5
Homework 7 (recursion)
    Problems (Solved: 1-6)
    Extra reading material - recursion
    Solutions: 2 3 4 5 6
Homework 8 (stack, queue)
    Problems (Solved: 1, 3, 4)
    Solutions: 1 2 3 4
Homework 9 (graphs)
    Problems (Solved: 1, 3, 4)
    Solution hints
    Solutions: 1 2 3 4 5
Homework 10
    Problems (Solved: 1, 2)
    Solutions: 1 2 3 4 5
Final
    Problems
    Solutions: 1 2 3 4 5

Related reading:

Edsger W. Dijkstra "A Discipline of Programming"
David Gries "The Science of Programming"
Niklaus Wirth "Algorithms and Data Structures"
Niklaus Wirth "Algorithms + Data Structures = Programs"
Alfred V. Aho and Jeffrey D. Ullman "Data Structures and Algorithms"
Thomas H. Cormen and Charles E. Leiserson "Introduction to Algorithms"