Last Day of Class - 11 Apr 2019
Here are some suggestions for studying for your exams.
They refer to links in the Review page:
Past Exams - Top section, later exams are better than earlier ones, use Markschemes to check your answers
Vocabulary - look up unfamiliar vocabulary in : | ![](./IB2SL2019_files/Screen Shot 2019-04-11 at 10.07.07 AM.png) |
Paper 1 Syllabus Notes - directly below the Past Exams Read the teacher's explanations in the right column.
| |
Paper 2 Notes - below Topic 7 http://ibcomp.fis.edu/review/IBCS2019.html
| |
*** 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 | |
Textbook - don't read the whole book, focus on the following -
read quickly and focus on vocabulary
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
|
Topic 1 - 10 Apr 2019
We will quickly review Topic 1 in the IB Syllabus:
Ethical Issues - 5 Apr 2019
We will discuss some ETHICAL ISSUES and some famous stories of system failures.
Vocab Practice - 4 Apr 2019
Vocabulary Review - 2 Apr 2019
Finish Nov 2018 Paper 2 SL - 1 Apr 2019
Start with this program then finish problem 12:
Continue Nov 2018 Paper 2 - 29 Mar 2019
More about OOP and Paper 2 Nov 2018 - 26 Mar 2019
You will receive a paper copy of Paper 2 Nov 2018, about airplane landings:
JETS Programming Constructs Continued - 25 Mar 2019
Topics D.3.1 - D.3.10:
Jets Specifications
JETS Programming Constructs - 21 Mar 2019
Topics D.3.1 - D.3.10:
Jets Specifications
Continue OOP Review - 20 Mar 2019
Topics D.1.6-D.1.10
We will discuss the Cafeteria problem on p. 8 of these notes:
OOP Review - 19 Mar 2019
READ CHAPTER 9
That explains basic concepts of OOP, as well as Programming Languages in general (Topic 4).
Frequency Distribution in Java - 15 Mar 2019
Here is a finished Frequency Distribution, translated from Pseudocode:
import java.util.*;
public class Frequency {
public static void main(String[] args)
{
new Frequency();
}
public Frequency()
{
LinkedList<String> NAMES = new LinkedList<String>();
String NAME = "";
while (!NAME.equals("quit"))
{
NAME = input(" NAME ");
if( !NAME.equals( "quit" ) )
{
NAMES.add(NAME);
}
}
output( "Count Duplicates - Alert Duplicates with # of times");
LinkedList<String> OTHER = new LinkedList<String>();
Iterator it = NAMES.listIterator();
while (it.hasNext() )
{
NAME = (String)it.next();
OTHER.add(NAME);
}
Iterator it2 = NAMES.listIterator();
while(it2.hasNext() )
{
NAME = (String)it2.next();
int COUNT = 0;
Iterator it3 = OTHER.listIterator();
while(it3.hasNext())
{
String OTHERNAME = (String)it3.next();
if (NAME.equals(OTHERNAME))
{
COUNT = COUNT + 1;
}
}
System.out.println( NAME + " = " + COUNT );
}
}
public String input(String prompt) {
return javax.swing.JOptionPane.showInputDialog(null, prompt);
}
public void output(String message) {
javax.swing.JOptionPane.showMessageDialog(null, message);
}
}
== Practice ==
- Copy the code above into a new Java Class. It will run in CLI mode.
Test it by typing in some names.
- You can also use this to type in NUMBERS (int values), but they are stored as Strings.
- Write a method to TRAVERSE the LinkedList (using an Iterator).
At each node, change it to a proper int by using Integer.parseInt(...)
and ADD UP all the numbers.
- Write a method that traverses the list and finds the LARGEST int value.
- Write a method to traverse the list and add up all the values that are GREATER than the average,
and count those numbers, and calculate the AVERAGE of the ABOVE AVERAGE numbers.
One More Day to Finish Pseudocode - 14 Mar 2019
We will continue working on the Frequency Distribution program.
=== First try at Frequency Distribution ===
NAMES = new Collection() // Java LinkedList
NAME = ""
loop while NAME <> "quit"
input NAME
if NAME <> "quit" then
output NAME , " is leaving"
NAMES.addItem(NAME)
end if
end loop
output "Count Duplicates - Alert Duplicates with # of times"
OTHER = new Collection()
NAMES.resetNext()
loop while NAMES.hasNext()
NAME = NAMES.getNext()
OTHER.addItem(NAME)
end loop
NAMES.resetNext()
loop while NAMES.hasNext()
NAME = NAMES.getNext()
COUNT = 0
OTHER.resetNext()
loop while OTHER.hasNext()
OTHERNAME = OTHER.getNext()
if NAME = OTHERNAME then
COUNT = COUNT + 1
end if
end loop
output NAME , " = " , COUNT
end loop
NAMES.resetNext()
loop while NAMES.hasNext()
output NAMES.getNext()
end loop
Last Day on Pseudocode - 13 Mar 2019
We will do a few more algorithms in Pseudocode, starting with:
- Finding and Removing Duplicates in a Collection
- Creating a Frequency Distribution
- Inserting in a Collection (Java LinkedList)
==== Removing Duplicates in Pseudocode ====
NAMES = new Collection() // Java LinkedList
NAME = ""
loop while NAME <> "quit"
input NAME
if NAME <> "quit" then
output NAME , " is leaving"
NAMES.addItem(NAME)
end if
end loop
output "Remove Duplicates"
OTHER = new Collection()
NAMES.resetNext()
loop while NAMES.hasNext()
NAME = NAMES.getNext()
if NOT(OTHER.contains(NAME)) then
OTHER.addItem(NAME)
end if
end loop
NAMES = OTHER
NAMES.resetNext()
loop while NAMES.hasNext()
output NAMES.getNext()
end loop
Standard Algorithms and Efficiency - 11 Mar 2019
== Bubble Sort ==
loop PASS from 0 to NAMES.length-1
loop X from 0 to NAMES.length-1
ITERS = ITERS + 1
if NAMES[X] > NAMES[X+1] then
FIRST = NAMES[X]
SECOND = NAMES[X+1]
NAMES[X] = SECOND
NAMES[X+1] = FIRST
end if
end loop
end loop
== Binary Search ==
FLAG = false
LO = 0
HI = NAMES.length-1
loop while FLAG = false AND HI >= LO
MID = (LO + HI) / 2
if NAMES[MID] = FIND then
FLAG = true
else if FIND > NAMES[MID] then
LO = MID+1
else
HI = MID-1
end if
end loop
Below is a solution to the problems from last class.
==Today ==
We will discuss Topics 4.2.1 - 4.2.3 about:
- Sequential Search
- Bubble Sort
- Binary Search
- Selection Sort
- Inserting in a Linked List
- Finding Duplicates in an Array
//=== Solution from last Friday =============
MAX = 1000
NUMS = new Array(MAX)
SUM = 0
BIG = 0
SMALL = 10000
loop TRIES from 1 to 1000
CORRECT = 0
loop X from 1 to 10
N = random(0 , MAX)
// creates a random number between 0 and MAX-1
NUMS[X] = N
end loop
TOTAL = 0
loop A from 1 to 10
TOTAL = TOTAL + NUMS[A]
end loop
//output TOTAL
SUM = SUM + TOTAL
if TOTAL > BIG then
BIG = TOTAL
end if
if TOTAL < SMALL then
SMALL = TOTAL
end if
end loop
AVE = SUM / 1000
output "AVE = " , AVE
output "BIG = " , BIG
output "SMALL = " , SMALL
output "RANGE = " , (BIG - SMALL)
method random(smallest, largest)
// creates a random number between smallest and largest-1
return Math.floor(Math.random()*(largest-smallest)) + smallest
end method
//===========================
Random Numbers in Pseudocode - 8 Mar 2019
Copy this algorithm into the
Pseudocode simulator.
//=================================
/***
This program is similar to LOTTO.
The program chooses a random number between 1 and 20,
and repeats this 10 times. It stores each random number
in the NUMS array. Then you get 3 guesses at the numbers.
If you get lucky 3 times, you are a WINNER.
Run the program several times. Keep track of how many WINNERS you get.
Change the program to only choose 5 random numbers.
That will make it harder to get WINNER.
Experiment to find out how many random numbers are required
to get a 50% chance of being a winner.
This is all a bit complicated, because some of the random numbers
are duplicates, so we don't really know how many targets are in the array.
Change the program so that it does not choose duplicates.
Then repeat your experiments.
***/
MAX = 20
NUMS = new Array(MAX)
CORRECT = 0
loop X from 1 to 10
N = random(0 , MAX)
// creates a random number between 0 and MAX-1
NUMS[N] = N
end loop
loop X from 1 to 3
input GUESS
if NUMS[GUESS] = GUESS then
output GUESS, " RIGHT"
CORRECT = CORRECT + 1
else
output GUESS, "no"
end if
end loop
if CORRECT = 3 then
output "WINNER"
end if
output "== All Values =="
loop X from 0 to MAX-1
output X, " = ", NUMS[X]
end loop
method random(smallest, largest)
// creates a random number between smallest and largest-1
return Math.floor(Math.random()*(largest-smallest)) + smallest
end method
//=====================
Now we need to write a couple more algorithms.
You can write these directly in the Pseudocode emulator.
*** NOTICE ***
You cannot trust the [Save] button. You can save your program
by marking all the text, copying it, and pasting it into a document
that you can save.
*****************
- Write a loop to fill an array of size 10 with random numbers.
Each number should be 3 digits - between 0 and 999.
- Write a loop to add up the random numbers in the array.
- Make the program repeat 10 times, and each time make
new random numbers and add them up. The result will be
10 TOTALS. They will be reasonably close to each other.
A total of 20 is highly unlikely, although not impossible.
- Make the program repeat 1000 times instead of 10.
It should ADD UP all the TOTALS and display the following:
(a) the average TOTAL
(b) the smallest TOTAL
(c) the largest TOTAL
(d) the difference between smallest and largest = RANGE
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.
Begin Review and Finishing Syllabus - 25 Feb 2019
We will discuss 2017 Paper 1:
IA Forms Folders - 12-15 Feb 2019
The teacher will distribute USB sticks to each student,
including a FORMS folder as specified by the IBO.
Please note the following advice:
0 - all files in the Documents folder must be PDF files
The links on the cover-sheet are correct, IF you name the files correctly
1 - you need to use a Web-Page editor (Seamonkey or Kompozer) to edit the CoverPage
If you use MS Word (DON'T) it makes a mess of the file
2 - don't forget to include a sound-track (narration) with your video
The video should be 5-7 minutes long
3 - show your finished program to your client and include some of their suggestions
in Stage E Evaluation
4 - Don't forget the Record of Tasks
5 - You can make an EXECUTABLE .jar file in NetBeans:
- Click on [Run][Clean and Build Project]
- link the cover sheet to [dist][filename.jar]
You may spend the classes this week finishing your IA.
If you finish early, you can do work for another class.
You need to turn in the USB stick containing all files and the program on
Friday 15 Feb
Work on IA - 7-12 Feb 2015
Remember that your Internal Assessment is due on Friday 15 Feb.
We will spend class time working on this Thursday, Friday and Monday (11 Feb).
If you are uncertain about how much to write in Stage C documentation,
or exactly how to create your video for Stage D, this is your opportunity to:
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 standard
folders 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 project
on 14 Feb, or during lunch or after school on 15 Feb - but no later than 15:30 on Friday.
Here is a GOOD Stage E Evaluation document:
Make sure your Evaluation includes discussion of CLIENT FEEDBACK
from when they tried out your finished program. The examiners complain
every year that students forget to do this.
It's a good idea to consult this CheckList while finishing your IA:
More Arrays and LinkedList Practice - 6 Feb 2019
Here is an almost finished version of the Insert program:
Open InsertNameDone.
We will add a few more methods.
For example, FIND and REMOVE a node from a LinkedList.
Arrays and LinkedList Practice - 4 Feb 2019
The main difference between LinkedLists and arrays are:
(1) Dynamic vs Static
(2) Methods vs no methods
** Explain these **
Programmers like LinkedLists if they need to INSERT or DELETE data items.
They like arrays if they are counting or adding up items.
Suppose you have an ARRAY that contains RECORDS (Objects) with a NAME and AGE in each one.
Assume the array is already sorted alphabetically by NAME.
Write Java to insert a new name in the alphabetically correct place, but do it like this:
- copy the entire array into a LinkedList
- INSERT the new name into the LinkedList
- make a NEW ARRAY and copy the LinkedList into the array
It can start out like this:
/**********************************************\
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();
}
\*********************************************/
Obviously INSERT-INTO-LIST at position 4 all the time is a bad idea.
This needs to be rewritten, to be a loop that searches for the
correct position, where M belongs after X and before X+1.
Then it should be able to insert ANY NAME correctly.
OOP Review - 1 Feb 2019
We must review Mock Exam Paper 2 and spend some more time
practicing OOP programming - but this time on paper, with a pen.
Mock Exam Paper 2 :
JETS
== String Methods ==
+ for concatenation
.equals(String)
.substring(startPos, endPos)
.length()
.indexOf(String)
.compareTo(String)
.toUpperCase()
.toLowerCase()
Mock Question 3c
String Practice - 31 Jan 2019
== String Methods ==
+ for concatenation
firstName + lastName . lastName + ", " + firstName output(num+"");
.equals(String)
NOT . if( firstName == lastName )
LIKE THIS . if( firstName.equals(lastName) )
.substring(startPos, endPos)
int endOfFirstName = wholeName.indexOf(" ");
String firstName = wholeName.substring( 0 , endOfFirstName );
.length()
String myPlayer = "X";
int letters = myPlayer.length() ;
.indexOf(String)
above
String name = "Dave Mulkey";
output( name.indexOf("Leo") ); --> -1
.compareTo(String)
String first = "Alex";
String second = "Al";
if( first.compareTo(second) == 0 . means they are identical
1 . if first is "bigger"
-1 . if first is "smaller"
if(first.compareTo(second) > 0) . then exchange them
.toUpperCase()
String test = "LARGE letters";
output(test.toUpperCase) ; ---> . LARGE LETTERS
.toLowerCase()
makes all small letters
String test = "Phone = 1234567";
test.toLowerCase() . --> . phone = 1234567
ä ö Ü é
Finishing the IA - 28-29 Jan 2019
Here are the rest of the steps for finishing your IA.
The order doesn't matter, but the stated order probably makes sense.
Record of Tasks -
Make sure that your Record of Tasks (weekly entries)
is up-to-date. If not, add entries so that you have about one per week.
Stage B - TESTING
A TEST PLAN is a requirement. Look at the examples in Stage B of:
You must ADD the test plan to your Stage B document -
it's a requirement. Make a TABLE with columns for :
[Action to Test] and [Method of Testing and Results]
Be sure that your tests cover EVERY GOAL / CRITERION FOR SUCCESS,
including methods that implement AUTOMATION without any apparent visual interface.
Stage D - VIDEO
Your video must demonstrate ALL THE SIGNIFICANT FEATURES.
The video must clearly demonstrate that ALL THE FEATURES FUNCTION WELL.
This must also be stated in Stage E.
Stage C - DEVELOPMENT
You must write DOCUMENTATION of how your program was written.
This generally includes a Screen-Shot, some Java Code,
and a brief (one or two sentence) explanation of how the code works.
There needs to be at least one entry for every significant feature -
especially anything that was difficult or complex to write.
Stage E - Evaluation (more on this later)
Cover Page - later
It is QUITE POSSIBLE that you will discover BUGS during the testing,
so it's best to write the TEST PLAN and do the tests BEFORE you
decide the program is really complete. Making the video will
probably help in thinking about the testing. You really need to
have the program FINISHED before writing the documentation in
Stage C. Do the Evaluation last - it doesn't take long.
== Project Folder ==
The entire project is due on 15 Feb. Make sure that all the documents
are PDF files, and that the Video is a standard format. We will discuss
the formatting of the Project FOLDER and documents on 11 Feb.
Preparing for Mock Exams - 27-29 Nov 2018
Answers for Past Paper 2 - 19 Nov 2018
Reviewing for Mock Exams - 14-15 Nov 2018
We will discuss a past Paper 2 - OOP.
Past Paper Notes:
Last Day in Class on IA Project Program - 13 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 start reviewing for Mock Exams.
Continue IA Project - 5-8 Nov 2018
It's Monday - you might want to update your Record of Tasks.
Continue IA Project - 29-31 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.
Continue IA Project - 26 Oct 2018
Continue working on your Java program for the IA Project.
Saving via Serialization - 25 Oct 2018
Download the newest version of the HotelManager program:
This contains saveData and loadData methods,
and the classes have been marked with "implements Serializable":
//========================
public void saveData()
{
try
{
FileOutputStream file = new FileOutputStream("hotel.dat");
ObjectOutputStream info = new ObjectOutputStream( file );
info.writeObject( hotel.reservations );
info.close();
file.close();
}
catch(Exception ex)
{ output(ex.toString()); }
}
public void loadData()
{
try
{
FileInputStream file = new FileInputStream("hotel.dat");
ObjectInputStream info = new ObjectInputStream( file );
hotel.reservations = (Reservation[])info.readObject();
info.close();
file.close();
}
catch(Exception ex)
{ output(ex.toString()); }
}
//==========================
Sorting - 23 Oct 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
Hotel Program - 19-22 Oct 2018
We will start writing the Hotel program (below).
We need to focus on the following goals:
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.
We will concentrate on OOP concepts.
OOP - 16-19 Oct 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
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; } |
Continue Stage B - 15 Oct 2018
This is the last day in class to work on Stage B.
So if you have questions, ask them today.
Remember - it is due on Thur 18 Oct at 16:00
Turning in Stage B Draft - 9 Oct 2018
On 18 Oct, 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,
(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
- Java (maybe from the Functional Prototype)
In each case the algorithm must be clearly explained
The teacher will show examples of each of these.
A bit more about UML - 26 Sep 2018
Continue Stage B - 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. Outline a few Classes (objects) in UML
UML Diagrams - 24 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:
4. Here is a sample UML diagram for an attendance program:
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:
![](./IB2SL2019_files/uml-class-diagram-interfaces.png)
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:
![](./IB2SL2019_files/classDiagramInheritance.jpg)
Here is one more example - you are unlikely to have so many classes:
![](./IB2SL2019_files/b2QGe.png)
Notice that this only has class boxes, without arrows.
This is sufficient for an IB IA Project.
Record of Tasks - 20 Sep 2018
Starting Stage B - 18 Sep 2018
Fire Drill Test Interruption - 18 Sep 2018
Please finish your test as homework. It shouldn't take more than 30 min.
You may consult your book and notes, including online notes,
but do not discuss the test with other students.
It will be graded like an essay rather than a test -
so the teacher will comment on the quality of your writing.
This is homework - turn in your test on Wed 19 Sep.
More Network Questions - 14-17 Sep 2018
We will finish discussing these exam questions:
Then we will discuss the questions at the end of Chapter 15:
Network Exam Questions - 11-12 Sep 2018
IB Syllabus - 10 Sep 2018
*** STAGE A GRADES ***
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.
~~~~~~~~~~
We will discuss the official IB Syllabus notes:
How Data Moves Around - 31 Aug 2018
*** Remember that Stage A is due 31 Aug ***
Networks - Section 3 in IB Syllabus - 21-28 Aug 2018
Some informative videos:
About DNS
Google: [which ip addresses are local]
== 27 Aug ==
Future Networks
Internet of Things : Part 1 . Part 2 Part 3 . Part 4 . Part 5 . (you need not watch ALL of these)
Internet of Things, 5G, better BlueTooth, Network Neutrality, NFC = Near Field Communication = Contactless Credit Card readers
Continuing Stage A - Planning - 16-17 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
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
================================
(1)
In the FIRST image, erase the ellipse nose and replace it
with a rectangle nose - tall and thin, in the midde of the face.
(2)
in the SECOND image, change CAT so it is just
the letter Y , and change DOG so it is the letter M.
The Y should MORPH automatically to the M.
(3)
In the THIRD image, change it so the colors start with RED
on the left end, and changes to BLUE on the right end.
(4)
in the FOURTH image, remove the bottom half of the circles
so there are only 5 rows. Then change the random colors so that
only blue is used - randomly light blue and dark blue.
(5)
In the FIFTH image, remove one board so there are
3 left ends and 2 right ends. The bottom board must
still appear complete. You may remove the top board
or a middle board or the bottom one, as you wish.
(6)
In the SIXTH image, erase the lines that are there
and draw this image:
There are 4 square areas, and each contains 20 black lines.
https://drive.google.com/file/d/1uR9WGbjzL7SmeGc4Ls11iYUrCv7c-KWv/view?usp=sharing