IB Computer Science SL: Difference between revisions

From Computer Science Wiki
No edit summary
 
(130 intermediate revisions by the same user not shown)
Line 1: Line 1:
__NOTOC__  
__NOTOC__  
The purpose of this wiki is to support student learning for computer science.  The intended audience for this wiki is students who are enrolled in designing web applications. Welcome to our wiki!
Computer science requires an understanding of the fundamental concepts of computational thinking as well as knowledge of how computers and other digital devices operate.


<div class="toccolours mw-collapsible mw-collapsed">
The Diploma Program computer science course is '''engaging, accessible, inspiring and rigorous'''.  Click the expand link to see more &rarr;
<div class="mw-collapsible-content">
IB Computer Science has the following characteristics:


<table cellspacing="10" style="width:100%;">
* draws on a wide spectrum of knowledge
<tr>
* enables and empowers innovation, exploration and the acquisition of further knowledge
<td style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#E6F9E6; align:right;vertical-align:top;" colspan="2">
* interacts with and influences cultures, society and how individuals and societies behave
== [[File:news.png]] news==
* raises ethical issues
* is underpinned by computational thinking. Computational thinking involves the ability to:
* think procedurally, logically, concurrently, abstractly, recursively and think ahead
* utilize an experimental and inquiry-based approach to problem-solving
* develop algorithms and express them clearly
* appreciate how theoretical and practical limitations affect the extent to which problems can be solved computationally.
 
During the course the student will develop computational solutions. This will involve the ability to:
 
* identify a problem or unanswered question
* design, prototype and test a proposed solution
* liaise with clients to evaluate the success of the proposed solution and make recommendations for future developments.
</div>
</div>


=== News for August 2016 ===


Welcome. This is the course page for a one semester course for middle school students. Please watch this space for big ideas.
<table cellspacing="10" style="width:100%;">
</td>
</tr>
<tr>
<tr>
<td style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:lightyellow; align:right;vertical-align:top;" colspan="2">
<td style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:lightyellow; align:right;vertical-align:top;" colspan="2">
Line 20: Line 34:
{| style="width: 95%;" class="wikitable sortable"
{| style="width: 95%;" class="wikitable sortable"
|-
|-
! Date of lesson !! Big idea !! Our class notes !! Knowledge and skills we are building
! Date of lesson !! Big idea !! Our class notes
|-style="background-color:#E6F9E6;"
|-style="background-color:#E6F9E6;"
| June 3 2016 || End of year assessment  || [[June 3rd 2016 Lesson Notes | Click here for notes and homework]] || [[End of year assessment]]
| May 26 2017 || Final exam preparation || [[IB Comp Sci SL - May 26 2017 Lesson Notes | Click here fo notes and homework]]
|-
| May 11 2017  ||  Problem set || [[IB Comp Sci SL - May 11 2017 Lesson Notes | Click here for notes and homework]]
|-
| May 11 2017  ||  Problem set  || [[IB Comp Sci SL - May 11 2017 Lesson Notes | Click here for notes and homework]]
|-
| May 8 2017  ||  Diagramming  || [[IB Comp Sci SL - May 8 2017 Lesson Notes | Click here for notes and homework]]
|-
| April 25 2017  ||  client-side scripting and server-side scripting  || [[IB Comp Sci SL - April 25 2017 Lesson Notes | Click here for notes and homework]]
|-
| April 21 2017  ||  Web browsers  || [[IB Comp Sci SL - April 21 2017 Lesson Notes | Click here for notes and homework]]
|-
| April 20 2017  ||  Organization about IA  || [[IB Comp Sci SL - April 20 2017 Lesson Notes | Click here for notes and homework]]
|-
| April 18 2017  ||  Review HTML validator, prep homework IA  || [[IB Comp Sci SL - April 18 2017 Lesson Notes | Click here for notes and homework]]
|-
| April 13 2017  ||  Write an HTML validator  || [[IB Comp Sci SL - April 13 2017 Lesson Notes | Click here for notes and homework]]
|-
| April 5 2017  ||  Discuss test,  review DNS, begin discussing [[Protocols and standards on the web]]  || [[IB Comp Sci SL - April 5 2017 Lesson Notes | Click here for notes and homework]]
|-
| March 30 2017  ||  Review for test on Monday, [[DNS]] || [[IB Comp Sci SL - March 30 2017 Lesson Notes | Click here for notes and homework]]
|-
| March 28 2017  ||  [[HTTP, HTTPS, HTML, URL, XML, XSLT, CSS]] || [[IB Comp Sci SL - March 28 2017 Lesson Notes | Click here for notes and homework]]
|-
| March 24 2017  ||  UML, [[How the web is evolving]] || [[IB Comp Sci SL - March 24 2017 Lesson Notes | Click here for notes and homework]]
|-
| March 23 2017  ||  Review IA, learn UML, diagram your solution || [[IB Comp Sci SL - March 23 2017 Lesson Notes | Click here for notes and homework]]
|-
| March 16 2017  ||  Introduction to [[Web Science]] || [[IB Comp Sci SL - March 16 2017 Lesson Notes | Click here for notes and homework]]
|-
| March 14 2017  || review game table & discuss IA || [[IB Comp Sci SL - March 14 2017 Lesson Notes | Click here for notes and homework]]
|-
| March 10 2017  || add functionality || [[IB Comp Sci SL - March 10 2017 Lesson Notes | Click here for notes and homework]]
|-
| March 6 2017  || Last day for user system || [[IB Comp Sci SL - March 6 2017 Lesson Notes | Click here for notes and homework]]
|-
| March 2 2017  || A working user system || [[IB Comp Sci SL - March 2 2017 Lesson Notes | Click here for notes and homework]]
|-
| February 28 2017  || review our work so far || [[IB Comp Sci SL - February 28 2017 Lesson Notes | Click here for notes and homework]]
|-
| February 14 2017  || includes and starting databases || [[IB Comp Sci SL - February 14 2017 Lesson Notes | Click here for notes and homework]]
|-
| February 10 2017  || login system || [[IB Comp Sci SL - February 10 2017 Lesson Notes | Click here for notes and homework]]
|-
| February 8 2017  || login system || [[IB Comp Sci SL - February 8 2017 Lesson Notes | Click here for notes and homework]]
|-
| February 6 2017  || login system || [[IB Comp Sci SL - February 4 2017 Lesson Notes | Click here for notes and homework]]
|-
| February 3 2017  || [https://docs.google.com/document/d/1EYxS6qq_tdfJNjB7VcFEZJYuDp4QCRQ8dcMepEoaGKQ/edit review IA], bootstrap || [[IB Comp Sci SL - February 3 2017 Lesson Notes | Click here for notes and homework]]
|-
| February 1 2017  || Review test, [https://docs.google.com/document/d/1EYxS6qq_tdfJNjB7VcFEZJYuDp4QCRQ8dcMepEoaGKQ/edit review IA], bootstrap || [[IB Comp Sci SL - February 1 2017 Lesson Notes | Click here for notes and homework]]
|-
| January 27 2017  || Start [[Internal Assessment]] || [[IB Comp Sci SL - January 27 2017 Lesson Notes | Click here for notes and homework]]
|-
| January 25 2017  || Exam || Exam
|-
| January 23 2017  || Revision for exam on Wednesday || [[IB Comp Sci SL - January 23 2017 Lesson Notes | Click here for notes and homework]]
|-
| January 20 2017  || Bootstrap, [[Managing releases and updates]] || [[IB Comp Sci SL - January 20 2017 Lesson Notes | Click here for notes and homework]]
|-
| January 18 2017  || [[IDE]], [[Data loss]] || [[IB Comp Sci SL - January 18 2017 Lesson Notes | Click here for notes and homework]]
|-
| January 16 2017  || [[IDE]], [[User training]] || [[IB Comp Sci SL - January 16 2017 Lesson Notes | Click here for notes and homework]]
|-
| January 12 2017  || [[IDE]] check in, [[User documentation]] || [[IB Comp Sci SL - January 12 2017 Lesson Notes | Click here for notes and homework]]
|-
| January 10 2017  || (A block) [[IDE]] check in, [[Change management]]  || [[IB Comp Sci SL - January 10 2017 Lesson Notes | Click here for notes and homework]]
|-
| January 9 2017  || [[IDE]] & overview for the  rest of the year || [[IB Comp Sci SL - January 9 2017 Lesson Notes | Click here for notes and homework]]
|-
| December 13 2016 || [[abstract data structures |data structures]] & [[tree]]s & [[binary tree]]s || [[IB Comp Sci SL - December 13 2016 Lesson Notes | Click here for notes and homework]]
|-
| December 9 2016 || [[abstract data structures |data structures]] & [[tree]]s & [[binary tree]]s || [[IB Comp Sci SL - December 9 2016 Lesson Notes | Click here for notes and homework]]
|-
| December 7 2016 || [[abstract data structures |data structures]] & [[stack]]s & [[queue]]s || [[IB Comp Sci SL - December 7 2016 Lesson Notes | Click here for notes and homework]]
|-
| December 6 2016 || [[abstract data structures |data structures]] & [[linked list]] || [[IB Comp Sci SL - December 6 2016 Lesson Notes | Click here for notes and homework]]
|-
| December 1 2016 || [[system fundamentals]] - Intro to [[abstract data structures |data structures]] || [[IB Comp Sci SL - December 1 2016 Lesson Notes | Click here for notes and homework]]
|-
| November 28 2016 || [[system fundamentals]] || [[IB Comp Sci SL - November 28 2016 Lesson Notes | Click here for notes and homework]]
|-
| November 23 2016 || [[system fundamentals]] || [[IB Comp Sci SL - November 23 2016 Lesson Notes | Click here for notes and homework]]
|-
| November 21 2016 || [[system fundamentals]] || [[IB Comp Sci SL - November 21 2016 Lesson Notes | Click here for notes and homework]]
|-
| November 15 2016 || [[system fundamentals]] || [[IB Comp Sci SL - November 15 2016 Lesson Notes | Click here for notes and homework]]
|-
| November 10 2016 || [[system fundamentals]] || [[IB Comp Sci SL - November 10 2016 Lesson Notes | Click here for notes and homework]]
|-
| November 7 2016 || [[system fundamentals]] || [[IB Comp Sci SL - November 7 2016 Lesson Notes | Click here for notes and homework]]
|-
| November 4 2016 || [[system fundamentals]] || [[IB Comp Sci SL - November 4 2016 Lesson Notes | Click here for notes and homework]]
|-
| November 2 2016 || Review and [[system fundamentals]] || [[IB Comp Sci SL - November 2 2016 Lesson Notes | Click here for notes and homework]]
|-
| October 20 2016 || [[Collections]] and [[arrays]] || [[IB Comp Sci SL - October 20 2016 Lesson Notes | Click here for notes and homework]]
|-
| October 18 2016 || [[Collections]] and [[arrays]] || [[IB Comp Sci SL - October 18 2016 Lesson Notes | Click here for notes and homework]]
|-
| October 14 2016 || [[Collections]] and [[arrays]] || [[IB Comp Sci SL - October 14 2016 Lesson Notes | Click here for notes and homework]]
|-
| October 11 2016 || [[Collections]] and [[arrays]] || [[IB Comp Sci SL - October 11 2016 Lesson Notes | Click here for notes and homework]]
|-
| October 7 2016 || [[Computational thinking, problem-solving and programming | Problem set]] || [[IB Comp Sci SL - October 7 2016 Lesson Notes | Click here for notes and homework]]
|-
| October 5 2016 || [[Computational thinking, problem-solving and programming | Nature of programming languages]] || [[IB Comp Sci SL - October 5 2016 Lesson Notes | Click here for notes and homework]]
|-
| October 3 2016 || [[Computational thinking, problem-solving and programming | Computational thinking]] || [[IB Comp Sci SL - October 3 2016 Lesson Notes | Click here for notes and homework]]
|-
| September 26 2016 || [[Computational thinking, problem-solving and programming | Computational thinking]] || [[IB Comp Sci SL - September 26 2016 Lesson Notes | Click here for notes and homework]]
|-
| September 22 2016 || [[Computational thinking, problem-solving and programming | Computational thinking]] || [[IB Comp Sci SL - September 22 2016 Lesson Notes | Click here for notes and homework]]
|-
| September 19 2016 || [[Computational thinking, problem-solving and programming | Computational thinking]] || [[IB Comp Sci SL - September 19 2016 Lesson Notes | Click here for notes and homework]]
|-
| September 15 2016 || [[Computational thinking, problem-solving and programming | Computational thinking]] || [[IB Comp Sci SL - September 15 2016 Lesson Notes | Click here for notes and homework]]
|-
| September 13 2016 || [[Computational thinking, problem-solving and programming | Computational thinking]] || [[IB Comp Sci SL - September 13 2016 Lesson Notes | Click here for notes and homework]]
|-
| September 9 2016 || [[CLI]] and [[Linux]] || [[IB Comp Sci SL - September 9 2016 Lesson Notes | Click here for notes and homework]]
|-
| September 7 2016 || [[Computer organization]] || [[IB Comp Sci SL - September 7 2016 Lesson Notes | Click here for notes and homework]]
|-
| September 6 2016 || [[Computer organization]] || [[IB Comp Sci SL - September 6 2016 Lesson Notes | Click here for notes and homework]]
|-
| September 2 2016 || [[Computer organization]] || [[IB Comp Sci SL - September 2 2016 Lesson Notes | Click here for notes and homework]]
|-
| August 31 2016 || [[Computer organization]] || [[IB Comp Sci SL - August 31 2016 Lesson Notes | Click here for notes and homework]]
|-
| August 29 2016 || [[Computer organization]] || [[IB Comp Sci SL - August 29 2016 Lesson Notes | Click here for notes and homework]]
|-
| August 25 2016 || [[Computer organization]] || [[IB Comp Sci SL - August 25 2016 Lesson Notes | Click here for notes and homework]]
|-
| August 24 2016 || [[Computer organization]]  || [[IB Comp Sci SL - August 24 2016 Lesson Notes | Click here for notes and homework]]
|-
| August 23 2016 || Welcome  || [[IB Comp Sci SL - August 23 2016 Lesson Notes | Click here for notes and homework]]
|-


|}
|}
Line 28: Line 179:
{| style="width: 95%;" class="wikitable"
{| style="width: 95%;" class="wikitable"
|-
|-
! [[Calendar | Click for calendar]]  !!  style="background-color: #FAAFBA;" |  [[How to ask for help | Help! My code isn't working!]]
! [[Calendar | Click for calendars]]  !!  style="background-color: #FAAFBA;" |  [[file:warning.png]] [[How to ask for help | Help! My code isn't working!]]
|}
|}
</td>
</td>
Line 39: Line 190:


* [[Getting started]] will help you with most of your resource needs.
* [[Getting started]] will help you with most of your resource needs.
* [[Our textbook]] should also prove helpful.
* [https://classroom.google.com/u/0/c/MTU4MjMzNTc5N1pa Click here for our google classroom link]
* [[IB Computer Science textbook]] should also prove helpful.




Line 61: Line 213:
=== Standards ===
=== Standards ===


* [[High School Exploring computer science standards]]
* [[IB Computer Science SL standards]]


=== Grading ===
=== Grading, Assessment and Rubrics===
* [[Levels of knowing (Level 1, Level 2, Level 3)]]
* [[Assessment for IB Computer Science SL]]
* [[Levels of knowing (Level 1, Level 2, Level 3) | What does it mean when you are asked to "describe", "analyse", or "compare"? ]]
* [[Assessment re-take policy]]
* [[Media:Participationrubric-cfa.pdf ‎| Classroom participation rubric]]
* [[Media:Participationrubric-cfa.pdf ‎| Classroom participation rubric]]
* [[Media:ASW HS ApproachesToLearning Rubric.pdf ‎| Approaches to Learning rubric]]
* [[Media:ASW HS ApproachesToLearning Rubric.pdf ‎| Approaches to Learning rubric]]
* [[Media:Common Core Rubrics Gr11-12.pdf | Informative writing rubric]]
* [[Media:Common Core Rubrics Gr11-12.pdf | Informative writing rubric]]
* [[Media:Command-terms-IB.pdf | What does it mean when you are asked to "describe", "analyse", or "compare"?]]
* [[Extra credit]]
* [[Extra credit]]


Line 83: Line 236:
== [[Image:credit.png]] Credits ==
== [[Image:credit.png]] Credits ==
* Icons used with tremendous gratitude by [http://www.freepik.com/ Freepik] from [http://www.flaticon.com/ flaticon]
* Icons used with tremendous gratitude by [http://www.freepik.com/ Freepik] from [http://www.flaticon.com/ flaticon]
* IB Diploma Program Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.
</td>
</td>
</tr>
</tr>
</table>
</table>


[[Category:web applications]]
[[Category:IB Computer Science SL]]
[[Category:course]]
[[Category:course]]
=Welcome=
Computer science requires an understanding of the fundamental concepts of computational thinking as
well as knowledge of how computers and other digital devices operate.
The Diploma Programme computer science course is engaging, accessible, inspiring and rigorous. It has the following characteristics.
* draws on a wide spectrum of knowledge
* enables and empowers innovation, exploration and the acquisition of further knowledge
* interacts with and influences cultures, society and how individuals and societies behave
* raises ethical issues
* is underpinned by computational thinking.
Computational thinking involves the ability to:
* think procedurally, logically, concurrently, abstractly, recursively and think ahead
* utilize an experimental and inquiry-based approach to problem-solving
* develop algorithms and express them clearly
* appreciate how theoretical and practical limitations affect the extent to which problems can be solved computationally.
During the course the student will develop computational solutions. This will involve the ability to:
* identify a problem or unanswered question
* design, prototype and test a proposed solution
* liaise with clients to evaluate the success of the proposed solution and make recommendations for future developments.
Computer science has links with subjects outside of group 4, notably information technology in a global society (ITGS), but it should be noted that there are clear differences between the subjects.
=Standards=
These are the standards we will address in this course. There are three levels of knowing for each standard.
'''Assessment objective 1:''' classify, define, draw, label, list, state
'''Assessment objective 2''': annotate, apply, calculate, describe, design, distinguish, estimate, identify,
outline, present, trace
'''Assessment objective 3''': analyse, comment, compare, compare and contrast, construct, contrast, deduce, demonstrate, derive, determine, discuss, evaluate, examine, explain, formulate, interpret, investigate, justify, predict, sketch, suggest, to what extent
==Topic 1 System fundamentals==
*[[1.1.1 Identify the context for which a new system is planned. Level: 2]]
*[[1.1.2 Describe the need for change management. Level: 2]]
*[[1.1.3 Outline compatibility issues resulting from situations including legacy systems or business mergers. Level: 2]]
*[[1.1.4 Compare the implementation of systems using a client’s hardware with hosting systems remotely. Level: 3]]
*[[1.1.5 Evaluate alternative installation processes. Level: 3]]
*[[1.1.6 Discuss problems that may arise as a part of data migration. Level: 3]]
*[[1.1.7 Suggest various types of testing. Level: 3]]
*[[1.1.8 Describe the importance of user documentation. Level: 2]]
*[[1.1.9 Evaluate different methods of providing user documentation. Level: 3]]
*[[1.1.10 Evaluate different methods of delivering user training. Level: 3]]
*[[1.1.11 Identify a range of causes of data loss. Level: 2]]
*[[1.1.12 Outline the consequences of data loss in a specified situation. Level: 2]]
*[[1.1.13 Describe a range of methods that can be used to prevent data loss. Level: 2]]
*[[1.1.14 Describe strategies for managing releases and updates. Level: 2]]
*[[1.2.1 Define the terms: hardware, software, peripheral, network, human resources. Level: 1]]
*[[1.2.2 Describe the roles that a computer can take in a networked world. Level: 2]]
*[[1.2.3 Discuss the social and ethical issues associated with a networked world. Level: 3]]
*[[1.2.4 Identify the relevant stakeholders when planning a new system. Level: 2]]
*[[1.2.5 Describe methods of obtaining requirements from stakeholders. Level: 2]]
*[[1.2.6 Describe appropriate techniques for gathering the information needed to arrive at a workable solution. Level: 2]]
*[[1.2.7 Construct suitable representations to illustrate system requirements. Level: 3]]
*[[1.2.8 Describe the purpose of prototypes to demonstrate the proposed system to the client. Level: 2]]
*[[1.2.9 Discuss the importance of iteration during the design process. Level: 3]]
*[[1.2.10 Explain the possible consequences of failing to involve the end-user in the design process. Level: 3]]
*[[1.2.11 Discuss the social and ethical issues associated with the introduction of new IT systems. Level: 3]]
*[[1.2.12 Define the term usability. Level: 1]]
*[[1.2.13 Identify a range of usability problems with commonly used digital devices. Level: 2]]
*[[1.2.14 Identify methods that can be used to improve the accessibility of systems. Level: 2]]
*[[1.2.15 Identify a range of usability problems that can occur in a system. Level: 2]]
*[[1.2.16 Discuss the moral, ethical, social, economic and environmental implications of the interaction between humans and machines. Level: 3]]
==Topic 2 Computer Organization==
*[[2.1.1 Outline the architecture of the central processing unit (CPU) and the functions of the arithmetic logic unit (ALU) and the control unit (CU) and the registers within the CPU. Level: 2]]
*[[2.1.2 Describe primary memory. Level: 2]]
*[[2.1.3 Explain the use of cache memory. Level: 3]]
*[[2.1.4 Explain the machine instruction cycle. Level: 3]]
*[[2.1.5 Identify the need for persistent storage. Level: 2]]
*[[2.1.6 Describe the main functions of an operating system. Level: 2]]
*[[2.1.7 Outline the use of a range of application software. Level: 2]]
*[[2.1.8 Identify common features of applications. Level: 2]]
*[[2.1.9 Define the terms: bit, byte, binary, denary/decimal, hexadecimal. Level: 1]]
*[[2.1.10 Outline the way in which data is represented in the computer. Level: 2]]
*[[2.1.11 Define the Boolean operators: AND, OR, NOT, NAND, NOR and XOR. Level: 1]]
*[[2.1.12 Construct truth tables using the above operators. Level: 3]]
*[[2.1.13 Construct a logic diagram using AND, OR, NOT, NAND, NOR and XOR gates. Level: 3]]
==Topic 3 Networks==
*[[3.1.1 Identify different types of networks. Level: 2]]
*[[3.1.2 Outline the importance of standards in the construction of networks. Level: 2]]
*[[3.1.3 Describe how communication over networks is broken down into different layers. Level: 2]]
*[[3.1.4 Identify the technologies required to provide a VPN. Level: 2]]
*[[3.1.5 Evaluate the use of a VPN. Level: 3]]
*[[3.1.6 Define the terms: protocol, data packet. Level: 1]]
*[[3.1.7 Explain why protocols are necessary. Level: 3]]
*[[3.1.8 Explain why the speed of data transmission across a network can vary. Level: 3]]
*[[3.1.9 Explain why compression of data is often necessary when transmitting across a network. Level: 3]]
*[[3.1.10 Outline the characteristics of different transmission media. Level: 2]]
*[[3.1.11 Explain how data is transmitted by packet switching. Level: 3]]
*[[3.1.12 Outline the advantages and disadvantages of wireless networks. Level: 2]]
*[[3.1.13 Describe the hardware and software components of a wireless network. Level: 2]]
*[[3.1.14 Describe the characteristics of wireless networks. Level: 2]]
*[[3.1.15 Describe the different methods of network security. Level: 2]]
*[[3.1.16 Evaluate the advantages and disadvantages of each method of network security. Level: 3]]
==Topic 4 Computational thinking, problem-solving and programming==
*[[4.1.1 Identify the procedure appropriate to solving a problem. Level: 2]]
*[[4.1.2 Evaluate whether the order in which activities are undertaken will result in the required outcome. Level: 3]]
*[[4.1.3 Explain the role of sub-procedures in solving a problem. Level: 3]]
*[[4.1.4 Identify when decision-making is required in a specified situation. Level: 2]]
*[[4.1.5 Identify the decisions required for the solution to a specified problem. Level: 2]]
*[[4.1.6 Identify the condition associated with a given decision in a specified problem. Level: 2]]
*[[4.1.7 Explain the relationship between the decisions and conditions of a system. Level: 3]]
*[[4.1.8 Deduce logical rules for real-world situations. Level: 3]]
*[[4.1.9 Identify the inputs and outputs required in a solution. Level: 2]]
*[[4.1.10 Identify pre-planning in a suggested problem and solution. Level: 2]]
*[[4.1.11 Explain the need for pre-conditions when executing an algorithm. Level: 3]]
*[[4.1.12 Outline the pre- and post-conditions to a specified problem. Level: 2]]
*[[4.1.13 Identify exceptions that need to be considered in a specified problem solution. Level: 2]]
*[[4.1.14 Identify the parts of a solution that could be implemented concurrently. Level: 2]]
*[[4.1.15 Describe how concurrent processing can be used to solve a problem. Level: 2]]
*[[4.1.16 Evaluate the decision to use concurrent processing in solving a problem. Level: 3]]
*[[4.1.17 Identify examples of abstraction. Level: 2]]
*[[4.1.18 Explain why abstraction is required in the derivation of computational solutions for a specified situation. Level: 3]]
*[[4.1.19 Construct an abstraction from a specified situation. Level: 3]]
*[[4.1.20 Distinguish between a real-world entity and its abstraction. Level: 2]]
*[[4.2.1 Describe the characteristics of standard algorithms on linear arrays. Level: 2]]
*[[4.2.2 Outline the standard operations of collections. Level: 2]]
*[[4.2.3 Discuss an algorithm to solve a specific problem. Level: 3]]
*[[4.2.4 Analyse an algorithm presented as a flow chart. Level: 3]]
*[[4.2.5 Analyse an algorithm presented as pseudocode. Level: 3]]
*[[4.2.6 Construct pseudocode to represent an algorithm. Level: 3]]
*[[4.2.7 Suggest suitable algorithms to solve a specific problem. Level: 3]]
*[[4.2.8 Deduce the efficiency of an algorithm in the context of its use. Level: 3]]
*[[4.2.9 Determine the number of times a step in an algorithm will be performed for given input data. Level: 3]]
*[[4.3.1 State the fundamental operations of a computer. Level: 1]]
*[[4.3.2 Distinguish between fundamental and compound operations of a computer. Level: 2]]
*[[4.3.3 Explain the essential features of a computer language. Level: 3]]
*[[4.3.4 Explain the need for higher level languages. Level: 3]]
*[[4.3.5 Outline the need for a translation process from a higher level language to machine executable code. Level: 2]]
*[[4.3.6 Define the terms: variable, constant, operator, object. Level: 1]]
*[[4.3.7 Define common operators. Level: 1]]
*[[4.3.8 Analyse the use of variables, constants and operators in algorithms. Level: 3]]
*[[4.3.9 Construct algorithms using loops, branching. Level: 3]]
*[[4.3.10 Describe the characteristics and applications of a collection. Level: 2]]
*[[4.3.11 Construct algorithms using the access methods of a collection. Level: 3]]
*[[4.3.12 Discuss the need for sub-programmes and collections within programmed solutions. Level: 3]]
*[[4.3.13 Construct algorithms using pre- defined sub-programmes, one- dimensional arrays and/or collections. Level: 3]]
==Topic 5 Abstract data structures==
*[[5.1.1 Identify a situation that requires the use of recursive thinking. Level: 2]]
*[[5.1.2 Identify recursive thinking in a specified problem solution. Level: 2]]
*[[5.1.3 Trace a recursive algorithm to express a solution to a problem. Level: 2]]
*[[5.1.4 Describe the characteristics of a two- dimensional array. Level: 2]]
*[[5.1.5 Construct algorithms using two- dimensional arrays. Level: 3]]
*[[5.1.6 Describe the characteristics and applications of a stack. Level: 2]]
*[[5.1.7 Construct algorithms using the access methods of a stack. Level: 3]]
*[[5.1.8 Describe the characteristics and applications of a queue. Level: 2]]
*[[5.1.9 Construct algorithms using the access methods of a queue. Level: 3]]
*[[5.1.10 Explain the use of arrays as static stacks and queues. Level: 3]]
*[[5.1.11 Describe the features and characteristics of a dynamic data structure. Level: 2]]
*[[5.1.12 Describe how linked lists operate logically. Level: 2]]
*[[5.1.13 Sketch linked lists (single, double and circular). Level: 3]]
*[[5.1.14 Describe how trees operate logically (both binary and non-binary). Level: 2]]
*[[5.1.15 Define the terms: parent, left-child, right-child, subtree, root and leaf. Level: 1]]
*[[5.1.16 State the result of inorder, postorder and preorder tree traversal. Level: 1]]
*[[5.1.17 Sketch binary trees. Level: 3]]
*[[5.1.18 Define the term dynamic data structure. Level: 1]]
*[[5.1.19 Compare the use of static and dynamic data structures. Level: 3]]
*[[5.1.20 Suggest a suitable structure for a given situation. Level: 3]]
==Topic 6—Resource management==
*[[6.1.1 Identify the resources that need to be managed within a computer system. Level: 2]]
*[[6.1.2 Evaluate the resources available in a variety of computer systems. Level: 3]]
*[[6.1.3 Identify the limitations of a range of resources in a specified computer system. Level: 2]]
*[[6.1.4 Describe the possible problems resulting from the limitations in the resources in a computer system. Level: 2]]
*[[6.1.5 Explain the role of the operating system in terms of managing memory, peripherals and hardware interfaces. Level: 3]]
*[[6.1.7 Outline OS resource management techniques: scheduling, policies, multitasking, virtual memory, paging, interrupt, polling. Level: 2]]
*[[6.1.8 Discuss the advantages of producing a dedicated operating system for a device. Level: 3]]
*[[6.1.9 Outline how an operating system hides the complexity of the hardware from users and applications. Level: 2]]
==Topic 7—Control==
*[[7.1.1 Discuss a range of control systems. Level: 3]]
*[[7.1.2 Outline the uses of microprocessors and sensor input in control systems. Level: 2]]
*[[7.1.3 Evaluate different input devices for the collection of data in specified situations. Level: 3]]
*[[7.1.4 Explain the relationship between a sensor, the processor and an output transducer. Level: 3]]
*[[7.1.5 Describe the role of feedback in a control system. Level: 2]]
*[[7.1.6 Discuss the social impacts and ethical considerations associated with the use of embedded systems. Level: 3]]
*[[7.1.7 Compare a centrally controlled system with a distributed system. Level: 3]]
*[[7.1.8 Outline the role of autonomous agents acting within a larger system. Level: 2]]
==C—Web science==
*[[C.1.1 Distinguish between the internet and World Wide Web (web). Level: 2]]
*[[C.1.2 Describe how the web is constantly evolving. Level: 2]]
*[[C.1.3 Identify the characteristics of the following: HTTP, HTTPS, HTML, URL, XML, XSLT, CSS. Level: 2]]
*[[C.1.4 Identify the characteristics of a uniform resource identifier (URI) URL. Level: 2]]
*[[C.1.5 Describe the purpose of a URL. Level: 2]]
*[[C.1.6 Describe how a domain name server functions. Level: 2]]
*[[C.1.7  Identify the characteristics of the internet protocol (IP) transmission control protocol (TCP) file transfer protocol (FTP). Level: 2]]
*[[C.1.8 Outline the different components of a web page. Level: 2]]
*[[C.1.9 Explain the importance of protocols and standards on the web. Level: 3]]
*[[C.1.10 Describe the different types of web page. Level: 2]]
*[[C.1.11 Explain the differences between a static web page and a dynamic web page. Level: 3]]
*[[C.1.12 Explain the functions of a browser. Level: 3]]
*[[C.1.13 Evaluate the use of client-side scripting and server-side scripting in web pages. Level: 3]]
*[[C.1.14 Describe how web pages can be connected to underlying data sources. Level: 2]]
*[[C.1.15 Describe the function of the common gateway interface (CGI). Level: 2]]
*[[C.1.16 Evaluate the structure of different types of web pages. Level: 3]]
*[[C.2.1 Define the term search engine. Level: 1]]
*[[C.2.2 Distinguish between the surface web and the deep web. Level: 2]]
*[[C.2.3 Outline the principles of searching algorithms used by search engines. Level: 2]]
*[[C.2.4 Describe how a web crawler functions. Level: 2]]
*[[C.2.5 Discuss the relationship between data in a meta-tag and how it is accessed by a web crawler. Level: 3]]
*[[C.2.6 Discuss the use of parallel web crawling. Level: 3]]
*[[C.2.7 Outline the purpose of web-indexing in search engines. Level: 2]]
*[[C.2.8 Suggest how web developers can create pages that appear more prominently in search engine results. Level: 3]]
*[[C.2.9 Describe the different metrics used by search engines. Level: 2]]
*[[C.2.10 Explain why the effectiveness of a search engine is determined by the assumptions made when developing it. Level: 3]]
*[[C.2.11 Discuss the use of white hat and black hat search engine optimization. Level: 3]]
*[[C.2.12 Outline future challenges to search engines as the web continues to grow. Level: 2]]
*[[C.3.1 Define the terms: mobile computing, ubiquitous computing, peer-2-peer network, grid computing. Level: 1]]
*[[C.3.2 Compare the major features of: mobile computing ubiquitous computing peer-2-peer network grid computing. Level: 3]]
*[[C.3.3 Distinguish between interoperability and open standards. Level: 2]]
*[[C.3.4 Describe the range of hardware used by distributed networks. Level: 2]]
*[[C.3.5 Explain why distributed systems may act as a catalyst to a greater decentralization of the web. Level: 3]]
*[[C.3.6 Distinguish between lossless and lossy compression. Level: 2]]
*[[C.3.7 Evaluate the use of decompression software in the transfer of information. Level: 3]]
*[[C.4.1 Discuss how the web has supported new methods of online interaction such as social networking. Level: 3]]
*[[C.4.2 Describe how cloud computing is different from a client-server architecture. Level: 2]]
*[[C.4.3 Discuss the effects of the use of cloud computing for specified organizations. Level: 3]]
*[[C.4.4 Discuss the management of issues such as copyright and intellectual property on the web. Level: 3]]
*[[C.4.5 Describe the interrelationship between privacy, identification and authentication. Level: 2]]
*[[C.4.6 Describe the role of network architecture, protocols and standards in the future development of the web. Level: 2]]
*[[C.4.7 Explain why the web may be creating unregulated monopolies. Level: 3]]
*[[C.4.8 Discuss the effects of a decentralized and democratic web. Level: 2]]
*[[C.5.1 Describe how the web can be represented as a directed graph. Level: 2]]
*[[C.5.2 Outline the difference between the web graph and sub-graphs. Level: 2]]
*[[C.5.3 Describe the main features of the web graph such as bowtie structure, strongly connected core (SCC), diameter. Level: 2]]
*[[C.5.4 Explain the role of graph theory in determining the connectivity of the web. Level: 3]]
*[[C.5.5 Explain that search engines and web crawling use the web graph to access information. Level: 3]]
*[[C.5.6 Discuss whether power laws are appropriate to predict the development of the web. Level: 3]]
*[[C.6.1 Define the term semantic web. Level: 1]]
*[[C.6.2 Distinguish between the text-web and the multimedia-web. Level: 2]]
*[[C.6.3 Describe the aims of the semantic web. Level: 2]]
*[[C.6.4 Distinguish between an ontology and folksonomy. Level: 2]]
*[[C.6.5 Describe how folksonomies and emergent social structures are changing the web. Level: 2]]
*[[C.6.6 Explain why there needs to be a balance between expressivity and usability on the semantic web. Level: 3]]
*[[C.6.7 Evaluate methods of searching for information on the web. Level: 3]]
*[[C.6.8 Distinguish between ambient intelligence and collective intelligence. Level: 2]]
*[[C.6.9 Discuss how ambient intelligence can be used to support people. Level: 3]]
*[[C.6.10 Explain how collective intelligence can be applied to complex issues. Level: 3]]

Latest revision as of 12:34, 26 May 2017

Computer science requires an understanding of the fundamental concepts of computational thinking as well as knowledge of how computers and other digital devices operate.

The Diploma Program computer science course is engaging, accessible, inspiring and rigorous. Click the expand link to see more →

IB Computer Science has the following characteristics:

  • draws on a wide spectrum of knowledge
  • enables and empowers innovation, exploration and the acquisition of further knowledge
  • interacts with and influences cultures, society and how individuals and societies behave
  • raises ethical issues
  • is underpinned by computational thinking. Computational thinking involves the ability to:
  • think procedurally, logically, concurrently, abstractly, recursively and think ahead
  • utilize an experimental and inquiry-based approach to problem-solving
  • develop algorithms and express them clearly
  • appreciate how theoretical and practical limitations affect the extent to which problems can be solved computationally.

During the course the student will develop computational solutions. This will involve the ability to:

  • identify a problem or unanswered question
  • design, prototype and test a proposed solution
  • liaise with clients to evaluate the success of the proposed solution and make recommendations for future developments.


Calendar.png Our class meetings[edit]

Date of lesson Big idea Our class notes
May 26 2017 Final exam preparation Click here fo notes and homework
May 11 2017 Problem set Click here for notes and homework
May 11 2017 Problem set Click here for notes and homework
May 8 2017 Diagramming Click here for notes and homework
April 25 2017 client-side scripting and server-side scripting Click here for notes and homework
April 21 2017 Web browsers Click here for notes and homework
April 20 2017 Organization about IA Click here for notes and homework
April 18 2017 Review HTML validator, prep homework IA Click here for notes and homework
April 13 2017 Write an HTML validator Click here for notes and homework
April 5 2017 Discuss test, review DNS, begin discussing Protocols and standards on the web Click here for notes and homework
March 30 2017 Review for test on Monday, DNS Click here for notes and homework
March 28 2017 HTTP, HTTPS, HTML, URL, XML, XSLT, CSS Click here for notes and homework
March 24 2017 UML, How the web is evolving Click here for notes and homework
March 23 2017 Review IA, learn UML, diagram your solution Click here for notes and homework
March 16 2017 Introduction to Web Science Click here for notes and homework
March 14 2017 review game table & discuss IA Click here for notes and homework
March 10 2017 add functionality Click here for notes and homework
March 6 2017 Last day for user system Click here for notes and homework
March 2 2017 A working user system Click here for notes and homework
February 28 2017 review our work so far Click here for notes and homework
February 14 2017 includes and starting databases Click here for notes and homework
February 10 2017 login system Click here for notes and homework
February 8 2017 login system Click here for notes and homework
February 6 2017 login system Click here for notes and homework
February 3 2017 review IA, bootstrap Click here for notes and homework
February 1 2017 Review test, review IA, bootstrap Click here for notes and homework
January 27 2017 Start Internal Assessment Click here for notes and homework
January 25 2017 Exam Exam
January 23 2017 Revision for exam on Wednesday Click here for notes and homework
January 20 2017 Bootstrap, Managing releases and updates Click here for notes and homework
January 18 2017 IDE, Data loss Click here for notes and homework
January 16 2017 IDE, User training Click here for notes and homework
January 12 2017 IDE check in, User documentation Click here for notes and homework
January 10 2017 (A block) IDE check in, Change management Click here for notes and homework
January 9 2017 IDE & overview for the rest of the year Click here for notes and homework
December 13 2016 data structures & trees & binary trees Click here for notes and homework
December 9 2016 data structures & trees & binary trees Click here for notes and homework
December 7 2016 data structures & stacks & queues Click here for notes and homework
December 6 2016 data structures & linked list Click here for notes and homework
December 1 2016 system fundamentals - Intro to data structures Click here for notes and homework
November 28 2016 system fundamentals Click here for notes and homework
November 23 2016 system fundamentals Click here for notes and homework
November 21 2016 system fundamentals Click here for notes and homework
November 15 2016 system fundamentals Click here for notes and homework
November 10 2016 system fundamentals Click here for notes and homework
November 7 2016 system fundamentals Click here for notes and homework
November 4 2016 system fundamentals Click here for notes and homework
November 2 2016 Review and system fundamentals Click here for notes and homework
October 20 2016 Collections and arrays Click here for notes and homework
October 18 2016 Collections and arrays Click here for notes and homework
October 14 2016 Collections and arrays Click here for notes and homework
October 11 2016 Collections and arrays Click here for notes and homework
October 7 2016 Problem set Click here for notes and homework
October 5 2016 Nature of programming languages Click here for notes and homework
October 3 2016 Computational thinking Click here for notes and homework
September 26 2016 Computational thinking Click here for notes and homework
September 22 2016 Computational thinking Click here for notes and homework
September 19 2016 Computational thinking Click here for notes and homework
September 15 2016 Computational thinking Click here for notes and homework
September 13 2016 Computational thinking Click here for notes and homework
September 9 2016 CLI and Linux Click here for notes and homework
September 7 2016 Computer organization Click here for notes and homework
September 6 2016 Computer organization Click here for notes and homework
September 2 2016 Computer organization Click here for notes and homework
August 31 2016 Computer organization Click here for notes and homework
August 29 2016 Computer organization Click here for notes and homework
August 25 2016 Computer organization Click here for notes and homework
August 24 2016 Computer organization Click here for notes and homework
August 23 2016 Welcome Click here for notes and homework
Click for calendars Warning.png Help! My code isn't working!

Circle.png Helpful resources[edit]


About.png About this course[edit]

Classroom Rules[edit]

Standards[edit]

Grading, Assessment and Rubrics[edit]

Academic Honesty[edit]

Credit.png Credits[edit]

  • Icons used with tremendous gratitude by Freepik from flaticon
  • IB Diploma Program Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.