IB Computer Science year 2 - Frankfurt International School - Dave_Mulkey@fis.edu - 2013-14

The Party's Over - 20 May 2014

We're finished now - the exams are history.  However, it's never too late
to learn a little bit more.  Here is the answer to almost every question on Paper 3:


 Links : IA Project Info   IBO Documents  IB Syllabus

   *     BIG EXAM REVIEW PAGE      *
   *                                                    *

 Next Assignments :  Exams in May


Paper 1 - Friday afternoon -  write PSEUDOCODE

Paper 2 - Monday morning -
                 FIS students MUST answer Object Oriented Programming
                 questions (section D) - and
write  JAVA code

Paper 3 (HL) - Monday afternoon - read the CASE STUDY again before the exam

REVIEW SESSION - 17 Apr 2014

We will have a REVIEW SESSION from 13:00 until 17:00,
hopefully covering the entire CORE syllabus (Paper 1),
and maybe a couple other things.  Meet in room 276
at 13:00 and bring your laptop.

Last Day of School for Seniors - 11 Apr 2014

[HL] - Vocabulary and definitions for the case study

Any questions?

Exam Review - 9 Apr 2014

SL - Suggested Review for Today

  Programming Concepts Vocabulary (Read this, learn the words)

  Pseudocode Practice Tool (Read sample algorithms, make changes, test)

  Pseudocode Notes for Exams

  Pseudocode Explanations (not in exams) 

HL - Continue review of Case Study for Exam Paper 3

  Buffer Overflow Exploit (read only - don't try it)

  SYN Flood    Smurf Attack

  Root privilege , Linux , Apache Web Server , built in security, Windows XP

More Review - 7 Apr 2014

Syllabus Notes for Topic 2 - Computer Organization


Core Summary Questions        HL Extension Questions       All Question with Answers

Vocab Interactive(download, run .jar file)

Syllabus Section 2 - System Fundamentals - 4 Apr 2014

Guide (syllabus) = look at Topic 2

Here are the notes from the old syllabus - they are still clear and useful.
Spend an hour reading these notes, starting at the CPU (3.2)
and finishing at 3.5 analog and digital data

This looks like a pretty good vocabulary list.

Here is another vocabulary list with blurry text.(not really for IB, but still useful)

Here is an unfinished Wiki about IB CS - the finished parts are good.

Programming Practice - 1 Apr 2014

Do as many of these exercises as possible (you won't finish all of them).
If the first ones are too easy, start with the harder ones.
None of these involve INPUT - and OUTPUT can be done
with System.out.println.  You can write these in BlueJ,
then the output will show up in the Text window.

- Start with 10 numbers in an array :
     int[] nums = {5,7,4,8,9,1,6,4,2,0};
   Add up all the numbers that are larger than 5.
- Start with 10 numbers in an array.
   Find the largest number and the smallest number,
    subtract them and print out the result - that is the "RANGE".

- Start with 2 arrays, each containing 10 numbers.
   SORT one array in ASCENDING order, and the other in DESCENDING order.
- Start with 2 arrays, each containing 10 numbers.
   Combine them into a 3rd array that will then contain 20 numbers.
- Start with 2 arrays, each containing 10 numbers.
   Combine them into a 3rd array that contains all the numbers,
     but leave out any DUPLICATES.
   So the 3rd array might contain 20 numbers, or it might contain fewer.
- Start with 2 arrays, each containing 10 String values.
    Combine them into a 3rd array that contains all the names, but no duplicates.
- Start with 2 arrays, each containing 10 names (Strings).
     Search for duplicates.  If a duplicate name is found, then REMOVE it
      from BOTH lists, moving up the rest of the names so that
      there are no "empty" spaces left.  But all the duplicates must be
      kept in a 3rd array - don't just throw the names away.

Continue Disussing Sports Manager Program - 31 Mar 2014


Homework  :  Add a changecoach() method to the Team class,
as well as a corresponding command in the user interface.

More OOP Notes and Practice - 26 Mar 2014

Java OOP Syllabus Notes

JETS Java Specification

Learn Algorithms
These algorithms are from the old syllabus, but they are still useful for
practicing Java programming.  You probably don't need to do the
really simple ones (like adding fractions), but searching, sorting
and the Dinner Party algorithms are useful.

Quiz on Cafeteria Design + More OOP - 24 Mar 2014

(1) Quiz about Cafeteria System Design

(2) Homework - read  2011 Paper 2 #2
      and prepare to discuss it tomorrow.

[HL] Linked List Practice - 21 Mar 2014

Download and extract this LinkedListPhones.zip archive.

This is a NetBeans project, containing a LinkedList that keeps
track of phone calls - phone numbers and times.

You should read the notes and do the practice exercises
written at the top of the java class.

Cover Sheet for IA - to be printed and signed - 20 Mar 2014

Complete this during class:

Homework (you can start during class):

Paper 2 = Java OOP - 18 Mar 2014

Java OOP Syllabus Notes

OOP Design Notes

Mock Paper 2

Paper 2 in Specimen Exams 2014

Computational (algorithmic) Thinking - 13 Mar 2014

Paper 1 (HL) #13 in Specimen Exams 2014

Algorithms - 12 Mar 2014

We will discuss the sample algorithms in Pseudocode Practice Tool

Homework - Read Paper 1 (HL) #13 in Specimen Exams 2014
    We will discuss question #13 tomorrow during class.

[HL] Specimen paper 1 - #15 and #14 - 11 Mar 2014

Here are the answers we wrote in class:


(ai) on/off switch
(aii) when the temperature is too hot or cold

(b)  switch to turn the system on and off
     dial - for maximum
     thermal sensor

(c)  loop while SWITCH = true
        MINIMUM = dial.getMinimum()
        MAXIMUM = dial.getMaximum()
        TEMPERATURE = sensor.getTemperature()
        if TEMPERATURE < MINIMUM then
         else if TEMPERATURE > MAXIMUM then
        end if
     end loop

(d) advangages
     fewer settings to adjust
     cheaper/simpler to install and maintain
     everybody is equal

     need connections like cables
     if central control breaks, bigger problem
     the central program is more complex

(a)  Game, Browser, Youtube video

(b)  Multi-tasking - splits the processing
       cycles (time) between the apps
     Memory Management - allocating memory

     Moves apps from permanent storage
       to RAM

     Switches the display between apps as needed

(c) Power consumption
    - keep power consumption low
      to preserve the battery and
      reduce the heat

    Permanent storage    
    - shouldn't be a spinning hard-disk
      must be small enough to fit in the phone

(d) It better be a chip, not a card.
    Good -
      better graphics
      more desirable - get more users
      enable 3D games

      consumes more power
      produces more heat
      make the phone bigger
      make the production more complex
      redesign the OS

Network Practice Questions - 10 Mar 2014

Homework - become an Expert at the Pseudocode Algorithm that you chose.
Pseudocode Practice Tool

(11) Assume that a bank director wishes to be able to work from home.
He wants to access secret documents as well as public documents from his bank's servers.

   (a)  Outline one advantage and one disadvantage of using a wireless (WIFI) connection at home.

   (b)  Outline one advantage and one disadvantage of using VPN.

   (c )  Explain why he might be able to work WITHOUT using HTTP.

   (d)  Explain why the documents probably contain ASCII codes.

   (e)  Outline 2 ways that ENCRYPTION might be used in this system.

More about Networks 7 Mar 2014

Project Presentation Meetings :

Each student must present his/her project to the teacher in a 20 minute meeting.
We need to schedule these meetings.

Alex - 13 Mar 9:40

Martin - 17 Mar 14:45

Tanmay - 14 Mar 12:55

Yasin - 14 Mar 12:30

Philipp - 13 Mar 10:05

Evan - 12 Mar 13:25
Alexandros - 19 Mar 8:40

Julius - 10 Mar 9:40

Jonas - 20 Mar 10:50

Jeong-Hwan - 20 Mar 11:20

Jun Hyung - 17 Mar 14:20

Sunyong -  18 Mar 11:45

Cody - 21 Mar 13:30

-- Algorithmic and Computational Thinking --

Guide (syllabus) - Section 4.1

You have been engaged in Algorithmic and Computational Thinking
all during this course.  Now you must take a meta view of what
your brain is doing when solving problems and designing computer systems.

We will discuss this next week.  Today, answer this question:

Somebody or some system needs to schedule the meetings for the
individual project presentations.  Suggest algorithms (methods)
that could be used by:
  (1) the teacher
  - or -
  (2) the IBDP Coordinator (Mr Toyne)
  - or -
  (3) a computer program

Explain why the 3 different "problem-solvers" might use different algorithms.

You may wish to start by considering:  Input-Processing-Storage-Output

-- Sample questions about Network Fundamentals --

Answer these practice questions about Network Fundamentals:

Discussion Questions

(0) Specimen Exams 2014 - Look at Paper 1 Question #9

(1) Explain 2 differences between the World-Wide-Web and a Wide-Area-Network.

(2) Outline a sensible SECURITY system for use in a Peer-to-Peer network.

(3) The OSI Layers model is supposed to provide standardization for Network communications.

     Explain why other standards like ASCII, UNICODE and HTML are still needed, even though
     they are not part of the OSI standard.

(4) Explain why SOFTWARE is more important than HARDWARE when setting up a VPN.

(5) Explain why WIFI and VPN might BOTH be needed to provide mobility for some users.

(6) Explain the different roles of HTTP and HTML in the World-Wide-Web.

(7) Oultine 2 advantages that make Optical Fibre better than Copper Cables for outdoor use.

(8) Outline the most important difference between how SMTP transfers email
    and how HTTP distributes web-pages.

(9) Explain the importance of check-sums ina packet-switching system.

(10) Explain two essential differences between MAC security and userID security
      in a wireless network connection.


(11) Assume that a bank director wishes to be able to work from home.
He wants to access secret documents as well as public documents from his bank's servers.

   (a) Outline one advantage and one disadvantage of using a wireless (WIFI) connection at home.

   (b) Outline one advantage and one disadvantage of using VPN.

   (c )  Explain why he might be able to work WITHOUT using HTTP.

   (d)  Explain why the documents probably contain ASCII codes.

   (e)  Outline 2 ways that ENCRYPTION might be used in this system.


Continuing Discussion of Networks - 6 Mar 2014

Network Fundamentals

3.1.14 - Future wireless networks ??

Networks and the Web - 4 Mar 2014

Network Fundamentals

Networks and the Web - 3 Mar 2014

Tomorrow we will discuss Topic 3 in the IB Computer Science Guide.  You should read Chapter 15 in Computer Science Illuminated.

Finish your IA Project - 18-21 Feb 2014

Finish the project.  It's due on Monday 3 March -
that is the first day after the vacation.

If you need help with technical details like
how to make a video, you need to ASK FOR HELP.

Free USB Stick - 17 Feb 2014

You must use this folder structure and cover page
for turning in your IA project.  You will receive a
USB stick with this folder structure pre-copied.
If you need a new copy, download the .zip file above
and unpack it.

Your IA project is due on Monday 3 March.
You must submit the USB stick that you received,
with all your files on it.  Make sure that all the links
from the cover page work, and that you have copied
your Java folder into the PRODUCT folder.
If you wish, you can provide instructions for
loading your program - there is a box on the cover page.

13 Feb 2014

SL - Continue working on your IA Project

HL - Specimen Paper 1 - #11 
About Collections and 2D Arrays

A COLLECTION is the Pseudocode version of a Vector

References -
Read about COLLECTIONS in the Pseudocode Explanations  
Pseudocode Practice Tool - look at Names_Collection

Practice with Logic and Gates - 11 Feb 2014

Do these problems without using a computer.

Here are the teacher's answers

Stacks and Programming Languages and Recursion - 10 Feb 2014

We will discuss the use of STACKS in the INTERNAL WORKINGS of a programming language.

You might want to read in your textbook: sec 7.6

Homework :
Predict what will be printed by this method.
Then run it in Java and check your prediction:


printBackward(int start)



   if ( start > 0 )






More Circuits - 6-7 Feb 2014

NAND Gates and More Questions

Introduction to Circuits - 5 Feb 2014

Let's put the Internal Assessment aside for a few days. 

We must learn how CIRCUITS work inside computers.

Circuit Simulator

Circuit Excercises

Homework: Reference Reading
Computer Science Illuminated p. 92-103 (here is an old version)

DUE on Monday 3 Feb 2014

Initial part of Stage C - turn in the following:
-  a FUNCTIONING copy of your program,
   that the teacher can RUN on his computer

- a clear explanation of TWO ALGORITHMS
  (the most interesting ones) that demonstrate COMPLEXITY
   Include Java code if that makes the explanation easier.
  But the EXPLANATION includes the PURPOSE of the code -
   it is not just an English translation of the code.

- SCREEN-SHOTS showing that the TWO ALGORITHMS (above)
   functioned correctly achieved their purpose

We will finish the rest of Stage C next week.

Programming - 8 Jan 2014

Work on your Java Program for the Internal Assessment project.
Use the opportunity to get help.  Make sure you make
useful progress each day.

[HL] Case Study - 7 Jan 2014

We will discuss the Case Study further today,
as well as review the Mock Exam Paper 3.

Holiday Suggestions - 13 Dec 2013

Now that mock exams are over, it's time to concentrate your efforts
on the Internal Assessment Project for IB Computer Science.

In January, you will have most (perhaps all) of class time to devote
to writing the Java program for your Internal Assessment Project.
Plan on bringing a working laptop with your project program
to class every day.  This class time alone will probably not be
sufficient to finish the program, so you should plan on also
working at home during January, and possibly doing some work
ahead of time (if you have not done so already).

Most of the Stage B Design documents were fine - you should read
the teacher's comments in Haiku.  It is not necessary to make
any improvements in your Stage B document at this point,
but if you think the grade you received was unfair,
you should discuss it with the teacher. The teacher will be
reviewing these anyway during the break, and some grades
may be raised.

Your working Java program will be due at the end of January.
The stage C Development documentation is due on 3 Feb. 
You should probably consult the IA Documentation to see what Stage C looks like.

Review Suggestions - 28 Nov 2013

To review/practice for the Mock Exams, the following are suggested:
Paper 1 Sample mock exam    Paper 1 Sample Mock Exam with answers
Pseudocode algorithm examples.     Pseudocode Practice Tool

Specimen Paper 2 (distributed on paper)
Java algorithm practice   Do some practice Java programming (in NetBeans or Processing)

[HL] read the Case Study to prepare for Paper 3.

Review class blogs:
2012-2013 Blog       2013-2014 Blog (this page)

Read your own notes

Not useful for review, but read it if you wish:  JETS.pdf

[HL] notes from today

boolean removeBus(int pos)
   {  head = head.next;
      return true;

   Node temp = head;
   for(int c=0; c < pos-1; c++)
      { temp = temp.next; }
      { return false; }
   temp.next = temp.next.next;
   return true;

class Node extends Bus
   Node next = null;



 if ID's are 1000...2000

      1250           1750
   1125   1375     1625   1875
Start with the "middle" id at the ROOT,
make a proper binary-search-tree
and it should be balanced
so that it is efficient
O(log2(N)) whereas a linear search
takes O(N)

insert(new Node(5000), ROOT)

insert(Node NN, Node HERE)
   if( HERE==null )
   {  ROOT = NN;
      { HERE.leftChild == NN; }
      { insert(NN, HERE.leftChild); }
   else if (NN>id > HERE.id)
      { HERE.rightChild == NN; }
      { insert(NN, HERE.rightChild); }
   {  output(error); return; }

- difficult to write
- uses more of the STACK
- not noticeably slower

More Review Solutions - 27 Nov 2013

Here is a copy of the  Paper 1 Sample Mock Exam with answers

We will discuss problems #3 and #4 on the Specimen Paper 2 handed out yesterday.

Question 3d notes:     

Below is Java code for two of the new Bus classes.
This is not required - we did it as a thinking exercise.
Your answer only requires the CREATION header
for each VARIABLE and each METHOD,
as shown a the right.
public class UrbanBus extends Bus
     public UrbanBus(int i, String d, BusRoute r)
public class SmallerBus extends Bus
    private  String  cashier ;
   public  SmallerBus(int i, String d, BusRoute r, String n)
   {   setId(i);
    public  void  setCashier( String name )
         if( !name.equals(driver) )
         {     cashier = name;   }
         {      }
    public  String  getCashier( )
    {    return cashier; }

     public  String  toString()
          return  super.toString() + " Cashier:" + cashier;

Your answer should contain DIAGRAMS
 as shown below - one box for each new class

UrbanBus extends Bus
  .. no new variables ..
public UrbanBus(int i, String d, BusRoute r)

SmallerBus extends Bus
private String cashier
public SmallerBus(int i, String d,
                           BusRoute r, String c)
public void setCashier(String c)
public String getCashier()
public String toString()

DeliveryVan extends Bus
private String coDriver
private String helper
public DeliveryVan(int i, String d, BusRoute r
                            String cd, String h)
public void setCoDriver(String cd)
public void setHelper(String h)
public String getCoDriver()
public String getHelper()
public String toString()

Paper 2 Specimen Paper - 26 Nov 2013

Handed out on paper

[HL] HL Practice for Mock Exam - 25 Nov 2013

Problems #17 and #18 on this c.

Case Study

Don't forget that HL has a Paper 3 about the Case Study.
The Mock Exam Paper 3 will not be as detailed
as the real exam will be, as we have not had
much time to study this.  Nevertheless, you
must make sure you understand all the following terms:

Bots, Botnets, BYOD, DoS attacks, clients, servers, firewalls,
malware, man-in-the-middle, packet-filtering, proxy servers,
spam, SSL, vulnerabilities, virus scanners, zero-day attacks

Algorithm Review and Practice - 20 Nov 2013

You should do some practice and review with algorithms.

In Paper 1, you must read (and should write) Pseudocode.
Try do some practice with these Pseudocode algorithm examples.

If you are "hooked on Java", you might want to try this
Java version of algorithm practice .

Here are some STANDARD ALGORITHMS that you should be
able to read or write quickly and easily during an exam.
You might wish to try writing these algorithms quickly
in the Pseudocode Practice Tool

Add up a sequence
of numbers
like 1+3+5+...+99

Count backward from
100 down to zero

Output a sequence
like 1,2,4,8,16...1024

Count in a cycle like

Add up numbers until
a specific total is reached,
like 1+2+3... until >1000

Print the Fibonacci sequence
where each number is the
sum of the two previous
Search for a value
in an array(linear or
sequential search)

Bubble sort

Count all the numbers in a
specfic range, like between
50 and 100

Find the largest or smallest
number in an array

Add 5% to every number
in an array

Search for duplicate entries

Reverse the order of
the items in an array

Insert a new item in the
middle of an array

In parallel arrays, find a
value in one array and
output the corresponding
value in the other array
Decide whether a number
is even or odd

Decide which one of 4 numbers
is the largest

Decide whether a number
is in an expected range,
like an AGE is between 1 and 99

Decide whether two Strings
have the same first letter
(using a "firstLetter" method)

Decide whether one number
is a factor of another
(using the mod operator)

Decide whether 2 numbers
match in a set of 4 numbers

Output all the
items in a collection

Search for an item
in a collection

Count the number of
items in a collection
that match some
criteria, like  >50

=== 2D arrays ===
Search for an item
in a 2-D array

Add up a row in a
2-D array

Search for matching
neighbors in a
2-D array

Continue Mock Exam Review - 19 Nov 2013

We will continue reading through the old mock exam.

Review for Mock Exams - 18 Nov 2013

Read this old mock exam.  Find the questions that you DON'T understand
and ask questions.

Stage B - Design Overview - 12 Nov-18 Nov 2013

Stage B of your Internal Assessment Project is due Monday 18 Nov 2013.
We will work on this during classes this week.

Here are a few links that may be helpful

   Checklist (IBO)     Assessment Criteria (IBO)     

   Sample Projects :    4 Color Map in Python     Mancala Game in Scratch 


   Record of TASKS :
      Download this document and use it - this is a requirement.
Include all the tasks you have completed so far, as well as
       a reasonable guess at tasks you will complete in the future.
      Here is an example:
Record of tasks for 4-Color Map Problem

   DESIGN overview - be sure to include the following (your grade will depend on it): 

     Style : Use Tables, Bullet-points, Diagrams to keep the reading requirement at a low level.
          Look at the SAMPLE PROJECTS and make yours look like that.

     Needs/Goals : Include diagrams that show either what the user will see,
        or data and input/output from the original problem - preferably BOTH.

     Solution Overview : Include either a large flowchart or a top-down-design-structure-chart
        to show an overview of the LOGIC of your solution.

     Algorithms : Include pseudocode (or Java code, or clear explanations) that illustrates automation -
        this is to ensure that a high level of complexity or ingenuity will be achieve in the final product.
        Do NOT copy long program listings here - stick to complex or ingenious algorithms.

     Tools/Techniques : Identify some specific techniques (Java commands or other technical tools)
       that will be used to improve the functioning of the product.

     Testing :  You do NOT need a TESTING plan at this time - we will add that later (in January).

     Make some references (at the beginning or end) back to the success criteria
mentioned in Stage A.

B Solution overview   (c) IBO  - IA Project Student Checklist

Record of tasks - Download this document

         Examples - 4 Color Map in Python     Mancala Game in Scratch

The Record of tasks form has been used.


The Record of tasks form refers to the product proposed in criterion A.


The Record of tasks form has been updated during the lifetime of the solution.


The Record of tasks form provides a realistic plan and timeline for managing the solution, including the gathering of necessary information, the development of the product and the testing process.


Design overview

The designs refer to the proposed product identified in criterion A and the Record of tasks form.


The designs include a range of design levels.


The design identifies a range of appropriate techniques and original thinking that will be used in the development of the product.


The designs are in sufficient detail to indicate how the product will function.


The test plan proposed addresses the main types of test appropriate to the product and relates to the specific performance criteria identified in criterion A.


[HL] Case Study:  Network Security - 11 Nov 2013

HL students will have 3 exam papers :
- Paper 1 : core syllabus with Pseudocode and Flowcharts
- Paper 2 : OOP Option with Java
- Paper 3 : Case Study

The Case Study is different each year.  In 2014 it is about Network Security.
The Case Study provides the stimulus material for the investigation of a scenario
involving current developments and/or issues in computer science.
Through their investigation of the Case Study, students must prepare to
answer questions covering the entire scope of the syllabus but related
directly to the Case Study.  The Paper 3 exam lasts one hour.
During the exam the students will have a printed (fresh) copy of the Case Study
that they may use as reference.

Students are expected to:
- read the entire Case Study ahead of time
- familiarize themselves with all the concepts and vocabulary
mentioned in the document
- further investigate the topics mentioned in the Case Study
- fulfill the expectations stated in the syllabus

Today, HL students should:
- read the Case Study
- discuss it with each other
- begin investigating some of the issues mentioned.
   For example, it would be useful to access the web-sites
   mentioned in the Case Study.

Today and before the next HL class, try to answer the following:
Wikipedia contains lots of straightforward (albeit long-winded) explanations
about many of the vocabulary words.  For example, here is a Wikipedia
explanation of "Zero-day attack" (read it quickly, not deeply).

More Practice with Flowcharts and Pseudocode - 8 Nov 2013

Flowcharts - We will practice turning a flowchart into pseudocode, using the flowcharts that
students wrote for homework  earlier in the week.

Pseudocode - Use the Pseudocode Practice Tool to do these problems.
  1. Write a loop that outputs 1,3,5,7,9,11,13,15,17,19 .
  2. Write an algorithm that has an array containing 2,3,5,7,11,13,17,19 (primes).
    The algorithm should use a loop to add up all the numbers in the array.
  3. Write an algorithm that contains an array of containing telephone numbers,
    and a parallel array containing matching names.  The algorithm should scan
    through the PHONES array and decide whether it contains any duplicate entries.
    If it finds two duplicat phone numbers, it should output the matching names.

More Practice with Pseudocode and Flowcharts - 4-6 Nov 2013

We will review the test from last week.

Homework : Read this document and bring questions - More advanced Pseudocode

Pseudocode and Flowcharts - 31 Oct 2013

IBO Basic Flowcharts and Pseudocode

You need to learn to read and write both pseudocode and flowcharts.

Here is a simple way to practice:
-  open the Pseudocode Practice Tool
-  choose a program (start at the beginning, do harder programs later)
-  run the program to see what it does
draw a flowchart that is equivalent to the pseudocode algorithm
-  put your flowchart away and don't look at it for 24 hours
-  the next day, get out the flowchart that you drew
    and write the equivalent pseudocode algorithm
-  compare your written pseudocode to the version originally in the Pseduocode Practice Tool

That's how you can practice on your own.  A quicker way is to work with a partner.
Each one draws a flowchart.  Then exchange the flowcharts and each student
must write the corresponding pseudocode.

Flow-charts - 30 Oct 2013

IA Project Examples

Mancala Video of product  

Video of product - Australia Input

Video of product - Australia Run 1
Mancala Design
Video of product- Australia Run 2

4 Color Map Design

Flowchart Resources

IB Pseudocode and Flowcharts

Simple Flowcharts

Fingers Flowchart

Lucid Flowchart Drawing Tool

[HL] Recursion Practice - 29 Oct 2013

This paper contains 3 recursion questions from past exams.
Work together as a group.  Use a computer if you wish.
Answer all 3 questions and turn in the answers (one copy
for the entire group) to the teacher at the end of class.

Stage B - Design - 28 Oct 2013

B Solution overview   (c) IBO  - IA Project Student Checklist

Record of tasks - Download this document

         Examples - 4 Color Map in Python     Mancala Game in Scratch

The Record of tasks form has been used.


The Record of tasks form refers to the product proposed in criterion A.


The Record of tasks form has been updated during the lifetime of the solution.


The Record of tasks form provides a realistic plan and timeline for managing the solution, including the gathering of necessary information, the development of the product and the testing process.


Design overview

The designs refer to the proposed product identified in criterion A and the Record of tasks form.


The designs include a range of design levels.


The design identifies a range of appropriate techniques and original thinking that will be used in the development of the product.


The designs are in sufficient detail to indicate how the product will function.


The test plan proposed addresses the main types of test appropriate to the product and relates to the specific performance criteria identified in criterion A.


Test on 1.2 Computer Design Basics - 25 Oct 2013

Test today

Review Questions for 1.2 Computer Design Basics - 24 Oct 2013

Here are some review questions.

Don't feel that you need to review all these questions,
nor that you need to write down your answers.
Discuss the questions with a friend(s),
agree on some sensible answers, and move on.
You won't be able to "memorize" these questions or
answers - you need to practice thinking and talking.

You should also review the notes you took in class
over the past 2 weeks.

Ethical and Moral Issues - 22 Oct 2013

Your textbook Computer Science Illuminated contains
numerous stories about ethical issues in computer systems.

Obama-Care Web-site Problems
More Obama-Care Web-site Problems

Research about Teenage Computer Users

Law and ICT - The Generation Gap
Blog About IT Generation Gap
The Effects of ICT on Schools
Bridging the Digital Gap

ICT "Gaps"
- ICT Gender Gap - who is better at using computers, boys or girls?
- ICT Economic Gap - what ICT advantages do rich people have over poor people?
- ICT Generation Gap - do "digital natives" have an advantage over older people?

Digital "Victims" - try reading the Risks Digest
- GPS fails
- Phone fails
- NSA surveillance
- Credit Card fails
- Military fails

More About Usability - 21 Oct 2013

More about Usability - sec 1.2.12-1.2.16

More About Usability - 18 Oct 2013

More about Usability - sec 1.2.12-1.2.16

[HL] Recursion

Syllabus Section D.4 on p.63

( (x + 4) / (x - 4) ) * 2

using the JETS standard String methods:
+ for concatenation
.substring(startPos, endPos)

Software Design - 16 Oct 2013

Software Design with System Diagrams and OOP

Top-Down Design

Flow Charts - 15 Oct 2013

Structure Chart Notes       Structure Chart Example

Data Flow Diagram Video   Data Flow Diagram Example

System Flow Chart Notes  System Flowchart Example

Software Design with System Diagrams and OOP

Stakeholders - 14 Oct 2013

Turn in your Stage A for the IA Project.

Today we will discuss Stakeholders -
syllabus section 1.2.4

Usability - 10 Oct 2013

Syllabus 1.2.12-1.2.16
Some ideas we will discuss:

Investigating Usability - 9 Oct 2013

HL students will take their Trees test today.

SL student will investigate usability issues.

Watch some of these videos (recommend starting at the top):

and/or read some of these web-sites:
Do as much as you can during class.

HL Students must do the usability investigation as homework,
but only need to spend 20-30 minutes at home.

System Design Basics - 8 Oct 2013

We will begin discussing syllabus section 1.2 System Design Basics (p.20-22)

[HL] More about Trees - 7 Oct 2013

Review Notes : Tree Traversals and Formula Trees

Practice :   Review Exercises

                 Review Exercises with Answers at the end

Unfortunately Mr Mulkey was in a hurry at the end of class
and answered Martin's question about RPN incorrectly (I think).
RPN has the operations AFTER the variables (or numbers).
If you need more information about RPN, you may wish to read this:

Discuss Stage A of IA Project - 25 Sep 2013

We will look at the guidelines for Stage A of the IA Project - due Mon 14 Oct

Checklist for Students               Guidance Flowchart

Mancala Game Sample Project       4 Color Map Problem
   Mancala Stage A Planning       4 Color Stage A Planning

Assessment Criteria           IBO Project Guidelines Web-site   

More About Traversals - 24 Sep 2013

HL Students will have a TEST about Trees on Wed 9 Oct.


Dynamic Formula Tree
Tree Traversals and Formula Trees

// This is an example program that implements a BINARY SEARCH TREE
// using a DYNAMIC data structure (use pointers)

   public class BinTree
      public static void main(String[] args)
      { new BinTree();}

      class Node                           
      { String data;                          
         Node leftChild;
         Node rightChild;

      Node root ;
      public BinTree()
         showTree(root,"   ");

      public Node makeTree()
         root = new Node();
         root.data = "Chancellor";
         root.leftChild = new Node();
         root.leftChild.data = "Vice Chancellor";
         root.rightChild = new Node();
         root.rightChild.data = "Verteidigung Min";
         root.leftChild.leftChild = new Node();
         root.leftChild.leftChild.data = "Sec Vice Ch";
         root.leftChild.leftChild.leftChild = new Node();
         root.leftChild.leftChild.leftChild.data = "Coffe Clerk Vice";
         root.rightChild.leftChild = new Node();
         root.rightChild.leftChild.data = "General";
         root.rightChild.rightChild = new Node();
         root.rightChild.rightChild.data = "Admiral";
         root.leftChild.rightChild = new Node();
         root.leftChild.rightChild.data = "Child of Vice";
         return root;

      public void showTree(Node here, String indent)
         System.out.println(indent + here.data + " ");
         indent = indent + "   ";
         if (here.rightChild != null)
         {showTree(here.rightChild , indent);}        
          if (here.leftChild != null)
         {showTree(here.leftChild , indent);}

   //---- Write your program above -------
   //---- Below are simple input and output methods ----

      static void output(String info)
      {  System.out.println(info);

      static void print(String info)
      {  System.out.print(info);

      static void output(double info)
      {  System.out.println(info);

      static void output(long info)
      {  System.out.println(info);

      static int inputInt(String Prompt)
      {  int result=0;
            catch (Exception e){
               result = 0;}
         return result;

      static double inputDouble(String Prompt)
      {  double result=0;
            catch (Exception e){
               result = 0;}
         return result;

      static String input(String prompt)
      {  String inputLine = "";
         {inputLine = (new java.io.BufferedReader(
                                        new java.io.InputStreamReader(System.in))).readLine();}
            catch (Exception e)
            { String err = e.toString();
         return inputLine;


Optional Reading -
You might find it useful to read section 8.5 Trees
in Computer Science Illuminated.

Dynamic Formula Trees - 23 Sep 2013

Dynamic Formula Tree

Formula Trees - 19 Sep 2013

Tree Traversals and Formula Trees

Formulas in Trees in Arrays

[HL] Trees - 18 Sep 2013

SL students - continue programming

HL students

   Trees Introduction

We will discuss the concept of a DECISION TREE,
and construct a simple Java program that implements it.

Work on Project Programs - 11-17 Sep 2013

Work on your program for the IA project.
Concentrate on a DIFFICULT function.
Get help and advice from the teacher.

Starting the IA Project - 9 Sep 2013

Checklist for Students        IBO Project Guidelines Web-site

Mancala Game Sample Project       4 Color Map Problem
   Mancala Stage A Planning       4 Color Stage A Planning

We will discuss the overall plan for the project,
especially how to get started this week.

Review System Implementation - 2 Sep 2013

You might wish to glance over the following notes:
Notes about System Implementation

Here are some study questions that you can discuss with other students.

(1) Our school has recently installed Haiku to replace Studywiz.
     Teachers will start posting assignments in Haiku, but they will
     continue to use Studywiz for collecting assignments - until
     Haiku is functioning well and we are certain it will work.
  (a) Is this a Direct Changeover, a Phased Implementation, or Parallel Running?
  (b) The school has offered little Haiku training for teachers and students.
       Describe likely consequences of not offering extensive training.
  (c) Describe who is in charge of the change management for this implementation.
  (d) Describe some underlying technology required for Haiku to function.

(2) Describe a situation when legacy data formats might cause problems
      when implementing a new computer system.

(3)  Outline some compatibility issues that are likely to occur when
     a British company merges with an American company.  These should
     be issues that would probably not occur when a single British company
     implements a new computer system.

(4) Assume that an insurance company has a local email server.
     They wish to change to using GMail, which runs on Google's servers.
     (a) Decide whether this would be an example of Software-as-a-Service.
     (b) Outline 2 compatibility issues that might occur during this implementation.
     (c) Outline one advantage and one disadvantage of making this change.

(5) Describe a situation where data migration is not easy.

(6) Describe 3 different types of software testing involved in developing
      and selling a computer system.

(7) Outline a typical backup strategy that is used by personal computer owners,
      but which would probably not be used by a large corporation.

(8) (a) Explain two reasons that a business might NOT accept automatic
          software updates.
     (b) Describe two disadvantages of not accepting automatic software updates.

Software Installation and Upgrades - 30 Aug 2013

1.1.14 - Software Deployment (notes in Haiku Vocabulary page)

Backups - 29 Aug 2013

Yesterday's Homework
Ideas for solving concurrent (simultaneous) access conflicts


Backups - 1.1.11-1.1.13
Cloud Backup Video

Vocabulary List - 27 Aug 2013

We're ready to start making a VOCABULARY LIST.
We will make it together - it will be a COMPUTER SYSTEM.

User Focus - 26 Aug 2013

starting at itme 1.1.7

[HL] Role of the Operating System - 23 Aug 2013

Role of the Operating System - section 6.1.5 to 6.1.9

Continue System Implementation Discussion - 22 Aug 2013

starting at item 1.1.5

Continue System Implementation Discussion - 21 Aug 2013

starting at item 1.1.4

System Implementation - 20 Aug 2013

We will investigate the new Haiku system as an example System Implementation
to demonstrate the concepts in the IB Computer Science syllabus.

Haiku - 16 Aug 2013

Please use Haiku to turn in your Prototype.
Upload your ANALYSIS NOTES page to Haiku's dropbox.
If this does not work, send an email to the teacher and attach your document.
If you have written a prototype Java program,
and you wish the teacher to look at it, then
create a ZIP archive and email it to Dave_Mulkey@fis.edu.

This is due on Monday 19 Aug 2013.
We don't have class that day, so you simply send it from home,
any time before 15:10 on Monday.

First Day - 15 Aug 2013

** REMINDER - Project Prototype is Due on Mon 19 Aug 2013 **
Use this template in BlueJ
use any Java editor and complete these Analysis Notes.

We will work on this during classes this week.
On Monday, you must turn in your Analysis Notes.
Your notes must make sense without looking at a Java prototype program.
If you wish to outline specific methods or interfaces,
do this in your Analysis Notes.

You are welcome to move your Analysis Notes into a word-processor
so that you can include graphics images if that is useful.

If you are struggling with some Java commands for your Prototype program,
get help from the teacher.

More information about the project, including deadlines, available here.


Daily Work - Computers Required - Bring Your Computer Every Day

Each student needs a computer for class every day  .. more ..

[HL] More and More Tic-Tac-Toe - 20 Mar 2014

Here is an extremely FLEXIBLE Tic-Tac-Toe board.