ผลต่างระหว่างรุ่นของ "01204212-59"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
 
(ไม่แสดง 58 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน)
แถว 4: แถว 4:
  
 
* The book for the course: [https://www.gitbook.com/book/jittat/dsbook-concrete-to-abstract/details Data Structures] (more material as we go)
 
* The book for the course: [https://www.gitbook.com/book/jittat/dsbook-concrete-to-abstract/details Data Structures] (more material as we go)
 +
 +
== Topic list ==
 +
* 11-sep:
 +
** Sample task: nearest neighbor search, searching in arrays
 +
* 18-sep:
 +
** Sample task: nested comment reporting, iterative solution, recursive solution
 +
* 25-sep:
 +
** List abstract data type
 +
** Array implementation of list adt
 +
** Linked lists (using only list nodes)
 +
* 1-sep:
 +
** Linked list class
 +
** The iterator pattern
 +
** Generic data structures
 +
** Running time analysis
 +
* 8-sep:
 +
** Queues and stacks
 +
** Java Queue interface and Stack class
 +
** Implementations of queues and stacks with linked lists
 +
* 15-sep:
 +
** Recursion
 +
** Java List collection
 +
** Recursive versions of insertion sort and selection sort
 +
* 22-sep:
 +
** Set and map abstract data types: Set and Map interfaces (with two implementations hash map & tree map)
 +
** Binary search
 +
** Static sets and maps implementation with binary search
 +
* 6-Oct:
 +
** Binary search trees
 +
* 13-Oct:
 +
** Running time analysis/Big-O notation (formal)
 +
** Balanced binary search trees (AVL trees)
 +
* 3-Nov:
 +
** Priority queues
 +
** Binary heap
 +
** Heap sort
 +
* 10-Nov:
 +
** Sorting 2: quicksort and mergesort
 +
* 17-Nov:
 +
** Hashing
 +
* 24-Nov:
 +
** Hashing 2
 +
** Intro to graphs
 +
* 1-Dec:
 +
** Deletion & Lazy deletion
 +
** Graph representation
 +
** Breadth-first search
  
 
== Tasks ==
 
== Tasks ==
 
* Introduction: [[01204212/nearby search|Nearby Search]], [[01204212/statuses|Statuses]]
 
* Introduction: [[01204212/nearby search|Nearby Search]], [[01204212/statuses|Statuses]]
* Lists [[01204212/Zooma 1|Zooma 1]], [[01204212/Zooma 2|Zooma 2]], [[01204212/Zooma 3|Zooma 3]]
+
* Lists: [[01204212/Zooma 1|Zooma 1]], [[01204212/Zooma 2|Zooma 2]], [[01204212/Zooma 3|Zooma 3]]
 +
* Stacks and queues: [[01204212/job queue|Job queue]], [[01204212/paren|Parentheses]], [[01204212/expr|Expressions]]
 +
** Java collections:
 +
*** Queues [https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html interface Queue<E>], [https://docs.oracle.com/javase/tutorial/collections/interfaces/queue.html short descriptions and examples]
 +
*** Stacks [https://docs.oracle.com/javase/7/docs/api/java/util/Stack.html class Stack<E>]
 +
* Sorting 1
 +
** Recursive practice [[01204212/recur]]
 +
** Sorting tasks: [[01204212/integer sorting|Integer sorting]]
 +
* Sets and maps: [[01204212/id request|ID Request]], [[01204212/like|Like count]], [[01204212/resistors|Resistors]]
 +
* Priority queues: [http://theory.cpe.ku.ac.th/~jittat/courses/01204212/tasks/icecream/icecream3.pdf icecream shop 3], [http://theory.cpe.ku.ac.th/~jittat/courses/01204212/tasks/icecream/icecream4.pdf icecream shop 4]
 +
** [[01204212/icecream|Codes and links]]
 +
** Test data: [http://theory.cpe.ku.ac.th/~jittat/courses/01204212/tasks/icecream/3 icecream3], [http://theory.cpe.ku.ac.th/~jittat/courses/01204212/tasks/icecream/4 icecream4]
 +
* Sorting 2 [[01204212/integer_sorting#More_codes|More code from integer sorting]]
 +
* Hash tables:
 +
** [[01204212/spreadsheet|Spreadsheet]]
 +
** [[01204212/scores|Scores]]
 +
* Graphs
 +
** [[01204212/friends|Friends]]
 +
** [[01204212/river crossing puzzle|River crossing puzzle]]
 +
 
 +
== Homework ==
 +
* Homework 1 (due: Aug-7): [[01204212/Zooma 2|Zooma 2]]
 +
* Homework 2 (due: Aug-16): [[01204212/job queue#Job_queue_2|Job queue 2]], [[01204212/expr|Expressions]]
 +
** Notes: In this homework, you '''must''' use your own implementation of queues and stacks based on our linked list implementation.  You can start with [[01204212/codes/queues and stacks|stack and queue implementations]] that use this [[01204212/codes/linked lists|linked list implementation]].  '''Note that a few methods are left out, so you need to write your own version of them.'''
 +
** How to submit
 +
*** Send two separate emails, each for one of the problem
 +
*** For each problem, attach all your java files and send me an email with the subject "01204212 homework 2 jobqueue (58xxxxxxxx)" or "01204212 homework 2 expr (58xxxxxxxx)"
 +
* Homework 3 (out: Nov-12, due: Nov-19): [[01204212/homework/sorting|Sorting election 2012 results]]
 +
** How to submit: send an email to me with all your java files attached.  Use "01204212 homework 3 sorting (58xxxxxxxx)" as the subject (replace xxx with your id).
 +
* Homework 4 (out: Nov-24, due: Dec-1): [[01204212/homework/top scores|Top scores]]
 +
** How to submit: send an email to me with all your java files attached.  Use "01204212 homework 4 top scores (58xxxxxxxx)" as the subject (replace xxx with your id).
 +
* Homework 5 (out: Nov-30, due: Dec-4): [http://theory.cpe.ku.ac.th/wiki/images/204212_mid_webcache.pdf Web cache]
 +
** You can use any Java collection library (e.g., [https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html LinkedList], [https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html HashMap], or [https://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html TreeMap]).  So don't waste time implementing your own data structures.
 +
** How to submit: send an email to me with all your java files attached.  Use "01204212 homework 5 web cache (58xxxxxxxx)" as the subject
 +
* Homework 6 (out: Dec-5, due: extended to Dec-14 <del>Dec-12</del>): [[01204212/homework/maze|Maze]]
 +
** You can use any Java collection library  So don't waste time implementing your own data structures.
 +
** How to submit: send an email to me with all your java files attached.  Use "01204212 homework 6 maze (58xxxxxxxx)" as the subject
 +
 
 +
== Codes ==
 +
These are codes that you may or may not need.
 +
* [[01204212/codes/zooma|Codes related to Zooma tasks]]
 +
* [[01204212/codes/linked lists|Linked lists]]
 +
* [[01204212/codes/queues and stacks|Queues and stacks]]

รุ่นแก้ไขปัจจุบันเมื่อ 03:30, 11 ธันวาคม 2559

This is the course materials for 01204212 Abstract Data Types and Problem Solving, section 450.

Materials

Topic list

  • 11-sep:
    • Sample task: nearest neighbor search, searching in arrays
  • 18-sep:
    • Sample task: nested comment reporting, iterative solution, recursive solution
  • 25-sep:
    • List abstract data type
    • Array implementation of list adt
    • Linked lists (using only list nodes)
  • 1-sep:
    • Linked list class
    • The iterator pattern
    • Generic data structures
    • Running time analysis
  • 8-sep:
    • Queues and stacks
    • Java Queue interface and Stack class
    • Implementations of queues and stacks with linked lists
  • 15-sep:
    • Recursion
    • Java List collection
    • Recursive versions of insertion sort and selection sort
  • 22-sep:
    • Set and map abstract data types: Set and Map interfaces (with two implementations hash map & tree map)
    • Binary search
    • Static sets and maps implementation with binary search
  • 6-Oct:
    • Binary search trees
  • 13-Oct:
    • Running time analysis/Big-O notation (formal)
    • Balanced binary search trees (AVL trees)
  • 3-Nov:
    • Priority queues
    • Binary heap
    • Heap sort
  • 10-Nov:
    • Sorting 2: quicksort and mergesort
  • 17-Nov:
    • Hashing
  • 24-Nov:
    • Hashing 2
    • Intro to graphs
  • 1-Dec:
    • Deletion & Lazy deletion
    • Graph representation
    • Breadth-first search

Tasks

Homework

  • Homework 1 (due: Aug-7): Zooma 2
  • Homework 2 (due: Aug-16): Job queue 2, Expressions
    • Notes: In this homework, you must use your own implementation of queues and stacks based on our linked list implementation. You can start with stack and queue implementations that use this linked list implementation. Note that a few methods are left out, so you need to write your own version of them.
    • How to submit
      • Send two separate emails, each for one of the problem
      • For each problem, attach all your java files and send me an email with the subject "01204212 homework 2 jobqueue (58xxxxxxxx)" or "01204212 homework 2 expr (58xxxxxxxx)"
  • Homework 3 (out: Nov-12, due: Nov-19): Sorting election 2012 results
    • How to submit: send an email to me with all your java files attached. Use "01204212 homework 3 sorting (58xxxxxxxx)" as the subject (replace xxx with your id).
  • Homework 4 (out: Nov-24, due: Dec-1): Top scores
    • How to submit: send an email to me with all your java files attached. Use "01204212 homework 4 top scores (58xxxxxxxx)" as the subject (replace xxx with your id).
  • Homework 5 (out: Nov-30, due: Dec-4): Web cache
    • You can use any Java collection library (e.g., LinkedList, HashMap, or TreeMap). So don't waste time implementing your own data structures.
    • How to submit: send an email to me with all your java files attached. Use "01204212 homework 5 web cache (58xxxxxxxx)" as the subject
  • Homework 6 (out: Dec-5, due: extended to Dec-14 Dec-12): Maze
    • You can use any Java collection library So don't waste time implementing your own data structures.
    • How to submit: send an email to me with all your java files attached. Use "01204212 homework 6 maze (58xxxxxxxx)" as the subject

Codes

These are codes that you may or may not need.