Advanced CS Student Survey

Dear Advanced APCS students,

In order to provide an excellent learning environment for you in this coming school year, I would like you to help me answer the following questions, be as specific and detailed as possible, so that I can do a better job in terms of fulfilling your needs. Thank you for your time.

Mr. Lau

Why did you sign up to take this course? Be specific.

Just interested; to learn.

What do you expect to learn from this course? If you know nothing about the curriculum, just brainstorm by yourself and tell me something that you want to learn.

Fully understand Big-O notation. Basic algorithms and data structures, and when/why to choose one over another.

Mainly translating Stanford’s Developing iOS 10 Apps with Swift; read The Swift Programming Language (Beta). Wrote an app to post the translated subtitle to online video platform, practiced using recursion, HTTP request, async background queue, and Continuous Integration.

Wrote a raffle app in Kotlin (Google’s new programming language for Android, basically Java), refreshed memory of Swing, learned a little about JavaFX.

Read part of the K&R (The C Programming Language).
Watched a short series of basic tutorials about HTML & CSS.
Watched How GitHub uses GitHub series. Learned several git commands.

Please check those topics that you know something about. Tell me something about each if possible.

  • [x] Linked List: Holding a pointer to the previous/next Element. Easier to add/remove, harder to find index.
  • [x] Recursion: Using itself in the definition of itself. Throws StackOverFlowException.
  • [ ] Big-O notation
  • [x] Stack: First (push) In, Last (pop) Out. How I deal with recursive methods.
  • [x] Queue: FIFO.
  • [x] Priority Queue: Queue, elements ordered by priority.
  • [x] Hash Table: AKA Dictionary<K: AnyHashable, V: AnyObject>, mapping Key to Value.
  • [ ] Heap
  • [x] Tree: Nodes. May traverse in Pre/In/Post order (if should visit root first).
  • [x] Binary Search Tree: Each node has max 2 child, with left < this < right, and each child is BST
  • [x] Graph: (Un)directed edges connecting vertices.
  • [ ] Depth first search
  • [ ] Breadth first search
  • [ ] Quicksort (and basically all other sorting algorithms)

Your concerns about this course. Be specific and honest. Write as much as necessary!

Big-O notation sounds/is quite confusing, it took me a long time to understand why merge sort is O(nlogn).