Sunday, 23 April 2017

Algorithms and Abstract Data Types HL

Resources about various algorithms - Higher Level:

  1. http://www.algolist.net/Algorithms/ - various algorithms (sort, binary search) and programming concepts (recursion) explained
  2. From this link, be sure to revise the sequential and binary searches, plus the chapters on sorting algorithms and recursion (code examples are on Python, which means it's close to pseudocode, but you can run it if you have the Python 3 interpreter)
  3. http://introcs.cs.princeton.edu/java/40algorithms/ - an excellent chapter on Algorithms and Data Structures; there was a performance question in a recent past paper, so it may be a good idea to read 4.1 (performance) as well. Don't obsess over Tilde notation and skip memory usage as well. Our focus is to be aware of how some algorithms are more efficient than others (as you can see by their classification into their order of growth: constant, logarithmic, linear, quadratic, cubic, exponential, etc.)

Resources about Abstract Data Types:


2D Arrays and IB Pseudocode

This brief post shows how to create a bi-dimentional array and describe it using IB pseudocode. It isn't stated in the IB Pseudocode in Examinations or Approved notation for developing pseudocode documents, so it's my answer to it, not an official one. Don't sue me if your examiner disagrees with me!
define A as array of size [ROWS][COLUMNS] or
define A as array of size (ROWS, COLUMNS)
define A as array of size [5][6]
define A as array of size (5, 6)
Usually IB papers will have defined it for you, or they may not ask you at all to define the size. You could define it (unknown size) as
define A as array of size [ ][ ]
...then you'd use it like
loop ROW from 0 to 5
    loop COL from 0 to 6
        output A[ROW][COL]     or    output A(ROW, COL) 
    end loop
end loop
I'd recommend going for the [ ][ ] style as it'd be more consistent with the single dimensional arrays described in the IB pseudocode documents mentioned above.

Arrays and Java

Just a short post with pretty much all you need to know about arrays in Java:
Below are some additional links about arrays and 2D arrays:

Algorithms 2017

Animations and videos of sorting and searching algorithms:

The following links point to videos and video channels showing animations of different sorting algorithms:
Sequential (Linear) and Binary searches:
Bubble sort:
Selection sort:

Wednesday, 22 March 2017

Network and security

A very comprehensive glossary of network terms, obviously not all required for our examinations and syllabus, but they are extremely valuable.
Also, links to how stuff work's networking and security.

Although you don't need to memorise the OSI reference model, awareness of the layered nature of networks is very important.
And finally, a slideshow on error detection and correction:


Algorithms and Abstract Data Types HL

Resources about various algorithms - Higher Level: http://www.algolist.net/Algorithms/  - various algorithms (sort, binary search) and pr...