10.020 DDW Learning Objectives

Week 1: Python (Concept Map)

  • Apply Python’s procedural programming and basic data structures
  • Define and call functions
  • Implement:
    • Bubble sort and
    • Insertion sort algorithms to sort a sequence of number
  • Use print statements to debug code

Week 2: Analysing Programs (Concept Map)

  • Write functions to do binary heap data structure operation
  • Implement heapsort using iteration
  • Define Big-O notation and other asymptotic notations
  • Derive complexity of a code using its computation model
  • Create plots from array data for visualising computational time
  • Measure computation time for bubble sort, insertion sort, built-in sort, and heapsort

Week 3: Divide and Conquer (Concept Map)

  • Solve problems using recursion
  • Identify problems that has recursive solutions
  • Explain and implement merge sort algorithm
  • Derive solution of recurrence of merge sort using recursion-tree method
  • Measure computation time of merge sort and compare it with the other sort algorithms

Week 4: Object-Oriented Paradigm (Concept Map)

  • Create class definitions with initialization and other methods
  • Create stored property and computed property
  • Draw UML class diagram of a class with attributes and methods
  • Explain has-a relationship
  • Discuss object aliasing and copying
  • Draw UML class diagram for has-a relationship
  • Implement abstract data type for Stack, Queue using Object Oriented paradigm
  • Apply Stack and Queue for some applications
  • Implement Queue using double Stack and discuss implementation impact on computation time

Week 5: Searching Data (Concept Map)

  • Use Dictionary to represent graph
  • Apply basic dictionary operations
  • Define graph, vertices, edges and weights
  • Differentiate directed and undirected graphs
  • Define paths
  • Create a Vertex class and a Graph class
  • Represent graphs using adjacency-list representation or adjacency-matrix representation
  • Explain and implement breadth first search
  • Explain and implement depth first search

Week 6: Inheritance and Object-Oriented Design (Concept Map)

  • Inherit a class to create a child class
  • Explain is-a relationship
  • Draw UML diagram for is-a relationship
  • Override operators to extend parent’s methods
  • Implement Deque data structure as a subclass of Queue
  • Implement Array and Linked List data structure from the same base class

Week 8: Visualizing and Processing Data(Concept Map)

  • Create scatter plot and statistical plots like box plot, histogram, and bar plot
  • Create a Panda’s DataFrame and selecting data from DataFrame
  • Using library to read CSV or EXCEL file
  • Split data randomly into training set and testing set
  • Normalize data using min-max normalization
  • Give example of linear regression and classification

Week 9: Modelling Continuous Data (Concept Map)

  • Write objective function of linear regression
  • Implement Gradient Descent algorithm for optimisation
  • Train linear regression model using gradient descent
  • Transform data for higher order features
  • Evaluate linear regression model using r^2 and mean-squared-error
  • Evaluate and choose learning rate
  • Plot cost function over iteration time
  • Plot linear regression

Week 10: Classifying Categorical Data (Concept Map)

  • Write objective function of logistic regression
  • Use logistic regression to calculate probabilities of binary classification
  • Train logistic regression model
  • Split data into training, validation, and testing set
  • Visualize non-linear decision boundary
  • Classify multi-class problems using one-vs-all technique
  • Calculate confusion matrix, precision, and recall

Week 12: Design of State Machines (Concept Map)

  • Define a state machine
  • Implement an Abstract Base Class for State Machine using abc module
  • Define output function and next state function
  • Draw state transition diagram and time-step table
  • Implement output function and next state function inside get_next_values overridden method.
  • Apply breadth first search to perform state-space search