IB Computer Science year 2 - Frankfurt International School - Dave_Mulkey@fis.edu - 2015-16
 Next graded assignment :  Presentation Video about Algorithms - 11 Mar 2016
  Links :   IB Comp Sci   Pseudocode   Processing Lessons   IO Gui
            
Java Tutorial   Java Notes by Eck   Liang Java Text   Schmidt Java Book
             Internal Assessment Project Notes        CS-Dictionary   IGCSE Vocab
           
Notes and Review Page (for 2016 exams)                      Last Year's Blog

Test

Test.zip

Reviewing for Case Study Paper 3 - 27 Apr 2016

Here are suggested activities for reviewing the Case Study:

1.  Read the Case Study [HL]
     - read it through quickly, paying attention to vocabulary words

2.  Review the Vocabulary Explanations written by the class:
      Computer Science CGI Case Study Vocabulary

3.  Review the Mock Exam Paper 3

4.  Here are some further review questions from other teachers:
       Mock Exam from Mr Mark Hayes

From Mr Deepak Shetye

The 12-mark question will be based on the challenges faced. Here are some of the questions (I found on the Internet) on what you could be asked.

1.            1.  To prepare a report on the different animation algorithm currently being used
           and how they might change in the future

a.    What are the current animation algorithms?

b.    What is scanline rendering algorithm?

c.    What is ray-tracing algorithm?

d.    Investigate the techniques of motion capture as a viable option for their commercial project

e.    Investigate the demands made by the various processes and algorithms available.

f.     Prepare the ethics module for the training course.

g.    Incorporate new techniques as they arise.

h.    Why should they need to change current algorithm? What is driving this need for change?

i.      How will changes to algorithm meet this need? What will the changes be?

j.      What are the countermeasures and why do they work?

2.         "Xiao-Ling and Pacifi c FXs challenges for the immediate future are to investigate the demands made by the various processes and algorithms available". (Page 5) Explain in details scanline rendering and ray-tracing algorithms for use in the computer game project.                           [12]

3.         "Pacific FX has employed some computer science graduates who are currently undergoing training. Xiao-Ling explained that as part of this training course they look in detail at various ethical considerations that a responsible company should take into account when developing their CGI projects." Ignoring financial issues, discuss one ethical issue that requires specific care and consideration when creating a short animated commercial.                                            [12]


     


Circuits and CPUs - 20 Apr 2016

Look back at Feb 5.  Use  Circuit Gates Emulator

Read the notes in section 2:   Version of Topic 2 with Vocabulary Markup  

Discuss :    Systems and Hardware Pictures 

More Review - 19 Apr 2016

The following link contains a complete set of review notes
Notes and Review Page (for 2016 exams)

Today we will look at:

  Briefer version of 1.1 with vocabulary markup

   Version of Topic 2 with Vocabulary Markup     Systems and Hardware Pictures 

    Briefer version of Topic 3 with vocabulary markup

When reviewing, try any of the following:

- Read Old Exam Questions (top of the Review page)
   When you do this, read the question quickly, then read it again slowly.
   Write brief notes about possible answers - then compare your notes
   to the answers shown in the Mark Scheme.

- Read the Syllabus Notes with Teacher's Explanations (second section of Review page)
   When reading these notes, pay careful attention to Technical Vocabulary words.
   If you find a word that you don't understand, write it down and plan on
    asking for an explanation during class.

- Read the Textbook :  Computer Science Illuminated
  especially the following sections:

  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.1, 5.2, 6.5
Ch 7 - All (7.6 is HL only)
Ch 8 - HL only 8.1 - 8.6
          8.7 is for SL and HL
Ch 10 - SL - 10.1, 10.2, 
          HL all sections of Ch 10
Ch 13 - Optional and interesting
Ch 15 - All
Ch 16 - All
Ch 17 - 17.2, 17.3
Ch 18 - Optional

Magic Squares and More - 24 Mar 2016

Here is a solution for checking a 3x3 magic square:
https://dl.dropboxusercontent.com/u/275979/ibcomp/pseduocode/MagicSquare3.txt

Here is a solution for checking a 7x7 magic square:
https://dl.dropboxusercontent.com/u/275979/ibcomp/pseduocode/MagicSquare7.txt

Formula Tree in Array - 18 Apr 2016

HL : Formula Tree in Arrays

SL : Fractions with Classes

We will have a WRITTEN QUIZ tomorrow about this program (different for SL and HL)

Tree Traversals - 15 Apr 2016

Tree Traversals

REVIEW Suggestions - 1 Apr 2016

The following link contains a complete set of review notes
Notes and Review Page (for 2016 exams)

To start reviewing, try any of the following:

- Read Old Exam Questions (top of the Review page)
   When you do this, read the question quickly, then read it again slowly.
   Write brief notes about possible answers - then compare your notes
   to the answers shown in the Mark Scheme.

- Read the Syllabus Notes with Teacher's Explanations (second section of Review page)
   When reading these notes, pay careful attention to Technical Vocabulary words.
   If you find a word that you don't understand, write it down and plan on
    asking for an explanation during class.

- Read the Textbook :  Computer Science Illuminated
  especially the following sections:

  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.1, 5.2, 6.5
Ch 7 - All (7.6 is HL only)
Ch 8 - HL only 8.1 - 8.6
          8.7 is for SL and HL
Ch 10 - SL - 10.1, 10.2, 
          HL all sections of Ch 10
Ch 13 - Optional and interesting
Ch 15 - All
Ch 16 - All
Ch 17 - 17.2, 17.3
Ch 18 - Optional

Magic Squares and More - 24 Mar 2016

Here is a solution for checking a 3x3 magic square:
https://dl.dropboxusercontent.com/u/275979/ibcomp/pseduocode/MagicSquare3.txt

Here is a solution for checking a 7x7 magic square:
https://dl.dropboxusercontent.com/u/275979/ibcomp/pseduocode/MagicSquare7.txt

Pseudocode and Algorithms Practice - 22-23 Mar 2016

Nov 2014 Paper 1
Other Pseudocode practice

[HL] OOP - Trees - 21 Mar 2016

Section D.47

and discuss TREES as illustrated in these notes : Trees Introduction

We might make it to this sample program.

Cover Form for IA - 17 Mar 2016

Here is the Candidate Cover Form for the IA:

https://dl.dropboxusercontent.com/u/275979/ibcomp/Projects2016/Computer_Science_4ICCSCS_Partial.pdf

You may
- download this, fill it in, and give the resulting PDF to the teacher
  or
- take a printed copy, fill in with a pen, and give the printed copy to the teacher

You do NOT need to sign it, despite the instructions.
That is apparently a "typo".  But you DO need to fill in
ALL of the boxes - especially your candidate number.

Turn this in to the teacher no later than FRIDAY 18 March.

Start Review/Finish Syllabus - 14-16 Mar 2016

Topic 4 - Computational Thinking and Algorithms

Finish Your Video - 10 Mar 2016

Get your presentation video finished.

Continue Algorithms Investigation - 7 Mar 2016

We also need to schedule a 20 minute meeting
for each student to explain their IA Project.
The meeting should happen sometime this week.

Don't Forget Simple Things - 4 Mar 2016

Here is onemore good video:  Augmented Intelligence

You should be DISCUSSING ideas with the entire group.
When you do, don't forgot the normal, everyday algorithms,
like a Google Search, a calculator in the cafeteria, the back key in a browser.

More Resources about Algorithms - 2 Mar 2016

Algorithms are Taking Over the World
Big Data and Augmented Intelligence
Humans Need Not Apply

Are Droids Taking Our Jobs
...when Computers get Smarter than We are
The Ethical Dilemma of Self-Driving Car
You Should Learn to Program
All Your Devices Can Be Hacked

But don't JUST watch videos
Look stuff up (use Google!)
For example, what about robots, drones, etc.
Here is an excellent TV program about robots (in German).

Turn in IA Project - Investigate Algorithms - 1 Mar 2016

Your IA Project is due today, latest at 15:15.
You must turn in the required files, in the proper folder structure,
on a USB Stick.  Make sure all the pieces are there by using the IBO Checklist.
Give the USB stick directly to Mr Mulkey - don't put in his mailbox
or anywhere else but in his hand.

=== Investigating Algorithms ===

This is a Group Project, to fulfill the Group 4 project requirement.
We will work on this during this week and next,
turning in the finished result on Friday 11 March.
On that Friday, the group will give a brief presentation (10 min).

The subject is to INVESTIGATE the following question(s):
- What are ALGORITHMS? How can they affect our lives now and in the future?
- Do we CONTROL these algorithms?  If so, how?  If not, then who DOES control them?
- Is the public AWARE of the importance of algorithms in their lives, or are some of them SECRET (hidden)?

START by watching these TED presentations:
  http://www.ted.com/playlists/323/the_influence_of_algorithms

CONTINUE for the next few days of class collecting interesting, informative ideas - especially videos.  You can collect information and ideas from anywhere,
but do think about the RELIABILITY of the sources.

PRODUCT - create a brief VIDEO by cutting together snippets
from various videos.  In your video, include brief TEXT screens
that explain the significance of the various video clips.

GOAL - Students must WORK TOGETHER PRODUCTIVELY
            to collect information, discuss what they have found,
            and finally produce a presentation to
            clearly explain what ALGORITHMS are and
            why they are important for everyone,
            both in the present and future world.
            CHOOSE the most significant SOUND-BITES/
            VIDEO-CLIPS/FACTOIDS that you think
            EVERYONE should know.

FINISH - on Friday 11 March, present a finished video (5-10 min)
           to your teacher, and some other guests,
           and answer a few brief questions.
           The most significant questions will center around
           WHY IS THIS IMPORTANT TO KNOW?

Finish IA Project - 29 Feb 2016

Last chance to ask questions and get help with the IA Project.
It is due tomorrow - 1 Mar - but we will not work on it during class.

Criterion E - Evaluation and Appendix - 18 Feb 2016

Appendix Contents - Recommendation from Deputy Chief Examiner
-  Appendix 1 = Client Consultation from Stage A
-  Appendix 2 = Client Consultation from Stage E
-  Appendix 3 = Java Code from Stage C
If you do this, you should have 3 links on the Cover Page - one for each Appendix

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

From the IBO Checklist

CRITERION E - Evaluation

Client and/or adviser feedback


Any documentation associated with evidence of feedback has been linked to the cover page (in the Appendix)


Client and/or adviser evaluation


The evaluation refers to the success criteria identified in criterion A.


The evaluation explicitly refers to the feedback obtained from the client and/or adviser.


Student recommendations


The recommendations are appropriate to the client and/or adviser for the future development of the product.


The evaluation of the product and future product development is approximately 500 words.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

From the Assessment Criteria

 
Criterion E :  Evaluation

Marks

Description

0

The response does not reach a standard described by the descriptors below.

1–2

There is a limited attempt to evaluate the product against the success criteria identified in criterion A. There is limited evidence of feedback from the client/adviser and any recommendations for further improvement are trivial or unrealistic.

3–4

The product is partially evaluated against the success criteria identified in criterion A including feedback from the client/adviser. Recommendations for further improvement of the product are largely realistic.

5–6

The product is fully evaluated against the success criteria identified in criterion A including feedback from the client/adviser. Recommendations for further improvement of the product are realistic.


Continue with IA Project - Criterion D - 17 Feb 2016

Criterion D requires you to make a Screen-Capture Video that shows
your program running successfully.  The video must demonstrate
all the features that fulfill your Criteria for Success (goals) from stage A.
The video should not be longer than 7 minutes.  You can expect to spend
1 or 2 hours on this task - so don't leave it for the last minute.

-- Format --
You can use any screen-capture program that you wish.
Be sure to save the result in a standard format:  .mov, .wmv, .mp4, or .avi
Other formats are not recommended.

-- Commentary --
The video must include commentary that explains what is happening.
Preferably this should be a spoken commentary, but it could also
be on-screen text.  The spoken narration approach is probably easier.
If you do record your voice, you should make sure there is
no background noise (e.g. turn off your TV).  Another possibility
is to record the video first, and then add the sound later.
But that depends on which software you use (below).

Before doing the recording, you should run through your program
and write some notes.  Then consult your notes as you are speaking.
You may find it easier to make more than one video, for example:
- basic features
- comples features and error handling
If you do this, the total time should still be under 7 minutes.

-- Software --
Jing
is a commercial product that runs on all platforms.
It is very simple to use, and will make videos up to 5 minutes for free.
QuickTime is also quite easy to use and available on a MacBook,
or you can download a copy onto your Windows PC -
but it probably won't work for screen recording.
CamStudio is a free screen recorder for Windows.

-- Editing --
If you wish to edit your video - for example pasting two sessions together -
then iMovie works very well.  There is no particularly good video editor
available on the Windows platform, but Movie Maker does work, if clumsily.
When editing your video, you may add text or highlights,
but do NOT add any special effects and do not remove (hide) anything.

Continue with Criterion C - Development - 16 Feb 2016

Continue writing Criterion C.
Be sure to include lots of screen-shots, sample Java code and text explanations.
Only the text explanations count in the word-count.
The suggested (not required) word-count for this section is 500-1000.

Criterion C - Development - 10 Feb 2016

You should be starting to write Stage C Development in your IA Documentation.
It's recommended to look at the following 3 sample projects,
and write your documentation in a similar fashion:
Examiners have complained repeatedly that "complexity is not high because the techniques have not been thoroughly explained".
This means that the mark (out of 12) is given largely on the basis of written explanations,
rather than the functioning of the program.

Be sure to:

Finish Logic Gates - 8 Feb 2016

If you want a quick review of what we learned last week,
try this video.

Here is a solution to Friday's homework.

NAND Gates - 5 Feb 2016

HOMEWORK - Build a circuit for this table:

    A  B   OUTPUT
    0  0      1
    0  1      1
    1  0      0
    1  1      1

Memorize these:

      OR   AND   XOR   NAND    NOR
00    0      0        0        1         1
01    1      0        1        1         0
10    1      0        1        1         0
11    1      1        0        0         0

Finishing Topic 2 - 4 Feb 2016



CPU Emulator = Little Man CPU Sim

Binary represen-

tation





2.1.9

Define the terms: bit, byte, binary, denary/decimal, hexadecimal.

1


bit = true/false , 1/0 =  BInary digiT

Byte = 8 bits = 0 … 255

binary = number system Base 2, using bits

denary/decimal = base 10

hexadecimal = base 16 using  0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F


Practice Questions



2.1.10

Outline the way in which data is represented in the computer.

2

To include strings, integers, characters and colours. This should include considering the space taken by data, for instance the relation between the hexadecimal representation of colours and the number of colours available.

TOK, INT Does binary represent an example of a lingua franca?

S/E, INT Comparing the number of characters needed in the Latin alphabet with those in Arabic and Asian languages to understand the need for Unicode.

numbers = stored in binary, usually displayed in hexadecimal

characters = stored in ASCII (8 bits) or UNICODE (16 bits)

colours = 24 bit = True Color = Red/Green/Blue 1 Byte each

    2^24 = 16 million colors

Simple logic gates





2.1.11

Define the Boolean operators: AND, OR, NOT, NAND, NOR and XOR.

1

LINK Introduction to programming, approved notation sheet.

Learn the truth tables :

A  B  not A   A and B   A nand B (opposite of and)

0   0    1            0             1

0   1    1            0             1

1   0    0            0             1

1   1    0            1             0

 

A  B   A or B(inclusive)   A nor B   A xor B(exclusive)           

0   0       0                           1             0

0   1       1                           0              1

1   0       1                           0             1

1   1       1                           0              0 (the exclusive part)


2.1.12

Construct truth tables using the above operators.

3

For example, Maria won’t go to school if it is cold and raining or she has not done her homework.

Not more than three inputs are used.

LINK Thinking logically.

TOK Reason as a way of knowing.

C = Cold    R = Raining    H = Homework


C  R  H    C and R  not H   (C and R) or not H = not S    S

0   0   0        0           1                         1                           0  

0   0   1        0           0                         0                           1

0   1   0        0           1                         1                           0

0   1   1        0           0                         0                           1

1   0   0        0           1                         1                           0

1   0   1        0           0                         0                           1

1   1   0        1           1                         1                           0

1   1   1        1           0                         1                           0

2.1.13

Construct a logic diagram using AND, OR, NOT, NAND, NOR and XOR gates.

3

Problems will be limited to an output dependent on no more than three inputs.

The gate should be written as a circle with the name of the gate inside it. For example:

logic gate

LINK Thinking logically, connecting computational thinking and program design, introduction to programming.

Not enough space here


Circuit Gates Emulator

Practice exercises  

NAND Gates and More Questions

Turning in Your Program - 1 Feb 2016

Your program is due on Wed 3 Feb.
You must copy the program (folder)
onto a USB stick and turn in the USB stick.
We don't have class on Wed, but you can
come to room 276 during lunch or
after school or during a free period
and turn in your USB stick.  Be sure
that YOUR NAME appears somewhere -
preferably in the program listing.

OOP Discussion - 19 Jan 2016

We will briefly discuss Mock Exam Paper 2 and OOP issues for your projects.

Programming Your Project - 12 Jan - 3 Feb 2016

For the next 3 weeks, plan on working on your IA Project Java program.
You will also need to work outside class time,
but use time in class to ask questions and get help.
Make sure that you are making steady progress that
will lead to a finished, working program by 3 Feb.

Writing your IA Program - 18 Dec 2015

The Java program for your IA Project is due on 1 Feb 2016.
If you want to start working during the break, that would be fine.
In any case, you will have all the classes between 12 Jan - 3 Feb to write it.
That will not be enough time - you also need to work outside class time.
But you can ask questions and get help during class.

The rest of the documentation - stages C, D and E can be written during February.

General Review Questions - 4 Dec 2015

Core Summary Questions        HL Extension Questions       All Question with Answers
 ***
These summary questions are left over from the previous syllabus.
 ***  While most of them are useful, some might not be sensible.
 ***  The algorithm questions should be rewritten in Pseudocode, but that has not been done -
 ***  they are in Java.

If you wish to see some "real" IB Exams, you can look at:
Specimen Exams
These are the official sample exams for IB Comp Sci.

Case Study - Paper 3 -  3  Dec 2015

Bring your paper copy of the Case Study to class.
Case Study [HL] = CGI = Computer Generated Imagery

Computer Science CGI Case Study Vocabulary
Let's go through all the vocabulary terms and classify them as:
-  more useful in Film, more useful in Video games, or both
-  simple (easy to implement) or complex (difficult to implement)
-  what hardware is needed to implement this
-  are there any ethical issues

Mock Paper 2 - OOP - 30 Nov 2015

Old Mock Exam Paper 2

If you wish to see some "real" IB Exams, you can look at:
Specimen Exams
These are the official sample exams for IB Comp Sci.

Here are some untested answers to the programming questions:

public String searchStudentsGrade(LinkedList students,int gr)
{
   for(int s=0; s<students.size();s=s+1)
   {
       Student temp = students.get(s);
       if( who.equals( temp.name ) )
       {
           output( temp.email );
           return  temp.email;
       }
   }
  return "" ;
}

String badboy = input("Who do you want to find?");  
postToList(searchStudents(students,badboy));

================================

public void findGrade12(LinkedList students, LinkedList sendTo)
{
     Iterator  it =  students.iterator();

      while(it.hasNext())
      {
          Student  s  =  (Student)it.next();
          if( s.grade == 12 ) 
          {
              sendTo.add(s);
          } 
      }

}

===========================================

void setup()
{
    println( checkEmail("dave@fis.com") );
    println( checkEmail("
}

public boolean checkEmail(String e)
 {
    int fi = e.indexOf('@');  
    int li = e.lastIndexOf('@');

    if(fi != li  ||  fi<3)                             
    {
        return false;                               
    }

    int  p = e.indexOf('.' , fi );
    int  p2 = e.indexOf('.', p+1 );
    if(  p == -1  ||  p2 >= 0)
    {  return false; }

    int  countatperiod = p - fi - 1;
    if( countatperiod < 2 )
    {   return false; }

    int afterperiod = e.length - p - 1;
    if( afterperiod < 3 )
    {  return false; }
    return true;
 }



Last Day for Mock Paper 1 - 24 Nov 2015

If you wish to do some review for Paper 2 - the OOP Option,
you might wish to read the following:

Option D Syllabus Notes - OOP Option

Old Mock Exam Paper 2

HL students might wish to read the Case Study vocabulary:
Computer Science CGI Case Study Vocabulary

If you wish to see some "real" IB Exams, you can look at:
Specimen Exams
These are the official sample exams for IB Comp Sci. 

Continue Old Mock Exam Paper 1 - 20-23 Nov 2015

Last year's Mock Exam (ignore page 9)

=== HOMEWORK ===
With pen and paper, write answersw to #16 - the Vending Machine.
Plan on turning this in to the teacher tomorrow.
Do not spend more than 30 minutes on this homework.

More Case Study Vocabulary - 19 Nov 2015

We will continue discussing the Case Study, especially VOCABULARY.
Case Study [HL] = CGI = Computer Generated Imagery

Computer Science CGI Case Study Vocabulary

- Parallel Processing - why is this important in CGI?  What does "embarassingly parallel" mean?
   Describe how a rendering operation can be accomplished via parallel processing.
- Explain why wire-frame diagrams do not worry about hidden surfaces.
- What are keyframes?  Why do we need them when rendering an AI object?
  How is this related to tweening?
- Name four different 3D geometric primitives. 
  Explain why modern graphics cards do NOT use 3D primitives.
  Explain where 3D primitives are useful, and how graphics
  cards manage to produce images WITHOUT 3D primitives.
- If Pacific FX is making BOTH a film and a video game,
  explain why they are more likely to use Fractal Landscapes
  in one of these than in the other.  In which one of these
  is automation more important?
- Looking at the Animation Production Pipeline Gannt Chart,
   chose 2 stages that do NOT overlap.  Explain why these
   cannot overlap.

Review for Mock Exam - 18 Nov 2015

Last year's Mock Exam (ignore page 9)

Pseudocode Practice - 16-17 Nov 2015

Pseudocode Algorithm Practice Notes

Pseudocode Practice Tool 
  
Pseudocode Notes for Exams

Pseudocode Explanations (not in exams)

Continue Stage B for IA Project - 12 Nov 2015

Predict the output of this flowchart:


Continue Stage B for IA Project - 10-11 Nov 2015

Continue working on Stage B of your IA Project.

** NOTICE **
Stage B is due on Wed 18 Nov, turned in to Haiku.

You must turn in Stage B Design PLUS you Record of Tasks (yes, again).
This can be 2 separate documents - please as PDF files.
You do NOT need to include the TESTING plan.  We will add that later,
after you have done more programming.

==== Flow Charts ====
Flow-charts are not required in stage B.  However, they are easy to
understand (hopefully)  and do not contribute to the word-count.
IF you are going to use them, try to do them correctly.
Here is an example for adding up some numbers:


You may wish to use a GOOD TOOL to draw flow-charts.
One possibility is http://www.draw.io

[HL] Case Study - 9 Nov 2015

We will continue discussing the Case Study, especially VOCABULARY.
Case Study [HL] = CGI = Computer Generated Imagery

Computer Science CGI Case Study Vocabulary

Uncanny Valley ?  Video   TechTalk

Creative Use of Virtual Production

Image Metrics (better than MoCap) crosses the uncanny valley - how it works

Work on Stage B Design - 5-6 Nov 2015

Do any (maybe some of each) of the following:

-  briefly read the Stage B documents for the IB Sample Projects 

-  think about DATA STRUCTURES for your project
    -  classes/objects
    -  arrays
    -  LinkedLists

-  write SAMPLE DATA and organize it into DATA STRUCTURES

-  using the DesignOverviewBlank.doc document,
    start writing down ideas for Tasks, Interfaces, Algorithms and Data

-  draw DIAGRAMS that you can show to your ADVISOR and include
    in the Stage B document

-  extend your prototype, or try out some programming ideas in the prototype

** Discuss any of this with the teacher **

Counselling Queue - 4 Nov 2015

Queue ADT

We can make an ADT (Abstract Data Type) that implements a queue, and then use it over and over again.  For example, a Counselling program could conatain 2 queues - one for students, and one for teachers.  Then we'd like to write the Counselling program.

Start with this program, then finish it.

More Stacks and Queues - 2 Nov 2015

Data Structures       Basic Linked-List program

Stacks and Queues in LinkedLists - 29 Oct 2015

Here are some general notes about Data Structures ,
including Stacks and Queues.

We will do some experiments, starting with this basic program.

Continue Design Stage B - 26-27 Oct 2015

Abstract Data Types - 28 Oct 2015

Use this program to investigate the LinkedList Data Structure.

The following LinkedList commands are required for the Paper 2 OOP exam.

Constructor: new  LinkedList<ElementType>()
.add(E e)
.add(int index, E element)
.addFirst(E e)
.addLast(E e)
.clear()
.element()
.get(int index)
.getFirst()
.getLast()
.remove()
.remove(int index)
.removeFirst()
.removeLast()
.size()
.isEmpty()

Here is the official documentation from Oracle (if that helps):
http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html

JETS - Official Java Subset for IB Exams in OOP

Here are some general notes about
Data Structures .

Continue Design Stage B - 26-27 Oct 2015

Design Outline

DesignOverviewBlank.doc

Start writing some ideas on your Design Overview form.
If you prefer, you can download the MS Word document (above)
and use MS Word to type your ideas.  Otherwise, use a pen
and write on the paper copy you received.

Start Stage B Design - 23 Oct 2015

Assessment Criteria (IBO)

Design Powerpoint

Simple Flowcharts

Guidance Notes (from old syllabus - ignore details) start on page 15

Design Outline

DesignOverviewBlank.doc

Checklist (IBO)

Sample projects are available at:  Teacher Support Material Overview 

Hotel Quiz - 22 Oct 2015

Hotel with Reservations in LinkedList with Dates - 20 Oct 2015

Here is a Hotel program (#5) that stores reservations
in a LinkedList of Reservation Objects.
This is pretty complicated.

------------------------------------------------------------------------------
** HOMEWORK **
Download OOPhotel5.zip and add the code for the findName method,
and connect it to the Find Name button.


------------------------------------------------------------------------------

We will use a LinkedList to store a dynamic list of Reservation objects.
Here are the IBO required methods for a LinkedList:

.add(E e)
.add(int index, E element)
.addFirst(E e)
.addLast(E e)
.clear()
.element()
.get(int index)
.getFirst()
.getLast()
.remove()
.remove(int index)
.removeFirst()
.removeLast()
.size()
.isEmpty()

We will study these in detail in the near future.

Hotel with Dates - 19 Oct 2015

We will add dates to the Hotel program.

We will continue on the Hotel program tomorrow,
then will have a short test/quiz (30 min) on Thursday
about the Hotel program.

OOP Hotel Program - 16 Oct 2015

We will start with this STUB program.

Homework - make a suggestion for how DATES can be
included in the Hotel class.

Here is the program we have written so far - you can paste it into
the STUB version, but keep the IO library.
/*********************************
This program should record reservations for a hotel.
Each customer is assigned to an empty room.
It needs appropriate data fields and methods
inside the Hotel class.
**********************************/

Box reserve, checkRoom, findName;

Hotel hotel;

void setup()
{
   size(400,400);
   hotel = new Hotel();
   reserve = new Box("Reserve", 20, 20);
   checkRoom = new Box("Check Room", 20, 60);
   findName = new Box("Find Name", 20, 100);
   IOstart();
  // assignAllandCheck();
}

void assignAllandCheck()       // TEST HARNESS
{
   for(int r = 1; r < 10; r++)
   { hotel.reserve("customer " + r,r);
   
   }
    output( hotel.checkRoom() );
}

void draw()
{
   background(180);
   showBoxes();
}

void mouseClicked()

   if(reserve.isClicked())
   {
       String name = input("Customer name");
       int room = inputInt("Room number");
       boolean success = hotel.reserve(name,room);
       if(success == true)
       {
        
       }
       else
       {
          output("Could not reserve - full");
       }
       showAll();
   } 
   if(checkRoom.isClicked())
   {
      output( hotel.checkRoom()  );          // result is OUT OF SCOPE
    }
   if(findName.isClicked()) { output("UNFINISHED"); }
  
   resetBoxes();
}

void showAll()
{
   for(int r = 1; r < 10; r = r+1)
   {
      if(hotel.rooms[r] != null)
      {
         println(r + " " + hotel.rooms[r]);
      }
   }
   println("----------");
}

class Hotel
{
   String[] rooms = new String[10];
 
   boolean reserve(String name, int room )
   {
      if(rooms[ room ] == null)
      {
         rooms[room] = name;
         return true;
      }
      else
      {
         return false;
      }
   }
  
   /**************************
     Check Room
       check for an empty room
       return a room number of an empty room
            or -1 if no empty room was found
   ***************************/
  
   int checkRoom()
   {
      int result = -1;
      for(int r = 1; r < rooms.length; r++)
      {
         if( rooms[r] == null )
         {
            result = r;
            return result;
         }
      }
      return result;
     
   }
}

[HL] Case Study - 15 Oct 2015

We will continue discussing the Case Study, especially VOCABULARY.
Case Study [HL] = CGI = Computer Generated Imagery

We will discuss this paragraph:

In spite of the availability of affordable processing, Xiao-Ling stressed that there were still limits to what a
small company could realistically do. She referred to a DreamWorks film, How to Train Your Dragon 2.
“This film required the use of 10000 simultaneous computing cores, and 75 million computing hours,
to render all the images. It also requires 250TB of active disk space to store the film. The major
companies invest heavily in processing power that can involve both render farms and the use of the
cloud. For companies such as ours, there always has to be a trade-off between realism and available
processing power.”*

and try to answer the following questions:

  1. Why bother with all the Motion Capture equipment?
    Why not just use computers to GENERATE all the images?

  2. What are KEY FRAMES?  Do Video games use keyframes?
     
  3. Compare 4 types of rendering:
    - scan-line rendering
    - ray-tracing
    - wire-frame
    - polygon shading

More OOP Practice - 14 Oct 2015

Here is a solution for #1-7 of the Car Store.
We will do #8 in class today.

We will discuss :
-  how to insert further METHODS into classes
-  how to choose appropriate RESPONSIBILITY and METHOD PLACEMENT
-  how to VALIDATE data in SET methods

OOP Programming Practice - 13 Oct 2015

Read these notes about the Car Store
and do the excercises described
by writing a Java Program.

IA Stage A Planning - due at 18:00 on 12 Oct 2015

For this assignment, you need to turn in:
- document for Stage A Planning (several pages) as a .PDF file
- evidence of consultation with the client (could be text or an audio recording)
   You may include this in the same document with Stage A or a separate document, as you wish
- Record of Tasks (this is unfinished, it's just your current version)

We will NOT work on this during class today.  We will continue discussion of OOP Programming.

You can download a beginning version of the BUS classses here.

Continue working on IA Stage A Planning - 8 Oct 2015

Continue working on your IA Project Stage A today.
Ask questions if you need to.

Work Day - 7 Oct 2015

Work on your IA Project Stage A today.
Ask questions if you need to.
Ask questions about your test results if you wish.

OOP Continues - 6 Oct 2015

(1) Review your OOP Design test
(2) We will start writing a program for the BUS problem on the test.

[HL] Case Study - CGI - 25 Sep 2015

Case Study [HL] = CGI = Computer Generated Imagery
The intention of the Case Study is to provide an area
where HL students can INVESTIGATE a "new" topic.
The students are supposed to investigate this on their own -
that can be a group effort, but it is not a task for the teacher.

==== Today's Work ====

We need to find DEFINITIONS and EXAMPLES for all of the VOCABULARY
listed on the last page of the Cas Study.

Here is a Google Doc for our investigation:
Computer Science CGI Case Study Vocabulary
Start filling in the DEFINITIONS and EXPLANATIONS and EXAMPLES.
Video examples would also be very good.

====================


Here are some helpful links:

How CGI Actually Works

Mickey Magician

How Disney Cartoons are Made

Pixar Zoetrope

Flash Cartoon Animation

Advanced Flash Animation

Making of Jurassic Park

Godzilla Layers

Rear Projector Terminator

Landmark CGI Effects

Guardians of Galaxy Green Screen

Pixar Animation Studio    

Dots on Face

CG Actor Rendering

Planet of the Apes

Dawn of Planet of Apes - Behind the scenes

Planet of Apes - Actor Mappings

10 Worst CGI Effects

CGI vs Animatronix

If you want to look for more videos (there are lots) try looking for
Toy Story and Jurassic Park, which were two of the first large scale
CGI movies, as well as The Matrix which contained LOTS of CGI.

Most recently - Guardians of the Galaxy uses LOTS of CGI.

Numbers Classes - 23 Sep 2015

OOP Example = Numbers (start with this program)

OOP Vocabulary - 22 Sep 2015

Page 8 answers

Encapsulation, Inheritance, Polymorphism


Lecture : OOP Example = Numbers (start with this program)

Cafeteria Design - 18 Sep 2015

p. 8 in OOP / System Notes

== HOMEWORK ==
Write down VERY BRIEF answers to
Cafeteria questions  1-6, 8-10
and bring the answers to class on Tuesday.

On Tuesday, the teacher will present
answers for #7, the OOP part.

OOP / System Design Notes - 16-17 Sep 2015

OOP / System Notes

[HL] Case Study - CGI - 15 Sep 2015

Case Study [HL] = CGI = Computer Generated Image
The intention of the Case Study is to provide an area
where HL students can INVESTIGATE a "new" topic.

Here are some helpful links:

How CGI Actually Works

Mickey Magician

How Disney Cartoons are Made

Pixar Zoetrope

Flash Cartoon Animation

Advanced Flash Animation

Making of Jurassic Park

Godzilla Layers

Rear Projector Terminator

Landmark CGI Effects

Guardians of Galaxy Green Screen

Pixar Animation Studio    

Dots on Face

CG Actor Rendering

Planet of the Apes

Dawn of Planet of Apes - Behind the scenes

Planet of Apes - Actor Mappings

10 Worst CGI Effects

If you want to look for more videos (there are lots) try looking for
Toy Story and Jurassic Park, which were two of the first large scale
CGI movies, as well as The Matrix which contained LOTS of CGI.

Last Class for Functional Prototype - 14 Sep 2015

Starting tomorrow, we will go back to lectures about the IB CS Syllabus.
You must continue your Functional Prototype + Client Interview(s) + Stage A Document
at home.

Please try to write some USER STORIES (brief but meaningful) as outlined here:
https://www.youtube.com/watch?v=HNjlx7wykdk&spfreload=10 

Continue Functional Prototype - 11 Sep 2015

Continue working on your functional prototype.

Get something finished that you can show to your Client.

Planning Ahead - 10 Sep 2015

== Sep ==

 mo   tu   we   th   fr   sa  su
7f   8g   9h
 10a  11b  12. 13.
14c  15d  16e  17f  18g  19. 20.
21h  22a  23b  24c  25d  26. 27.

== Oct ==
28.  29.  30.  1.   2.   3.  4.
5p   6e   7f   8g   9h  10. 11.
12a - Stage A Due 12 Oct

With 3.5 weeks left (excluding vacation) until Stage A is due, we should

look at the CHECK-LIST and make a plan for finishing on time - something like this:

1 week - finish an understandable functional prototype

1 week - meet with CLIENT, discuss prototypes,
             take notes (or audio recording),
             start writing Criteria for Success (GOALS)

½ week - make/copy some illustrative pictures
              write down some SAMPLE DATA

1 week -  look at a couple Sample Projects (especially #8)

                WRITE stage A Planning and turn it in

Using OOP in your Project - 8 Sep 2015

We are studying Object Oriented Programming as the EXTENSION topic.

This means that you will have a Paper 2 about OOP in Java.

Using OOP techniques should make your Project easier to create,
especially to demonstrate COMPLEX and INGENIOUS programming (criteria C).

We will be discussing OOP for the next couple of weeks.

Data First in OOP

Objects as Black Boxes

Data Structures in Java

Continue Functional Prototype - 7 Sep 2015

Spend one more day on your Functional Prototype.
(1) Show the teacher what you have so far
(2) Compare it to your Visual Prototype
(3) Show the teacher what you have written in your Record of Tasks form

A "Fixed" GUI Library for Processing 3.0 - 1 Sep 2015

Here is a sample program using the GUI.java library:

https://dl.dropboxusercontent.com/u/275979/ibcomp/processing/attendancePrototype.zip 

Here is the basic idea:

(1) Add a new TAB containing GUI.java

(2) The main program contains "stub" versions of SETUP and DRAW, like this:

import java.awt.*;

App app;

void setup()

{

   size(400,400);
  app = new App();

   noLoop();

}

void draw()

{

}

class App extends GUI

{ …..
  program is here
 …..
}


(3) The main program is in a class that extends GUI.

      This class can contain awt controls, and actions method, etc.

This will work in Processing 3, Processing 2.2, and BlueJ (with slight modification).

This fully supports AWT controls, just like our old IO library.

Unfortunately, graphics commands are a bit trickier, but not impossible.

Next week we will discuss how to include graphics displays.

Which Java IDE ? - 28 Aug 2015

You can use BlueJ or Processing or any other Java IDE that you like.

Unfortunately the new Processing Version 3 Beta still has bugs

in it and will not be usable for AWT GUI programming.

So if you wish to use Processing, stick to version 2.2.1 .

Functional Prototype - 27 Aug 2015

1 - Start writing a Functional Prototype as a Java program.

    You might get some ideas from this example:   checkout.html 

    Keep in mind this is only a very simple Prototype.

    This is not the "whole program".  Make it do something

    that you could show to your Client.  That probably
   includes some INPUT, some OUTPUT and some PROCESSING.

2 - Make a 3rd entry in your Record of Tasks that says
    you are writing a Functional Prototype.

3 - As you think about the Prototype, you will think of some GOALS.

     Start a GOALS document where you can write down GOALS

      as you think of them (and erase them if you change your mind).

Project Overview - Stages A-E - 26 Aug 2015

1 - Forms.zip - Discuss the Record of Tasks
     Students need to download the FORMS.zip file,
     unpack it and make a copy of the Record of Tasks.

      This should contain AT LEAST ONE ENTRY PER WEEK.
     You will spend at least 20 weeks on this Project (excluding vacations),
     so you should have at least 20 entries at the end.

     At the end, it must contain entries for ALL parts of the Project -
     all of stages A to E.  To get started, write the first 2 entries:
        (i) choosing a topic and an client  (Stage A)

         (ii)  creating a Prototype   (Stage A)

2 - Software Design Notes and Project Overview Notes
     Most important issue right now -
     concentrate on the PROBLEM, the CLIENT, and the GOALS (Criteria for success)

Starting IA Project Stage A - 25 Aug 2015

We will look at some of the new  IBO Sample projects -
especially Stage A and the EVIDENCE of client consultation.

[HL] Case Study - CGI - 24 Aug 2015

Case Study [HL] = CGI

The intention of the Case Study is to provide an area

where HL students can INVESTIGATE a "new" topic.

Here are some helpful links:

How CGI Actually Works

Mickey Magician

How Disney Cartoons are Made

Pixar Zoetrope

Flash Cartoon Animation

Advanced Flash Animation

Making of Jurassic Park

Godzilla Layers

Rear Project Terminator

Guardians of Galaxy Green Screen

Pixar Animation Studio    

Dots on Face

CG Actor Rendering

Planet of the Apes

Dawn of Planet of Apes - Behind the scenes

Planet of Apes - Actor Mappings

10 Worst CGI Effects

If you want to look for more videos (there are lots) try looking for
Toy Story and Jurassic Park, which were two of the first large scale
CGI movies, as well as The Matrix which contained LOTS of CGI.

Prototypes - 20-21 Aug 2015

We will work on the prototype assignments
during class this week.  Students should ask questions

if they are unsure what is required.  

Here are some examples:

Here is a VISUAL prototype for TicTacToe.

Here is a FUNCTIONAL prototype for TicTacToe

Here is a VISUAL prototype for adding numbers 

Here is a FUNCTIONAL prototype for adding numbers

The assignment is due on Mon 24 Aug.

Summer Assignment

For IA project - make sure that you have

- identified and intended user for your project

- chosen a topic for your project

- discussed the project with the intended user, at least 30 minutes

before returning to school on 19 August.

It would also be good to make a small start on the prototype,

which is due on 24 August.  You should not spend more than

3 or 4 hours on the prototype - it is just to get started.

Internal Assessment Project Notes