IB Year 1 Higher Level Computer Science

Wednesday 9 December 2020 - Block 1
← previous note | most current note | next note →
 

Daily Note

We will REVIEW abstract data structures, by again drawing a picture and writing some plain-English code.

  1. static and dynamic data structure
  2. arrays
  3. two-dimensional arrays
  4. stack
  5. queue
  6. linked list
  7. tree
  8. binary tree
  9. collections
  10. NEW: recursion

We will address the following questions: 

  1. Why bother with a data structure? Whats the point?
  2. Let's look at a simple abstract data structure as we think about arrays
  3. Let's look at a specific example of an abstract data structure as we think about two dimensional arrays
  4. Let's look at a specific example of an abstract data structure as we think about stacks. Please pay attention to the undo move button at the bottom of the screen
  5. Lets look at a specific example fo a queue. I will print out 3 images and we will go look at the printer queue
  6. We are going to revisit how images are stored in a computer system. You will need two files, both in the same directory, please:
    1. This python file
    2. This image file
  7. We will use this tool to learn about linked lists (and doubly linked lists)
  8. We wil use the same tool to learn about stacks
  9. We will use the same tool to learn about queue's

 

A little less comfortable

Process

You should be revising our content for 20 minutes each day. As you learning about abstract data structures  you should be asking yourself how you can apply your understanding (how do I go from theoretical to practical). I would love to hear from you, "How can we use this information practically?". 

Product

As you are learning you should be taking notes, and developing a cookbook or spellbook. Most system administrators have a book of hints and tips they keep with them. You should have a digital text file or written notebook with helpful reminders to understand the deeper parts of your system. 

Content

At the end of the day, you should be able to apply your understanding of abstract data structures to issues to solve problems. You must understand the methods  of an ADT and how an ADT uses memory.

A little more comfortable

Process

You should be revising our content for 20 minutes each day. As you learning about abstract data structures  you should be asking yourself how you can apply your understanding (how do I go from theoretical to practical). I would love to hear from you, "How can we use this information practically?". It would be helpful if you implemented ADT in multiple programming languages. I would especially recommend trying to implement ADT in Rust or C. 

Product

As you are learning you should be taking notes, and developing a cookbook or spellbook. Most system administrators have a book of hints and tips they keep with them. You should have a digital text file or written notebook with helpful reminders to understand the deeper parts of your system. You should know enough about ADT's to teach your classmates, and help them understand how ADT's function. In addition, you should learn a few ADT's that are not on our curriculum; specifically, binary search trees, sets, and graphs

Content

At the end of the day, you should be able to apply your understanding of abstract data structures to issues to solve problems. You must understand the methods  of an ADT and how an ADT uses memory. You should be able to look at a situation or problem and really understand which ADT would be appropriate and why.

Our Big idea

The big idea for today is Abstract data structures.

The essential questions for this topic are:

Why do programmers organize data in specific ways? What advantages does one way of organizing data have over a different way of organizing data?

It takes time to explore and really understand a big idea. If you want to
learn more about abstract data structures (which is connected to today's daily note), please click here .

We are learning this because as a designers must understand scientific and technical innovation. Designers use systems, models, methods, and processes to solve problems.



Reminders & routines:

Please read and follow these reminders:

  1. IF today ==  testing_day_for_me:
         remember to go get tested!
     
  2. IF today == Friday:
         current_event_activity()
     
  3. Please check now: is visual studio code working from my programming folder?