Notes for Option D. Complete at last…
IB Computer Science 2014
IB RESULTS for 2014
Another excellent set of IB results!
- Higher Level average: 6.67
- Standard Level average: 6.00
Very well done!
Free programming books
Collections / List object question
Each object in a collection called items has two variables, a String name and an int number. The collection is ordered in ascending order of number.
The collection supports the following methods:
- isEmpty()
- getFirst()
- getNext()
- getNthObject(int n)
- hasNext()
- length()
- insertAtStart(Obj o)
- insertAtEnd(Obj o)
- insertAtN(int n, Obj o)
- Write an algorithm using a for loop that prints the names of each object (4 marks)
- Write an algorithm using a while loop that prints the names of each object (4 marks)
- Write an algorithm that inserts an object o at the correct place in the list (6 marks)
- Write an algorithm to sort the collection in descending order (2 marks)
My Answers below. These aren’t the only right answers. There are lots of different ways you can code these.
(a)
for(int i = 0; i < items.length(); i++){ System.out.println(items.getNthObject(i).name); }
(b)
if (!items.isEmpty()) { System.out.println(items.getFirst().name); while(items.hasNext()){ System.out.println(items.getNext().name); } }
(c)
if (items.isEmpty()){ items.insertAtStart(o); } else { Object tmp = items.getFirst(); count = 0; while (items.hasNext()){ count++; if (o.number > items.getNthObject(count).number){ items.insertAt(count, o); } }
(d) for (int i = 0; i < items.length(); i++) { items.insertAtStart(items.getNthObject(i)); }
Final IB exam times
Standard Level
- Paper 1 Friday 16th May PM (1h 30)
- Paper 2 Monday 19th May AM (1h)
Higher Level
- Paper 1 Friday 16th May PM (2h 10)
- Paper 2 Monday 19th May AM (1h 20)
- Paper 3 Monday 19th May PM (1h)
Types of chart you need for the exam and a note on 2-D arrays for SL (??)
I wrote a post on the OCC Computer Science highlighting the discrepancy between the Guide and the specimen paper:
Syllabus point 4.2.4 Teacher’s Note:
“Students will not be expected to construct a flow chart to represent an algorithm in an externally assessed component.”
Specimen SL Paper 1, Question 7:
When the wages for company employees are calculated, all hours above 38 are paid at the overtime rate of 1.5 times the base rate. Construct a flowchart that represents this algorithm.
The reply eventually came back from the IB:
Question 7 in the standard level paper 1 Computer Science specimen paper was included in error as it contradicts the teacher’s note, 4.2.4, in the syllabus. As per this note, students will not be expected to construct flow charts to represent algorithms in externally assessed components. The IB apologises for the inconsistency in the specimen paper; this will be revised at the earliest opportunity. It should be noted that students may be asked to draw flow charts when being tested on 1.2.7 in the syllabus.
I also asked about syllabus point 1.2.7.:
Drawing system flowcharts was on the old syllabus, but I notice here there is a reference to DFDs. As I remember from college, a DFD is a very specific thing and drawing one requires quite a lot of expertise. To what extent can students be expected to construct a data flow diagrams in the exam? Does anyone actually teach DFDs in any depth?
The reply came from Dave Mulkey and is worth reading:
Item 1.2.7 specifically says “system flow charts, data flow diagrams, structure chart… UML is not required.” Lacking specific examples, I am assuming that “system flow chart” has arrows and/or lines connecting modules, “data flow diagram” has arrows connecting modules plus data flow labelled on the arrows, “structure chart” is a top-down hierarchical breakdown of a problem. The statement “UML is not required” indicates to me that the others are just generic concepts without any specific requirements. So I don’t think students need to worry greatly about just exactly what is required for a DFD (except that DATA FLOW should be included). But they SHOULD know that these are NOT algorithmic (programming) flowcharts. If 1.2 is supposed to be taught in 10 hours altogether, this single assessment statement can’t require more than about an hour to teach, and at most an hour of practice by the students.
He then points out another problem with the specimen paper and the Guide:
Standard Level Specimen Paper 1 #10 d – asks the students to describe how a two-dimensional array could be used. However, it is clear to me that only LINEAR arrays are required for SL students, and the 2-D arrays are specifically added for HL students. So this question is inappropriate for SL students. Be that as it may, I will now teach 2-D arrays to my SL students – briefly – just in case a similar question appears in a real exam.
Pass/fail conditions for the IB diploma
The IB diploma will be awarded to a candidate whose total score is 24, 25, 26 or 27 points, provided all the following requirements have been met.
a. Numeric grades have been awarded in all six subjects registered for the IB diploma.Pass
b. All CAS requirements have been met.
c. At least a grade D has been awarded for both TOK and the extended essay.
d. There is no grade 1 in any subject.
e. There is no grade 2 at higher level.
f. There is no more than one grade 2 at standard level.
g. Overall, there are no more than three grades 3 or below.
h. At least 12 points have been gained in higher level subjects (candidates who register for four higher level subjects must gain at least 16 points at higher level).
i. At least 9 points have been gained on standard level subjects (candidates who register for two standard level subjects must gain at least 6 points at standard level).
j. The candidate has not been found guilty of malpractice by the IB Organization.
The IB diploma will be awarded to a candidate whose total score is 28 points or above, provided all the following requirements have been met.
a. Numeric grades have been awarded in all six subjects registered for the IB diploma.
b. All CAS requirements have been met.
c. Grades A (highest) to E (lowest) have been awarded for both TOK and an extended essay, with a grade of at least D in one of them.
d. There is no grade 1 in any subject.
e. There is no more than one grade 2 at higher level.
f. There are no more than three grades 2 at standard level.
g. Overall, there are no more than three grades 3 or below.
h. At least 11 points have been gained on higher level subjects (candidates who register for four higher level subjects must gain at least 14 points at higher level).
i. At least 8 points have been gained on standard level subjects (candidates who register for two standard level subjects must gain at least 5 points at standard level).
j. The candidate has not been found guilty of malpractice by the IB Organization.
Social and ethical issues (if you can stay awake…)
This should be useful in answering those boring social and ethical questions that for some reason the IB insist on including in the Computer Science course…
Summary of Social and Ethical Issues
- privacy of the individual – security of data and information
- accuracy of data and information
- changing nature of work
- appropriate information use
- health and safety
- copyright laws
Social and ethical issues in collecting
- bias in the choice of what and where to collect data
- accuracy of the collected data
- copyright and acknowledgment of source data when collecting
- the rights to privacy of individuals on whom data is collected
- ergonomic issues for participants entering large volumes of data into an information system
Social and ethical issues associated with organising
- current trends in organising data, such as:
- the increase in hypermedia as a result of the world wide web
- the ability of software to access different types of data
- a greater variety of ways to organise resulting from advances in display technology
- the cost of poorly organised data, such as redundant data in a database used for mail-outs
- the appropriateness of a two digit date field at a time when storage and processing was more expensive, versus the current inappropriateness
Social and ethical issues associated with analysis
- unauthorised analysis of data
- data incorrectly analysed
- erosion of privacy from linking databases for analysis
Social and ethical issues associated with storing/retrieving
- the security of stored data
- unauthorised retrieval of data
- advances in storage and retrieval technologies and new uses such as data matching
Social and ethical issues associated with processing
- types of computers on networks
- flexibility from the distributed processing of personal computers on networks
- security from the centralised processing of network computers (terminals)
- ownership of processed data
- bias in the way participants in the system process data
Social and ethical issues associated with transmitting and receiving
- accuracy of data received from the Internet
- security of data being transferred
- net-etiquette
- acknowledgment of data source
- global network issues, time zones, date fields, exchange rates
- changing nature of work for participants, such as work from home and telecommuting
- current developments and future trends in digital communications, radio and television
- the impact of the Internet on traditional business
Social and ethical issues associated with displaying
- communication skills of those presenting displays
- past, present and emerging trends in displays
- appropriate displays for a wide range of audiences, including:
- standards for display for the visually impaired
- displays suitable for young children
Social and ethical issues associated with Planning, Design and Implementation
- machine-centred systems simplify what computers do at the expense of participants
- human-centred systems as those that make participants’ work as effective and satisfying as possible
- how the relationships between participants change as a result of the new system
- ensuring the new system provides participants with a safe work environment
- awareness of the impact the system may have on the participants:
- opportunities to use their skills
- meaningful work
- need for change
- opportunities for involvement and commitment
Social and ethical issues related to information systems and databases
- acknowledgment of data sources
- the freedom of information act
- privacy principles
- accuracy of data and the reliability of data sources
- access to data, ownership and control of data
- new trends in the organisation, processing, storage and retrieval of data such as data warehousing and data-mining
Social and ethical issues related to communication systems
- the use of communication systems to share knowledge, not just data
- issues related to messaging systems
- ideas delivered by this means appear less forceful and caring than ideas delivered personally
- danger of being misinterpreted
- power relationships
- privacy and confidentiality
- electronic junk mail
- information overload
- implications of Internet trading including:
- local taxation laws
- employment ramifications
- nature of business
- trading over the Internet and its commercial implications
- the difficulties of censoring content on the Internet
- issues arising from Internet banking, including:
- security of banking details
- changing nature of work
- branch closure and job loss
- the removal of physical boundaries by enabling:
- work from home
- virtual organisations, ie organisations structured around the communication system
- removal of national and international barriers to trade
- how participants are supported:
- individuals by providing a means for communication
- participant teams by enabling the exchange of ideas and data
- the emerging trend of accessing media such as radio and video across the Internet
Social and ethical issues related to multimedia systems
- copyright: the acknowledgment of source data and the ease with which digital data can be modified
- appropriate use of the Internet and the wide spread application of new developments on it such as live video data
- the merging of radio, television, communications and the Internet with the increase and improvements in digitisation
- the integrity of the original source data in educational and other multimedia systems
Social and ethical issues related to transaction processing systems
- changing nature of work and the effect on participants, including:
- the automation of jobs once performed by clerks
- the bypassing of clerks by people in the environment performing their former roles
(Eg collecting now done by customers using the bank’s ATM machines instead of via the bank clerk)
- the need for non-computer procedures to deal with transactions when the computer is not available in real time systems
- bias in data collection:
- when establishing the system and deciding what data to collect
- when collecting data
- the importance of data in transaction processing, including:
- data security
- data accuracy
- data integrity
- control in transaction processing and the implications it has for participants in the system
Operator precedence in Boolean algebra
The question of which boolean operators (AND, OR, NOT, XOR, etc) have precendence has recently come up on the OCC and although the IB typically won’t give an answer (!), there is a general assumption that we will do what Java does, namely:
- BRACKETS have highest precedence
- NOT
- AND, NAND
- OR, XOR, NOR
- Operators at the same precedence are evaluated left to right.
Test your understanding by drawing logic diagrams for the following:
- A AND B OR C
- A OR B AND C
- A OR B XOR C
- NOT A AND B NOR C
Last things to do for the IA
- Computational thinking table
- Logically: If… then… else. Decision-making.
- Procedurally: Things happening in a specific order.
- Ahead: Planning, extensibility, array resizing, using a linked list instead of a static list, etc.
- Abstractly: Class definitions, schematics, encapsulation.
- Concurrently: Saving time by doing lots of things at once.
- Recursively: Exploiting repeated patterns.
- Video
- Brief sentence of introduction saying in plain English what the application does
- Creation, editing and deletion of one data item, from scratch.
- Mention of every success criterion with a demonstration that it has been fulfilled
- If necessary, cut to example with loads of data already added to show sorting, searching, filtering, etc
- Mention of key data structures and algorithms
- Mention some examples of computational thinking: Ahead, Logically, Procedurally, Abstractly, Concurrently, Recursively
- By all means tab to a piece of code in Netbeans to showcase your programming
- Comments in source code
- At least one for every class and method
- It’s also good to comment main loops
- Extensibility
- A small section (a few lines only) entitled Extensibility
- Describe how you have future-proofed your application
- Examples:
- Using file input and output rather than “hard-coding” data
- Defining constants using the final keyword so that they can be changed easily throughout the code
- Using linked lists (or ArrayLists or other built-in data structures) instead of arrays
- Designing in a modular way such that new modules can be added easily
- Allowing the user to add or delete their own data, ie not hard-coding the database (all of you have done this)
- Using standard data formats, like CSV, HTML, that can readily be used by other software
- Test plan with actual input and output data in it
- Some evidence of a testing plan is essential
- Screenshots of validation dialogs are a very good idea (ask if unsure)
- Normal, extreme and abnormal data if possible
- Table format: input, expected output, actual output
- Table showing how you have adhered to good programming and usability practice
- Comments in code
- Encapsulation of instance variables
- Use of standard capitalisation in code
- Proper case for classes
- all caps for constants
- camel case for variables and methods
- User documentation
- System documentation
- Use of relative paths
- Data files instead of hard-coding
- Config files or settings