CS400: Programming III

Spring 2019 Lectures 001, 002 and 004

   Refresh page to see latest announcements. [Readings]

Announcements

  • We have released scores for all assignments.
  • We hope to complete review of all grades on Tuesday and to submit final grades on Wednesday.
  • Piazza
    Resources
    Getting Started with Linux (pdf)


    Weekly Schedule of Topics

    Schedule is tentative for Spring 2019. Changes are possible as we see how much is covered each week.
    Last Updated: 9/19/2018

    Week 1:

    Course Intro, Linux, and Black Box Unit Testing
    Read: Read articles and watch videos as posted in Module 1 on Canvas site.
    Lecture outlines: Week 1 outline

    Week 2:

    Binary Search Trees: Terms, operations,
    Read: Trees Binary-Search-Trees,
    Lecture outlines: Week 2 outline

    Week 3:

    X-Teams (Exercise 1), Balanced Search Trees (AVL)
    Read: AVL Trees, JUnit 4 JUnit 5
    Lecture outlines: Week 3 outline

    Week 4:

    Red-Black Tree
    Read: Red-Black Trees
    Lecture outlines: Week 4 outline (added p11-p14)

    Week 5:

    Git/GitHub, 2-3, 2-3-4, and B+ Trees
    Read: UPL's Git-Tutorial 2-3 Trees
    Lecture outlines: Week 5 outline

    Week 6:

    Hashing, Collision Resolution, Hash Tables
    Read:
    Hashing, [optional] SHA-1 Algorithm, O'Reilly on Nested Classes,
    Lecture outlines: Week 6 outline

    Week 7:

    Finish Hashing, Graph Terminology
    Read: Graphs
    Lecture outlines: Week 7 outline

    Week 8:

    Graphs: Edge Representations, Traversals and Spanning Trees
    Read: Graphs
    Lecture outlines: Week 8 outline

    Week 9:

    Graphs: Spanning Trees, Topological Ordering, Dijkstra's Shortest Path
    Sets, Linear Sorts
    Read: Sets, Complexity, Sorting Review and Linear Sorts, Flashsort Algorithm by Karl-Dietrich Neubert
    Lecture outlines: Week 9 outline,

    Week 10:

    Project Intros, Enumerations, Interfaces, OO Design: Diagrams and Documents, UNIX commands, shells, scripts, vim and Makefiles
    Read: Unix Makefile Tutorial, Enums, Nested Classes, Inner Class Example, Local Classes, Anonymous ClasAses,
    Lecture outlines: Week 10 outline

    Week 11:

    Java FX: User Interface Controls
    Java 8: Functional Interfaces
    Read: Functional programming in Java 8 Using Lambda Expressions, Lambda expressions,
    Lecture outlines: Week 11 outline

    Week 12:

    Makefiles, JavaFX Main.java, UI Controls, Panels, Scenes
    Read: Java FX: Create a Form, JavaFX: Hello World
    Lecture outlines: Week 12 outline

    Week 13:

    EventHandlers, Functional Interfaces, and Streams
    Read: Java 8 Streams Part I, Java 8 Streams Part II, java.util.stream.Stream API,
    blog.jenkster.com What is Functional Programming,
    Quora.com What is Functional Programming,
    dev.io How to write an awesome GitHub README,
    Spring 2019 Final Project Design Doc (Quiz Generator) (pdf),
    Lecture outlines: Week 13 outline

    Week 14:

    HTML/CSS/JS
    Read: www.w3school.com: HTML, CSS, and JS
    Clean Code, Object-Oriented vs Functional Programming,
    Just say no to more end to end tests,
    Computer Science ethics course,
    Lecture outlines: Week 14 outline
    Course Overview Summary

    Week 15:

    Test Driven Development (TDD), Catch Up and Review
    Read:

    Lecture outlines:


    Report broken links and accessibility issues to deppeler at server cs.wisc.edu
    Copyright ©2018 Debra Deppeler, All rights reserved.