(Spring 2018)

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:**

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"