IB Comp Sci HL y2 exams 2019
LINKS:  Last Year's Blog   Lewis+Loftus-Java   Java Tutor   Comp Sci Illumin Book 
              Basic Java Lessons   Java OOP   JETS    Internal Assessment Java Notes   Java How-To 
                Vocabulary   IB CS Course Guide     Pseudocode     Notes and Review 2019
  IB Comp Sci Hub
Due Dates :  Preliminary Working Version of IA Program - due Wed 21 Nov

Past Paper 2 - OOP - 19 Nov 2018

Sorting - 16 Nov 2018

Download this program, then do the following:

- run it and test that it works correctly

- increase the amount of sample data to 20 items

- load the sample data an then add 2 new reservations and sort the result,
    checking the the sorting works correctly

- add another button that SORTS ROOMS - so it sorts all the reservations
   in order of the room numbers

- add another button that SORTS NAMES - so it sorts all the reservations
   in order of the customer name

- try pressing the 3 Sort buttons in various orders -
   that should produce a variety of results

Continue Hotel OOP Program - 14 Nov 2018

We will discuss this program:
Specifically, we will add a SORTING method for the reservations.

Finishing/Reviewing OOP - 13 Nov 2018

The Paper 2 exam will be about Object Oriented Programming.  We need to learn a bit more about vocabulary and details to prepare for the Mock Exam in December.

Example UML Class Diagram

== HOTEL Example ==

A hotel management system must fulfill at least the following goals:
- records reservations
- checks-in customers when they arrive
- assigns an empty room when a customer checks in
- checks-out customers when they leave
- prints a bill when a customer checks out
- SEARCHes for specific info, like "who is in room 12"
   or "what room is Ronald MacDonald in"
- SORTS data and displays it, for example:
   - all the names currently staying in the hotel
   - a list of empty rooms right now
   - a list of empty rooms on a future date

Here is a very basic PROTOYPE:

   Hotel hotel = new Hotel();
   private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
       String name = input("Customer name");
       int room = Integer.parseInt(input("Room number"));
       String start = input("Starting date");
       String end = input("Ending date");
       for(int x=0; x < 1000; x=x+1)
           if(hotel.reservations[x] == null)
               Reservation res = new Reservation();
               res.customer = name;
               res.room = room;
               res.arrive = start;
               res.depart = end;
               hotel.reservations[x] = res;

   private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        
       for(int x = 0; x < 1000; x = x+1)
           if(hotel.reservations[x] != null)
               Reservation res = hotel.reservations[x];
               output(res.room + ":" + res.customer);

 static String input(String prompt)
 { return javax.swing.JOptionPane.showInputDialog(null,prompt); }

  public void output(String message)
  {  javax.swing.JOptionPane.showMessageDialog(null,message);  }


public class Hotel {
   Reservation[] reservations = new Reservation[1000];


class Reservation
  String customer;
  int room;
  String arrive;
  String depart;

Last Day in Class Working on IA - 12 Nov 2018

Today is the last day in class working on your IA Project program.
A working version (not finished, but working) is due :
Wed 21 Nov - Preliminary Working Version of IA Program due

This must be turned in as a .zip archive containing your ENTIRE program,
including any sample data files.

Starting tomorrow we will REVIEW and FINISH OOP,
so you are prepared for Paper 2 of your Mock exam.

Continue Working on IA Program - 6-8 Nov 2018

It might be a good idea to update your Record of Tasks.

If you get "stuck", you NEED to ask a question, resolve the problem,
and continue making progress.

Case Study Test - 31 Oct 2018

50 min test about the Case Study.
You will receive a printed copy of the Case Study
to use during the test.

Continue IA Project - 29-30 Oct 2018

Continue working on your Java program for the IA Project.

Be sure to write an entry in your Record of Tasks.
This should be a programming goal, like :
"saving data on the hard disk"
"laying out the user-interface"
Make a realistic plan for completing this, like 2 days or a week.

Continue IA Project - 26-30 Oct 2018

Continue working on your Java program for the IA Project.

Re-starting Your Project Program - 25 Oct 2018

Compare your answers to yesterday's practice questions to these sample answers:

Now it is time to re-start (or continue) your IA Java Project.
You should try to use the ideas that you have prepared in Stage B.

Plan on continuing programming in class tomorrow and Tuesday.

Practice Exam Questions - 24 Oct 2018

We will have Case Study Test on Wed 31 Oct.

Here are some practice questions about the Case Study.  
You should discuss these with another student, write good answers
(hint: for 4 marks, you need to say at least 4 significant things)
and you can compare your answers to the teacher's answers tomorrow.

1.  Explain 2 important reasons that Bangbai wishes to replace their CAD
     system with a new EMIS system.  You must EXPLAIN the reasons -
     for example, if you state that "the CAD uses old technology", you must
     EXPLAIN why this is a problem.                  [4 marks]

2.  Describe 2 advantages and 2 disadvantages of depending on
      modern Smartphones rather than depending on old-fashioned 
      wired telephones.                                        [4 marks]

3.  (a) Discuss 2 important advantages of using a Multitier Architecture
          in the new EMIS, as opposed to wrapping all functionality into
          just a few standard Java applications/apps.              [4 marks]

     (b) Explain which TIER of the Multitier architecture would implement
           a FAIL-OVER system, including WHY this is important.   [2 marks]

4.  Describe how the EMIS can properly handle URGENT vs NON-URGENT
     emergencies, especially how the DECISION would be made about
     the level of urgency.                                                        [4 marks]

5.  Describe the need for compatibility between the old CAD system
     and the new EMIS system, including:
     - ethical considerations
     - technical issues
     - reliability                                                                        [8 marks]

6.  Describe 2 possible approaches to LOAD-BALANCING, including:
     - when/why load-balancing is necessary
     - how each of your approaches will perform better than alternatives
     - what technical requirements must be met in order
        to implement each approach                                       [6 marks]

7.  Explain the difference between STATEFUL and STATELESS
     communication, including an example of where each 
     commonly occurs.                                                           [4 marks]

Vocabulary Discussion - 22 Oct 2018

We will discuss the vocabulary you researched, and especially any QUESTIONS
that students have.

Continue Vocabulary Review - 19 Oct 2018

Continue reading the Case Study carefully, concentrating on the 
vocabulary words marked in italics and listed at the end.

For each word, answer the questions:
- explain what the term means
- explain why it is important for the Case Study EMIS

You can start with the Case-Study Vocabulary,
and use the Web for more information:
-  Google search
-  Wikipedia
-  the links listed in the Case Study

Write down notes and we will begin discussing your answers
next week.

Finish Stage B Draft - 18 Oct 2018

Today you may continue your Case Study Vocabulary Review,
or finish your Stage B document if you prefer.

Whatever you have finished for the Stage B, you need to turn
it in to Haiku today, as Mr Mulkey must read and mark these
and then write report cards on the weekend.

Case Study Vocabulary  - 17 Oct 2018

Example questions:
- Explain what REST means, and why it is important for an EMIS.
.... replace REST with any other vocabulary, making lots of questions.

More About APPS - 16 Oct 2018

Can we base an Emergency Management Information System on APPS?
- how do apps work?
- are they reliable - if not, what causes unreliability?
- are the cheap? Are they easy to distribute?
- are APPS mentioned in the Case Study?
   Case-Study Vocabulary 
- can we make a Data-Flow-Diagram for apps?
   It should clearly illustrate DEPENDENCIES

Apps for Emergencies - 15 Oct 2018

We will discuss this news article:

Here are some other web-sites about emergency apps:

Case Study - Infrastructure - 12 Oct 2018

What INFRASTRUCTURE is required for a proper Emergency Management Information System - especially COMMUNICATIONS?
Consider all the following technical devices and discuss the required infrastructure and how it can fail,
and draw a Data Flow Diagram on paper, with a pen.
- radio . -  did this in class
- television .  Luke + RJ
- signs .     Sean + Axel
- phones .   Mulkey + alone 
- cell phones and Smartphones .   Nikita + Kartik
- email .  Delphine + Rudra
- instant messaging (Twitter, Facebook, Whatsapp, etc) . Jin Woo + Jonathon
- satellites . - actually supports the other devices

Especially consider the questions of:
- broadcasts vs point-to-point
- push vs pull technologies

Case Study - False Alarms, an Ethical Issue - 10 Oct 2018

A False Alarm is a noise or message that indicates that something is wrong,
when in actual fact nothing is wrong.  False Alarms can cause all kinds of problems -
- unnecessary panic
- accidents when people are trying to escape
- financial damage when people stop working
- dangerous or counterproductive reactions
- waste of costly resources
- reduced confidence in the warning system, and hence reduced usage

In case a central warning system is deployed, it is essential that false alarms
must be minimized - but how can this be accomplished without simply
shutting down the system?

Here are a few example news stories:

Turning in Stage B Draft - 8-9 Oct 2018

On Oct 18, a DRAFT of Stage B - Design is due.
This should NOT include a TESTING plan.
It need not be "complete", but must demonstrate a thorough
start on all of the following parts:

(1) Record of Tasks - all task accomplished between May 
  and Sep (including an entry about completing Stage B Draft)

(2) ONE system OVERVIEW diagram,
     which could be displayed as any of the following:
   - top-down hierarchical chart
   - UML class diagram
   - Data-Flow-Diagram showing how data flows between modules,
     including text files, arrays, screen displays, and other variables
     DFD Introduction --> 

     We will discuss these notes:

(3) "screen-shots" from your Visual Prototype (or further
     additions) - at least 5 "screen-shots"

(4) algorithms that will implement interesting automation
     (at least 3 algorithms) - algorithms may be displayed as:
     - Pseudocode 
     - or  Flow-charts (example)    
     - Java (maybe from the Functional Prototype)
  In each case the algorithm must be clearly explained

The teacher will show examples of each of these.

Remembering the Case Study - 26 Sep 2018

Here are some videos of examples of existing Emergency Management Systems -

RISK Communication Video : https://youtu.be/TDX3m20u0Nw

ATOS Call Centers: https://youtu.be/CzXJh6CFK7k

Continue Stage B - 24-25 Sep 2018

1.  Make sure you have started your Record of Tasks document -
     that you have made the first 4 or 5 entries, including:
     - choosing a problem and a client
     - Visual Prototype
     - Client interview
     - Functional Prototype
     - Stage A

2.  Here is a brief explanation of UML diagrams:

3.  Here is a Diagram Editor for Flowcharts and UML:

4.  Here is a sample UML diagram for an attendance program:

5.  If you have not yet done so, show your initial overview to the teacher

UML Diagrams - 21 Sep 2018

UML = Unified Modeling Language

This provides diagrams that clearly illustrate the connections
between MODULES in a system.

If you use OBJECTS and CLASSES in your project,
you should include a UML chart, like this:

That shows the following:
- data members (variables/properties) of each object
- method members of each object
- BasicPart and CompoundPart both EXTEND (isA) Part
- CompoundPart must CONTAIN (hasA) 2 or more parts

Here is another simple example:

Here is one more example - you are unlikely to have so many classes:

Notice that this only has class boxes, without arrows.
This is sufficient for an IB IA Project.

Record of Tasks - 19 Sep 2018

 Due Date :  Stage B partial (no testing) - 18 Oct at 18:00

For your Internal Assessment Project, you are required
to keep a journal of all your work.  
This is called the "Record of Tasks".
You will find this in the Documents folder in the following link;

Starting Stage B - 18 Sep 2018

Networks Test - 17 Sep 2018

You may use the entire class period for the test.

More About Networks - 13-14 Sep 2018

We will discuss the questions at the end of Chapter 15:

Network Exam Questions - 11-12 Sep 2018

Several students neglected to submit the APPENDIX containing
notes of the Client Interview.  Those students need to add
this appendix and resubmit the Stage A document -
submit this no later than 17 Sep.  Any students who wish
to make other improvements may also resubmit the document
and possibly receive a better grade.

Questions - 31 Aug 2018

We will discuss the answers to questions 1-11,
then discuss the rest.

How Data Moves Around - 30 Aug 2018

=== Homework ===
Questions 1-11, one answer from each student, 1 paragraph each:

*** Remember that Stage A is due 31 Aug ***

Today: Follow data in the web

Questions about networks:

Networks - Section 3 in IB Syllabus - 20-24 Aug 2018

Reading :  Read Chapter 15 NETWORKING (p717) in your textbook Computer Science Illuminated

A good overview in a Video:

IB Notes :  Topic 3 - Network Basics  with brief explanations and questions

Some informative videos:
Basics of Protocols (first half)
Internet of Things Part 1 . Part 2  Part 3Part 4 . Part 5 . (you need not watch ALL of these)
Google Data Center (start in the middle)

About DNS
Google: [which ip addresses are local]

Future Networks

Internet of Things, 5G, better BlueTooth, Network Neutrality,  NFC = Near Field Communication = Contactless Credit Card readers


100 Questions and Answers

Continuing Stage A - Planning - 15-16 Aug 2018

It is time to write the first OFFICIAL part of the IA Project - Stage A.

  Stage A : due on Fri 31 Aug at 18:00

This is the easiest part of the IA Project. Don't turn it into something difficult.
It is 500 words - e.g. less than 2 pages.
The teacher will show you examples and outline what pieces are needed.

Read these notes:  

For Stage A, focus on :
- Choose a CLIENT and TALK TO THEM

- DEFINE the problem by :
  - referring to specific User Stories and Client Requests
  - show SAMPLE DATA and/or PICTURES of current solutions
  - include your VISUAL PROTOTYPE in the appendix if you wish

- EXPLAIN the REASONS for your proposed solution, especially
  - a picture of your VISUAL PROTOTYPE
  - AUTOMATION that will make things better for the client
  - REQUIREMENTS and/or LIMITATIONS (more on this in the goals)

- write GOALS (Criteria for Success) that are:

  - clear
  - precise
  - testable
  - complete
  - written as a BULLETED LIST

- Put notes from your CLIENT interview in the APPENDIX
- If you want, put USER STORIES in the APPENDIX

- keep the total word-count under 500 words
   only "extended writing" counts - that means paragraphs 
   bulleted lists don't count 
   diagrams don't count
   the appendix doesn't count

Here is a good example that would receive 6/6 marks for Stage A:

Look at the Student Work - Planning section
You can IMITATE this, but do NOT COPY IT exactly
For example, if you write reasons for choosing Java,
don't write the same reasons that the author wrote.

Here is another good example :
   Example 6  Stock Control System

You may wish to look at the Assessment Criteria:

This CHECKLIST might also be useful: