|
Past Exams - Top section, later exams are better than earlier ones, use Markschemes to check your answers Vocabulary - look up unfamiliar vocabulary in : | ![]() |
Paper 1 Syllabus Notes - directly below the Past Exams Read the teacher's explanations in the right column. Pseudocode Practice - Pseudocode Practice Tool | |
Paper 2 Notes - below Topic 7 http://ibcomp.fis.edu/review/IBCS2019.html Standard Java Algorithms - Algorithms.java | |
Paper 3 - Case Study Case Study 2019 - Computer Aided Dispatch System Case Study Vocabulary Notes A Mock Exam ... be sure to re-read the Case Study the night before the exam... | |
*** Suggestions *** - study with a partner, you will help each other learn more - use pen and paper while studying, to prepare for exams - use e-mail, or come to room 615, to ask the teacher questions |
Ch 1 - 1.1, 1.3 Ch 2 - All Ch 3 - all except compression Ch 4 - 4.1, 4.2, 4.4 until p 104 Ch 5 - 5.1, 5.2 HL = 5.3, 5.4 | Ch 6 - 6.5 Ch 7 - All (7.6 is HL only) Ch 8 - HL only 8.1 - 8.5 8.7 is for SL and HL Ch 9 - 9.1, 9.2 | Ch 10 - SL - 10.1, 10.2, HL all sections of Ch 10 Ch 13 - Optional and interesting Ch 15 - All Ch 17 - 17.2, 17.3 |
Case Study Long Question - 10 Apr 2019
=== Long Question (12 marks) ===
The existing CAD system will be updated, while the rest of the Multi-Tier EMIS will be created anew. (a) Identify 3 different stakeholder groups who must be studied before development/conversion begins. (b) For each stakeholder group, discuss how their needs and goals during an emergency may be affected by their own hardware and software, system infrastructure performance, and their own personal knowledge and attitudes. |
--- Suggestions for the responses ---
… USE TECHNICAL VOCABULARY whenever possible and sensible.
… Your response to this question(s) should be 1-2 pages long, depending on the size of your writing.
… and it must be completed within 20-30 minutes, as there are other questions on the exam.
… Hence, you may only give partial responses to each part of the question.
… Be sure to address ALL parts of the question(s), albeit briefly, rather than one part in depth.
… Keep in mind that there are no "RIGHT" answers, but there are better and worse answers.
=== IB Official Criteria for the Long Question ===
Case Study Long Discussion Questions - 9 Apr 2019
Case Study Review - 5 Apr 2019
Case Study 2019 - Computer Aided Dispatch System (pw required)
Case-Study Vocabulary Explanations - by FIS students
Case-Study Vocabulary (private version, pw required)
Case-Study Vocabulary (public version)
== Practice == Each student must answer 6 marks worth of questions from below - we will divide them up. TYPE your answers at the end of Case-Study Vocabulary DUE - before 12:00 on Monday 8 Apr On Monday afternoon, the teacher will evaluate the answers so we can discuss what makes a good or bad answer - discussion on Tuesday. If you finish this early/quickly, you could spend time: - re-reading the Case Study - re-reading all the Vocabulary notes (above) |
Comprehension questions
- What is the difference between a CAD and an EMIS?
- What problem in which part of the system could have caused the police cars to arrive at the wrong address?
- What problem in which part of the system could have caused fire engines to be dispatched to a fire that had already been extinguished?
- What hardware failures could cause a service to go offline?
- How does scalability and extensibility ensure a service is future-proof?
- How would a SaaS system be different to a custom-built system?
- What is the difference between stateful and stateless communication in distributed systems?
- What is the purpose of a load-balancing algorithm?
- How could the smartphone app prevent users from uploading trivial data to its ‘inform’ service?
Technological
A. What is the difference between a real-time system and a transaction processing systemB. Are there any minimum hardware recommendations for a certain number of
C. Why is an API needed between the Smartphone App and the CAD system?
D. How does GPS work?
E. Would the smartphone app work if the users are connected to the Internet through a VPN?
F. What are the advantages of a multitier architecture?
G. What advantages does using a cluster of servers at each tier provide for an online service?
H. What is the difference between HTTP and HTTP2?
Social
i. Discuss what effects could it have on the call-center staff that Rahul is reassigning some of them to different roles, including both positive and negative effects.Vocabulary Review - 3-4 Apr 2019
Nov 2018 paper 2 problem #16 - 2 Apr 2019
Stack and Queues - 1 Apr 2019
Stack
- push
- pop
- isEmpty
- data
In an array - implementation details
public class Stack
{
String[] passengers = new String[1000000];
int top = -1;
public Stack()
{
top = -1;
}
public void push( String name )
{
top = top+1;
passengers[top] = name;
}
public String pop( )
{
String result = passengers[top];
top = top-1;
return result;
}
public boolean isEmpty()
{
if(top == -1)
{ return true; }
else
{ return false; }
}
}
Continue Nov 2018 Paper 2 - 29 Mar 2019
JETS Programming Constructs - 25-26 Mar 2019
Topics D.3.1 - D.3.10:
We will also be looking at Nov 2018 Paper 2 (you get a paper copy):
Jets Specifications
public String getETA()
{
String result = "";
// for example: sta = "13:50" delay = 50 add them
int hours = Integer.parseInt( sta.substring(0,2) );
String mins = sta.substring(3,5);
int min = Integer.parseInt(mins);
int total = min + delay;
if( total > 59)
{ hours++;
int extrahr = total / 60;
int leftoverMins = total % 60;
hours = hours + extrahr;
result = hours + ":" + leftoverMins;
// concatenate
return result;
}
public String getETA()
{
String result = "";
// for example: sta = "13:50" delay = 50 add them
int hours = Integer.parseInt( sta.substring(0,2) );
String mins = sta.substring(3,5);
int min = Integer.parseInt(mins);
int total = min + delay;
if( total > 59)
{ hours++;
int extrahr = total / 60;
int leftoverMins = total % 60;
hours = hours + extrahr;
result = hours + ":" + leftoverMins;
// concatenate
return result;
}
Study Day - 22 Mar 2019
- Read Chapter 9 in Comp Sci Illumin Book
Topics 10.1.6-10.1.10 - 21 Mar 2019
CashMachineLoadingMoney()
{
int ID = ReadIDcard();
boolean valid = checkIDatBank();
if(valid==true)
{
balance = getBalance(ID);
display(balance);
while( !moneyInserted() && cardisPresent() )
{
wait()
}
money = readMoneyAmount();
double balance = sendMoneyToBank(money);
if( balance = -999999)
{
giveBackMoney( );
}
display(balance);
}
else
{ output("Error not valid card"); }
}
OOP Option - 20 Mar 2019
https://docs.google.com/document/d/1PyXPuF2gA0t-MeJdeo3vVBhlDxg3Tzq83GUV6cLMlIs/edit
Parsing Math Formulas with Stacks - 19 Mar 2019
- scan the String one character at a time
- when ( or [ is found, PUSH this onto the STACK
and check that it matches correctly, e.g. ( and ) , but not ( and ]
- if the stack .isEmpty, then performing a POP is an error
and the formula is NOT VALID
then the String is NOT VALID
But you will need to use .substring to extract single characters.
F = input("Formula")
Trees and LinkedLists - 18 Mar 2019
Binary Search Trees - 14 Mar 2019
using a recursive algorithm. In this case it is not necessary to "sort"
the items first, but this takes considerably longer.
If it is an "internal" node, it is a whole lot more difficult.
- Use an IN-ORDER traversal to copy all items into a LinkedList
attach the first half to the LeftChild of the root,
Trees in Java - 13 Mar 2019
Formula Trees - 12 Mar 2019
More Searching and Efficiency - 11 Mar 2019
Here are a couple common recursive problems: (0) Towers of Hanoi Interactive (1) Calculate Factorial (5! = 120) recursively. - 0! = 1 - for larger numbers, n! = n * (n-1)! (2) Factoring an integer into prime factors. (3) Evaluate a mathematical formula stored in a binary tree, for example using parallel arrays for storage. Here are some notes about binary trees, including storing formulas. http://ibcomp.fis.edu/trees/TREES1.htm |
Binary Search - 8 Mar 2019
Random Numbers in Pseudocode - 7 Mar 2019
You cannot trust the [Save] button. You can save your program
by marking all the text, copying it, and pasting it into a document
(a) the average TOTAL
Sorting and Binary Search - 6 Mar 2019
Practicing Pseudocode - 1-4 Mar 2019
Here are some questions from OLD exams (around year 2000).These are all about Pseudocode. The Pseudocode back then was
slightly different from our current Pseudocode, but these are
still good practice questions. You should:
1 - read a questions
2 - write a solution on paper, with a pen
3 - compare your solution to the solution in the document
4 - if appropriate, type your solution into the practice tool :
http://ibcomp.fis.edu/pseudocode/pcode.html
Then do another question. Working with another student
is quite useful.
slightly different from our current Pseudocode, but these are
still good practice questions. You should:
1 - read a questions
2 - write a solution on paper, with a pen
3 - compare your solution to the solution in the document
4 - if appropriate, type your solution into the practice tool :
http://ibcomp.fis.edu/pseudocode/pcode.html
is quite useful.
Begin Review and Finishing Syllabus - 25-27 Feb 2019
Nov 2017
IA Forms Folders - 11-15 Feb 2019
- Click on [Run][Clean and Build Project]
- link the cover sheet to [dist][filename.jar]
Friday 15 Feb
Work on IA - 7-11 Feb 2019
ask questions and get help.
On Tuesday you will receive a USB stick with a standard Forms Directory.You will need to copy all your PDF files (and your Java program) into the standardfolders provided, then submit the USB stick to the teacher on 15 Feb.Since class does not meet on 15 Feb, you may submit your IA projecton 14 Feb, or during lunch or after school on 15 Feb - but no later than 15:30 on Friday.
More Trees - 6 Feb 2019
- Change a Phone Number
Mock Exam Paper 2 #4 - 5 Feb 2019
Arrays and LinkedList Practice - 1 Feb 2019
- copy the entire array into a LinkedList
class Person
{
String name = "";
int age = 0;
public Person(String name, int age)
{
__________________________
__________________________
}
}
Person[] data = {new Person("Al",10),new Person("Bee",15), new Person("Kim",12),new Person("Nel",18),
new Person("Pete",15),new Person("Zeke",99)};
LinkedList<Person> list = new _____________________________
public void insertMickey()
{
Person p = new Person("Mickey Mouse",80);
copyArrayToList();
insertIntoList(p);
copyListToArray();
}
public void showArray()
{
list1.removeAll();
for(int x = 0; x < data.length; x++)
{
_________________________
}
}
public void copyArrayToList()
{
for(int x=0; x < data.length; x = x+1)
{
________________________
________________________
}
}
public void insertIntoList(Person m)
{
list.add(4,m);
}
public void copyListToArray()
{
______________________
for(int x = 0; x < list.size(); x = x+1)
{
________________________
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
insertMickey();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
showArray();
}
String Practice - 31 Jan 2019
OOP Review - 30 Jan 2019
Finishing the IA - 28-29 Jan 2019
is up-to-date. If not, add entries so that you have about one per week.
and a brief (one or two sentence) explanation of how the code works.
Preparing for Mock Exams - 26-30 Nov 2018
Paper 1 : http://ibcomp.fis.edu/2017/mockDec2017/mockP1HL2017.pdf
You can use the past papers to practice for Paper 2 OOP Java.
Pseudocode Practice Tool
Pseudocode Notes for Exams
Pseudocode Explanations (not available in exams)
Past Paper 2 - OOP - 19-21 Nov 2018
Sorting - 16 Nov 2018
- 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
Finishing/Reviewing OOP - 13 Nov 2018

- records reservations
- all the names currently staying in the hotel
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; return; } } } 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
Continue Working on IA Program - 6-8 Nov 2018
and continue making progress.
Case Study Test - 31 Oct 2018
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"or"laying out the user-interface"Make a realistic plan for completing this, like 2 days or a week.
"saving data on the hard disk"
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
Practice Exam Questions - 24 Oct 2018
(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.
EXPLAIN why this is a problem. [4 marks]
just a few standard Java applications/apps. [4 marks]
a FAIL-OVER system, including WHY this is important. [2 marks]
and the new EMIS system, including:
- ethical considerations
- when/why load-balancing is necessary
to implement each approach [6 marks]
communication, including an example of where each
Vocabulary Discussion - 22 Oct 2018
Continue Vocabulary Review - 19 Oct 2018
- explain what the term means
Finish Stage B Draft - 18 Oct 2018
Case Study Vocabulary - 17 Oct 2018
More About APPS - 16 Oct 2018
https://www.androidauthority.com/best-emergency-apps-android-841589/
https://kemptechnologies.com/load-balancer/load-balancing-algorithms-techniques/
- are they reliable - if not, what causes unreliability?
Case-Study Vocabulary
- can we make a Data-Flow-Diagram for apps?
It should clearly illustrate DEPENDENCIES
Apps for Emergencies - 15 Oct 2018
https://en.wikipedia.org/wiki/Emergency_Management_Information_System
https://www.androidauthority.com/best-emergency-apps-android-841589/
https://kemptechnologies.com/load-balancer/load-balancing-algorithms-techniques/
https://en.wikipedia.org/wiki/Multitier_architecture
Case Study - Infrastructure - 12 Oct 2018
and draw a Data Flow Diagram on paper, with a pen.
Case Study - False Alarms, an Ethical Issue - 10 Oct 2018
when in actual fact nothing is wrong. False Alarms can cause all kinds of problems -
Turning in Stage B Draft - 8-9 Oct 2018
which could be displayed as any of the following:
- top-down hierarchical chart
DFD Introduction --> https://www.smartdraw.com/data-flow-diagram/
https://www.dropbox.com/s/unh9xdvcvtvaclw/DesignOOP2.pdf?dl=0
(at least 3 algorithms) - algorithms may be displayed as:
Remembering the Case Study - 26 Sep 2018
Continue Stage B - 24-25 Sep 2018
that you have made the first 4 or 5 entries, including:
- choosing a problem and a client
http://www.draw.io
UML Diagrams - 21 Sep 2018
UML = Unified Modeling Language
This provides diagrams that clearly illustrate the connectionsbetween 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 |
Example Record of Tasks Sheet: http://xmltwo.ibo.org/publications/DP/Group4/d_4_comsc_tsm_1201_2/IA8en/Documentation/Crit_B_Record_of_tasks.pdf |
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;
http://xmltwo.ibo.org/publications/DP/Group4/d_4_comsc_tsm_1201_2/word/Forms.zip
Starting Stage B - 18 Sep 2018
http://ibcomp.fis.edu/275979/ibcomp/ia2017/projects/StageBSteps.html
OOP Ideas
http://ibcomp.fis.edu/datastrucs/discoverData.html
Networks Test - 17 Sep 2018
More About Networks - 13-14 Sep 2018
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
and possibly receive a better grade.
Questions - 31 Aug 2018
then discuss the rest.
How Data Moves Around - 30 Aug 2018
*** Remember that Stage A is due 31 Aug ***
Networks - Section 3 in IB Syllabus - 20-24 Aug 2018
Reading : Read Chapter 15 NETWORKING (p717) in your textbook Computer Science Illuminated
https://drive.google.com/uc?export=download&id=0B2t-Tmujl-IbTHlDbGl6MnZFTlU
A good overview in a Video:
https://www.youtube.com/watch?v=fCxfp1iUbqw
IB Notes : Topic 3 - Network Basics with brief explanations and questions
https://docs.google.com/document/d/1LdJ_b-1S3NNz5NXmw7WLeAkKza9NhWxqqrd6ItTRoro/edit
Future Networks
Internet of Things, 5G, better BlueTooth, Network Neutrality, NFC = Near Field Communication = Contactless Credit Card readers
http://ibcomp.fis.edu/ibreview06/followdata/followdata.ppt
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:
http://ibcomp.fis.edu/275979/ibcomp/projects2014/SoftwareDesign.html
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:
https://ibpublishing.ibo.org/live-exist/rest/app/tsm.xql?doc=d_4_comsc_tsm_1201_2_e&part=4&chapter=15
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
https://ibpublishing.ibo.org/live-exist/rest/app/tsm.xql?doc=d_4_comsc_tsm_1201_2_e&part=4&chapter=13
You may wish to look at the Assessment Criteria:
https://ibpublishing.ibo.org/live-exist/rest/app/tsm.xql?doc=d_4_comsc_tsm_1201_2_e&part=4&chapter=5
This CHECKLIST might also be useful:
http://xmltwo.ibo.org/publications/DP/Group4/d_4_comsc_tsm_1201_2/word/checklistStudents_en.doc
=====================
input NUM
ANS = fact(NUM)
output "Factorial = " , ANS
input NUM
factor(NUM)
method fact(NUM)
output NUM
if NUM = 0 OR NUM = 1 then
return 1
end if
return NUM*fact(NUM-1)
end method
method factor(NUM)
if NUM < 2 then
output NUM
return
end if
if NUM < 2 then
output NUM , " is prime"
return
end if
F = 2
loop while NOT(NUM mod F = 0)
F = F+1
end loop
if F = NUM then
output F , " is prime"
else
F2 = NUM / F
output NUM , " = " , F , " * " , F2
factor(F)
factor(F2)
end if
end method