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 |
Here are suggested activities for reviewing the Case Study:
1. Read the Case Study [HL]
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 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] |
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
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 |
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
We will have a WRITTEN QUIZ tomorrow about this program (different for SL
and HL)
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 |
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
Nov 2014 Paper 1
Other Pseudocode practice
and discuss TREES as illustrated in these notes : Trees Introduction
We
might make it to this
sample program.
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.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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. |
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 |
|
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:
LINK Thinking logically, connecting computational thinking and program design, introduction to programming. |
Not enough space here |
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; } |
Pseudocode
Practice Tool
Pseudocode
Notes for Exams
Pseudocode
Explanations (not in exams)
-
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 **
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.
Guidance Notes (from old syllabus -
ignore details) start on page 15
/********************************* 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; } } |
Guardians of Galaxy Green Screen Dawn of Planet of Apes - Behind the scenes |
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.
Guardians of Galaxy Green Screen Dawn of Planet of Apes - Behind the scenes |
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 |
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.
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); noLoop(); }
void draw() { }
class App extends GUI { ….. |
(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.
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 .
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).
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)
We will look at some of the new IBO Sample
projects -
especially Stage A and the EVIDENCE of client consultation.
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:
Guardians of Galaxy Green Screen Dawn of Planet of Apes - Behind the scenes Planet of Apes - Actor Mappings
|
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.
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.
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