-
Notifications
You must be signed in to change notification settings - Fork 6
/
IB Computer Science Syllabus.html
1671 lines (1666 loc) · 86.4 KB
/
IB Computer Science Syllabus.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<!-- saved from url=(0081)file:///C:/Users/marco/Dropbox/Work/Documents/IB-CS/2014/IBDP_CS_SyllabusOOP.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>IB Computer Science Syllabus (2014)</title>
<style>
body {
font-family: sans-serif;
}
h3 {
text-align: center;
color: yellow;
}
#hamnav {
width: 100%;
background: #000;
/* Optional */
position: sticky;
top: 0;
}
/* Hide Hamburger */
#hamnav label, #hamburger {
display: none;
}
/* Horizontal Menu Items */
#hamitems {
display: flex;
}
#hamitems a {
width: 20%; /* 100% / 5 tabs = 20% */
padding: 10px;
color: lawngreen;
text-decoration: none;
text-align: center;
}
#hamitems a:hover {
background: #401408;
}
/* [ON SMALL SCREENS] */
@media screen and (max-width: 768px) {
/* Show Hamburger Icon */
#hamnav label {
display: inline-block;
color: white;
background: #a02620;
font-style: normal;
font-size: 1.2em;
padding: 10px;
}
/* Break down menu items into vertical */
#hamitems a {
box-sizing: border-box;
display: block;
width: 100%;
border-top: 1px solid #333;
}
/* Toggle Show/Hide Menu */
#hamitems {
display: none;
}
#hamnav input:checked ~ #hamitems {
display: block;
}
}
/* [DOES NOT MATTER] */
html, body {
padding: 0;
margin: 0;
font-family: arial, sans-serif;
}
</style>
</head>
<body>
<nav id="hamnav">
<!-- [THE HAMBURGER] -->
<label for="hamburger">☰</label>
<input type="checkbox" id="hamburger">
<!-- [MENU ITEMS] -->
<div id="hamitems"> <a href="file:///C:/Users/marco/Dropbox/Work/Documents/IB-CS/2014/IBDP_CS_SyllabusOOP.html#1">1 System fundamentals</a> <a href="file:///C:/Users/marco/Dropbox/Work/Documents/IB-CS/2014/IBDP_CS_SyllabusOOP.html#2">2 Computer organization</a> <a href="file:///C:/Users/marco/Dropbox/Work/Documents/IB-CS/2014/IBDP_CS_SyllabusOOP.html#3">3 Networks</a> <a href="file:///C:/Users/marco/Dropbox/Work/Documents/IB-CS/2014/IBDP_CS_SyllabusOOP.html#4" style="font-size: 12px">4 Computational thinking, problem-solving and programming</a> <a href="file:///C:/Users/marco/Dropbox/Work/Documents/IB-CS/2014/IBDP_CS_SyllabusOOP.html#5" style="color: lightskyblue">5 Abstract data structures HL</a> <a href="file:///C:/Users/marco/Dropbox/Work/Documents/IB-CS/2014/IBDP_CS_SyllabusOOP.html#6" style="color: lightskyblue">6 Resource management HL</a> <a href="file:///C:/Users/marco/Dropbox/Work/Documents/IB-CS/2014/IBDP_CS_SyllabusOOP.html#7" style="color: lightskyblue">7 Control HL</a> <a href="file:///C:/Users/marco/Dropbox/Work/Documents/IB-CS/2014/IBDP_CS_SyllabusOOP.html#D">OOP</a> <a href="file:///C:/Users/marco/Dropbox/Work/Documents/IB-CS/2014/IBDP_CS_SyllabusOOP.html#D-HL" style="color: lightskyblue">OOP HL</a> <a href="file:///C:/Users/marco/Dropbox/Work/Documents/IB-CS/2014/IBDP_CS_SyllabusOOP.html#legend" style="color: white">Legend</a> </div>
</nav>
<h1>IB Computer Science Syllabus (2014)</h1>
<h2>Syllabus content</h2>
<div>
<h3 style="background-color: darkgreen;">SL/HL core--80 hours</h3>
<p>The objective level associated with each command term (see objective column) indicates the depth of treatment for a given assessment statement.</p>
<ul>
<li><strong> Assessment objective 1 </strong> : classify, define, draw, label, list, state</li>
<li><strong> Assessment objective 2 </strong> : annotate, apply, calculate, describe, design, distinguish, estimate, identify, outline, present, trace</li>
<li><strong> Assessment objective 3 </strong> : 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</li>
</ul>
<p>Additional notes, which are included alongside some assessment statements, provide further guidance. In these, links to other topics are shown ( <strong> LINK </strong> ), and they may also suggest ideas for the promotion of specific subject aims ( <strong> AIM </strong> ), theory of knowledge ( <strong> TOK </strong> ), Middle Years Programme ( <strong> MYP </strong> ), social/ethical issues ( <strong> S/E </strong> ) and the international dimension ( <strong> INT </strong> ).</p>
<a name="1">
<p><strong> Topic 1--System fundamentals (20 hours) </strong> <span style="color: #F00"><em><strong>Grade 12</strong></em><strong></strong></span></p>
</a>
<p><strong> 1.1 Systems in organizations (10 hours) </strong></p>
<table border="1">
<tbody>
<tr>
<th> Topic number </th>
<th> <p><strong> Assessment statement </strong></p>
</th>
<th> <p><strong> Obj </strong></p>
</th>
<th> <p><strong> Additional notes </strong></p>
</th>
</tr>
<tr>
<td colspan="4"><p><strong> Planning and system installation </strong></p></td>
</tr>
<tr>
<td><p>1.1.1</p></td>
<td><p>Identify the context for which a new system is planned.</p></td>
<td><p>2</p></td>
<td><p>The extent and limitations of a new system should be appreciated.</p>
<p>Organizational issues related to the installation of new systems such as user roles, underlying technologies.</p></td>
</tr>
<tr>
<td><p>1.1.2</p></td>
<td><p>Describe the need for change management.</p></td>
<td><p>2</p></td>
<td><p>Students should understand there are a number of factors that need to be managed to ensure change is successful.</p>
<p><strong> S/E </strong> The way that change is managed can have significant effects on employers and employees.</p></td>
</tr>
<tr>
<td><p>1.1.3</p></td>
<td><p>Outline compatibility issues resulting from situations including legacy systems or business mergers.</p></td>
<td><p>2</p></td>
<td><p><strong> INT </strong> , <strong> S/E </strong> When organizations interact, particularly on an international basis, there may be issues of software compatibility and language differences.</p></td>
</tr>
<tr>
<td><p>1.1.4</p></td>
<td><p>Compare the implementation of systems using a client’s hardware with hosting systems remotely.</p></td>
<td><p>3</p></td>
<td><p>The benefits and drawbacks of SaaS (Software-as-a-Service) should be considered.</p>
<p><strong> S/E </strong> , <strong> INT </strong> , <strong> AIM 8 </strong> The remote host may be in a different time zone and this can have significant effects on end-users.</p></td>
</tr>
<tr>
<td><p>1.1.5</p></td>
<td><p>Evaluate alternative installation processes.</p></td>
<td><p>3</p></td>
<td><p>Students should be aware of the methods of implementation/conversion.</p>
<p>Parallel running, pilot running, direct changeover and phased conversion.</p>
<p><strong> S/E </strong> Training issues may require organizations to restructure their workforce.</p></td>
</tr>
<tr>
<td><p>1.1.6</p></td>
<td><p>Discuss problems that may arise as a part of data migration.</p></td>
<td><p>3</p></td>
<td><p><strong> INT </strong> These include incompatible file formats, data structures, validation rules, incomplete data transfer and international conventions on dates, currencies and character sets.</p></td>
</tr>
<tr>
<td><p>1.1.7</p></td>
<td><p>Suggest various types of testing.</p></td>
<td><p>3</p></td>
<td><p>The crucial importance of testing at all stages of implementation should be emphasized, with the stages clearly defined.</p>
<p>Types of testing can include: user acceptance testing, debugging, beta testing.</p>
<p>Students should be aware that there are programs that can test other programs, thereby automating parts of the testing process and reducing costs.</p>
<p><strong> S/E </strong> Inadequate testing can reduce employee productivity and lead to end-user dissatisfaction.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> User focus </strong></p></td>
</tr>
<tr>
<td><p>1.1.8</p></td>
<td><p>Describe the importance of user documentation.</p></td>
<td><p>2</p></td>
<td><p><strong> S/E </strong> The quality of user documentation can affect the rate of implementation of the new system.</p></td>
</tr>
<tr>
<td><p>1.1.9</p></td>
<td><p>Evaluate different methods of providing user documentation.</p></td>
<td><p>3</p></td>
<td><p>Examples should include methods such as: help files, online support and printed manuals.</p>
<p><strong> S/E </strong> The quality of user documentation can affect the rate of implementation of the new system.</p></td>
</tr>
<tr>
<td><p>1.1.10</p></td>
<td><p>Evaluate different methods of delivering user training.</p></td>
<td><p>3</p></td>
<td><p>Examples should include self-instruction, formal classes, remote/online training.</p>
<p><strong> S/E </strong> The quality of the delivery of user training can affect the rate of implementation of the new system.</p></td>
</tr>
<tr>
<td colspan="4" bgcolor="#FFFFFF"><p><strong> System backup </strong></p></td>
</tr>
<tr>
<td><p>1.1.11</p></td>
<td><p>Identify a range of causes of data loss.</p></td>
<td><p>2</p></td>
<td><p>Causes include malicious activities and natural disasters.</p>
<p><strong> S/E </strong> Malicious activity may be a result of activities by employees within the organization or intruders.</p></td>
</tr>
<tr>
<td><p>1.1.12</p></td>
<td><p>Outline the consequences of data loss in a specified situation.</p></td>
<td><p>2</p></td>
<td><p><strong> S/E </strong> Loss of medical records, cancellation of a hotel reservation without the knowledge of the traveller.</p></td>
</tr>
<tr>
<td><p>1.1.13</p></td>
<td><p>Describe a range of methods that can be used to prevent data loss.</p></td>
<td><p>2</p></td>
<td><p>These should include failover systems, redundancy, removable media, offsite/online storage.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Software deployment </strong></p></td>
</tr>
<tr>
<td><p>1.1.14</p></td>
<td><p>Describe strategies for managing releases and updates.</p></td>
<td><p>2</p></td>
<td><p>Students should be aware of a variety of ways in which updates and patches are made available and deployed. This includes automatic updates received on a regular basis online.</p>
<p><strong> S/E </strong> , <strong> INT </strong> Performance issues related to the inability to install updates may hinder end-users and reduce compatibility between systems in geographically diverse locations.</p></td>
</tr>
</tbody>
</table>
<p><strong> 1.2 System design basics (10 hours) </strong></p>
<table border="1">
<tbody>
<tr>
<th> Topic number </th>
<th> <p><strong> Assessment statement </strong></p>
</th>
<th> <p><strong> Obj </strong></p>
</th>
<th> <p><strong> Additional notes </strong></p>
</th>
</tr>
<tr>
<td colspan="4"><p><strong> Components of a computer system </strong></p></td>
</tr>
<tr>
<td><p>1.2.1</p></td>
<td><p>Define the terms: hardware, software, peripheral, network, human resources.</p></td>
<td><p>1</p></td>
</tr>
<tr>
<td><p>1.2.2</p></td>
<td><p>Describe the roles that a computer can take in a networked world.</p></td>
<td><p>2</p></td>
<td><p>Roles include client, server, email server, DNS server, router and firewall.</p></td>
</tr>
<tr>
<td><p>1.2.3</p></td>
<td><p>Discuss the social and ethical issues associated with a networked world.</p></td>
<td><p>3</p></td>
<td><p><strong> AIM 8 </strong> , <strong> AIM 9 </strong> Develop an appreciation of the social and ethical issues associated with continued developments in computer systems.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> System design and analysis </strong></p></td>
</tr>
<tr>
<td><p>1.2.4</p></td>
<td><p>Identify the relevant stakeholders when planning a new system.</p></td>
<td><p>2</p></td>
<td><p><strong> S/E </strong> The role of the end-user must be considered when planning a new system.</p>
<p>Who is a relevant stakeholder?</p>
<p><strong> TOK </strong> Utilitarianism, the greatest good for the greatest number. The means justify the ends.</p></td>
</tr>
<tr>
<td><p>1.2.5</p></td>
<td><p>Describe methods of obtaining requirements from stakeholders.</p></td>
<td><p>2</p></td>
<td><p>Including surveys, interviews, direct observations.</p>
<p><strong> AIM 5 </strong> The need for effective collaboration to obtain appropriate information from stakeholders.</p>
<p><strong> S/E </strong> The question of privacy for stakeholders.</p></td>
</tr>
<tr>
<td><p>1.2.6</p></td>
<td><p>Describe appropriate techniques for gathering the information needed to arrive at a workable solution.</p></td>
<td><p>2</p></td>
<td><p>Examining current systems, competing products, organizational capabilities, literature searches.</p>
<p><strong> S/E </strong> Intellectual property.</p></td>
</tr>
<tr>
<td><p>1.2.7</p></td>
<td><p>Construct suitable representations to illustrate system requirements.</p></td>
<td><p>3</p></td>
<td><p>Examples include: system flow charts, data flow diagrams, structure chart.</p>
<p>UML is not required.</p>
<p><strong> LINK </strong> Flow chart symbols, flow charts and pseudocode.</p></td>
</tr>
<tr>
<td><p>1.2.8</p></td>
<td><p>Describe the purpose of prototypes to demonstrate the proposed system to the client.</p></td>
<td><p>2</p></td>
<td><p><strong> AIM 5 </strong> The need to effectively collaborate to gather appropriate information to resolve complex problems.</p>
<p><strong> AIM 6 </strong> To develop logical and critical thinking to develop proposed systems.</p></td>
</tr>
<tr>
<td><p>1.2.9</p></td>
<td><p>Discuss the importance of iteration during the design process.</p></td>
<td><p>3</p></td>
<td><p><strong> MYP </strong> Design cycle.</p></td>
</tr>
<tr>
<td><p>1.2.10</p></td>
<td><p>Explain the possible consequences of failing to involve the end-user in the design process.</p></td>
<td><p>3</p></td>
<td><p><strong> S/E </strong> The failure to involve the end-user may lead to software that is not suitable for its intended use, which may have adverse effects on user productivity.</p>
<p><strong> AIM 5 </strong> The need for effective collaboration and communication between the client, developer and end-user.</p></td>
</tr>
<tr>
<td><p>1.2.11</p></td>
<td><p>Discuss the social and ethical issues associated with the introduction of new IT systems.</p></td>
<td><p>3</p></td>
<td><p><strong> AIM 8 </strong> , <strong> AIM 9 </strong> Develop an appreciation of the social and ethical issues associated with continued developments in specified computer systems.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Human interaction with the system </strong></p></td>
</tr>
<tr>
<td><p>1.2.12</p></td>
<td><p>Define the term usability.</p></td>
<td><p>1</p></td>
<td><p><strong> S/E </strong> This includes ergonomics and accessibility.</p></td>
</tr>
<tr>
<td><p>1.2.13</p></td>
<td><p>Identify a range of usability problems with commonly used digital devices.</p></td>
<td><p>2</p></td>
<td><p><strong> S/E </strong> Students should be aware of usability issues in a range of devices including PCs, digital cameras, cell phones, games consoles, MP3 players and other commonly used digital devices.</p></td>
</tr>
<tr>
<td><p>1.2.14</p></td>
<td><p>Identify methods that can be used to improve the accessibility of systems.</p></td>
<td><p>2</p></td>
<td><p><strong> S/E </strong> Examples include touch screen, voice recognition, text-to-speech, Braille keyboard.</p></td>
</tr>
<tr>
<td><p>1.2.15</p></td>
<td><p>Identify a range of usability problems that can occur in a system.</p></td>
<td><p>2</p></td>
<td><p><strong> S/E </strong> These should be related to the systems.</p>
<p>Systems include ticketing, online payroll, scheduling, voice recognition, systems that provide feedback.</p></td>
</tr>
<tr>
<td><p>1.2.16</p></td>
<td><p>Discuss the moral, ethical, social, economic and environmental implications of the interaction between humans and machines.</p></td>
<td><p>3</p></td>
<td><p><strong> AIM 8 </strong> Raise awareness of the moral, ethical, social, economic and environmental implications of using science and technology.</p></td>
</tr>
</tbody>
</table>
<a name="2">
<p><strong> Topic 2--Computer organization (6 hours) </strong></p>
</a>
<p><strong> 2.1 Computer organization (6 hours) </strong></p>
<table border="1">
<tbody>
<tr>
<th> Topic number </th>
<th> <p><strong> Assessment statement </strong></p>
</th>
<th> <p><strong> Obj </strong></p>
</th>
<th> <p><strong> Additional notes </strong></p>
</th>
</tr>
<tr>
<td colspan="4"><p><strong> Computer architecture </strong></p></td>
</tr>
<tr>
<td><p>2.1.1</p></td>
<td><p>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.</p></td>
<td><p>2</p></td>
<td><p>Students should be able to reproduce a block diagram showing the relationship between the elements of the CPU, input and output and storage. The memory address register (MAR) and memory data register (MDR) are the only ones that need to be included.</p></td>
</tr>
<tr>
<td><p>2.1.2</p></td>
<td><p>Describe primary memory.</p></td>
<td><p>2</p></td>
<td><p>Distinguish between random access memory (RAM) and read-only memory (ROM), and their use in primary memory.</p></td>
</tr>
<tr>
<td><p>2.1.3</p></td>
<td><p>Explain the use of cache memory.</p></td>
<td><p>3</p></td>
<td><p>Students should be able to explain the effect of cache memory in speeding up the system as well as being able to explain how it is used.</p></td>
</tr>
<tr>
<td><p>2.1.4</p></td>
<td><p>Explain the machine instruction cycle.</p></td>
<td><p>3</p></td>
<td><p>This should include the role of data bus and address bus.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Secondary memory </strong></p></td>
</tr>
<tr>
<td><p>2.1.5</p></td>
<td><p>Identify the need for persistent storage.</p></td>
<td><p>2</p></td>
<td><p>Persistent storage is needed to store data in a non-volatile device during and after the running of a program.</p>
<p><strong> LINK </strong> Consequences of data loss.</p>
<p><strong> TOK </strong> If there are no consequences of data loss, why is it stored.</p>
<p><strong> TOK </strong> There is no such thing as persistent storage.</p>
<p><strong> AIM 9 </strong> An appreciation of the issues related to both the ever increasing amount of data and a need to retain it.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Operating systems and application systems </strong></p></td>
</tr>
<tr>
<td><p>2.1.6</p></td>
<td><p>Describe the main functions of an operating system.</p></td>
<td><p>2</p></td>
<td><p>This is confined to a single-user operating system. Technical details are not needed. For example, memory management should be described but how this is handled in a multitasking environment is not expected.</p></td>
</tr>
<tr>
<td><p>2.1.7</p></td>
<td><p>Outline the use of a range of application software.</p></td>
<td><p>2</p></td>
<td><p>Application software should include word processors, spreadsheets, database management systems, email, web browsers, computer-aided design (CAD) and graphic processing software.</p></td>
</tr>
<tr>
<td><p>2.1.8</p></td>
<td><p>Identify common features of applications.</p></td>
<td><p>2</p></td>
<td><p>Including toolbars, menus, dialogue boxes, graphical user interface (GUI) components.</p>
<p>Students should understand that some features are provided by the application software and some by the operating system.</p>
<p><strong> S/E </strong> This improves usability for a wide range of users.</p>
<p><strong> AIM 9 </strong> An appreciation of the improvements associated with developments in application software.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Binary representation </strong></p></td>
</tr>
<tr>
<td><p>2.1.9</p></td>
<td><p>Define the terms: bit, byte, binary, denary/decimal, hexadecimal.</p></td>
<td><p>1</p></td>
</tr>
<tr>
<td><p>2.1.10</p></td>
<td><p>Outline the way in which data is represented in the computer.</p></td>
<td><p>2</p></td>
<td><p>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.</p>
<p><strong> TOK </strong> , <strong> INT </strong> Does binary represent an example of a lingua franca?</p>
<p><strong> S/E </strong> , <strong> INT </strong> Comparing the number of characters needed in the Latin alphabet with those in Arabic and Asian languages to understand the need for Unicode.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Simple logic gates </strong></p></td>
</tr>
<tr>
<td><p>2.1.11</p></td>
<td><p>Define the Boolean operators: AND, OR, NOT, NAND, NOR and XOR.</p></td>
<td><p>1</p></td>
<td><p><strong> LINK </strong> Introduction to programming, approved notation sheet.</p></td>
</tr>
<tr>
<td><p>2.1.12</p></td>
<td><p>Construct truth tables using the above operators.</p></td>
<td><p>3</p></td>
<td><p>For example, Maria won’t go to school if it is cold and raining or she has not done her homework.</p>
<p>Not more than three inputs are used.</p>
<p><strong> LINK </strong> Thinking logically.</p>
<p><strong> TOK </strong> Reason as a way of knowing.</p></td>
</tr>
<tr>
<td><p>2.1.13</p></td>
<td><p>Construct a logic diagram using AND, OR, NOT, NAND, NOR and XOR gates.</p></td>
<td><p>3</p></td>
<td><p>Problems will be limited to an output dependent on no more than three inputs.</p>
<p>The gate should be written as a circle with the name of the gate inside it.</p>
<p><strong> LINK </strong> Thinking logically, connecting computational thinking and program design, introduction to programming.</p></td>
</tr>
</tbody>
</table>
<a name="3">
<p><strong> Topic 3--Networks (9 hours) </strong></p>
</a>
<p><strong> 3.1 Networks (9 hours) </strong></p>
<table border="1">
<tbody>
<tr>
<th> Topic number </th>
<th> <p><strong> Assessment statement </strong></p>
</th>
<th> <p><strong> Obj </strong></p>
</th>
<th> <p><strong> Additional notes </strong></p>
</th>
</tr>
<tr>
<td colspan="4"><p><strong> Network fundamentals </strong></p></td>
</tr>
<tr>
<td><p>3.1.1</p></td>
<td><p>Identify different types of networks.</p></td>
<td><p>2</p></td>
<td><p>Examples include local area network (LAN), virtual local area network (VLAN), wide area network (WAN), storage area network (SAN), wireless local area network (WLAN), internet, extranet, virtual private network (VPN), personal area network (PAN), peer-to-peer (P2P).</p>
<p><strong> S/E </strong> , <strong> INT </strong> Globalization has been accelerated by the technical advances linked to network development.</p></td>
</tr>
<tr>
<td><p>3.1.2</p></td>
<td><p>Outline the importance of standards in the construction of networks.</p></td>
<td><p>2</p></td>
<td><p><strong> INT </strong> Standards enable compatibility through a common “language” internationally.</p></td>
</tr>
<tr>
<td><p>3.1.3</p></td>
<td><p>Describe how communication over networks is broken down into different layers.</p></td>
<td><p>2</p></td>
<td><p>Awareness of the OSI seven layer model is required, but an understanding of the functioning of each layer is not.</p></td>
</tr>
<tr>
<td><p>3.1.4</p></td>
<td><p>Identify the technologies required to provide a VPN.</p></td>
<td><p>2</p></td>
</tr>
<tr>
<td><p>3.1.5</p></td>
<td><p>Evaluate the use of a VPN.</p></td>
<td><p>3</p></td>
<td><p><strong> S/E </strong> , <strong> AIM 9 </strong> The use of a VPN has led to changes in working patterns.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Data transmission </strong></p></td>
</tr>
<tr>
<td><p>3.1.6</p></td>
<td><p>Define the terms: protocol, data packet.</p></td>
<td><p>1</p></td>
</tr>
<tr>
<td><p>3.1.7</p></td>
<td><p>Explain why protocols are necessary.</p></td>
<td><p>3</p></td>
<td><p>Including data integrity, flow control, deadlock, congestion, error checking.</p></td>
</tr>
<tr>
<td><p>3.1.8</p></td>
<td><p>Explain why the speed of data transmission across a network can vary.</p></td>
<td><p>3</p></td>
</tr>
<tr>
<td><p>3.1.9</p></td>
<td><p>Explain why compression of data is often necessary when transmitting across a network.</p></td>
<td><p>3</p></td>
<td><p><strong> S/E </strong> , <strong> INT </strong> Compression has enabled information to be disseminated more rapidly.</p></td>
</tr>
<tr>
<td><p>3.1.10</p></td>
<td><p>Outline the characteristics of different transmission media.</p></td>
<td><p>2</p></td>
<td><p>Characteristics include: speed, reliability, cost and security.</p>
<p>Transmission media include: metal conductor, fibre optic, wireless.</p></td>
</tr>
<tr>
<td><p>3.1.11</p></td>
<td><p>Explain how data is transmitted by packet switching.</p></td>
<td><p>3</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Wireless networking </strong></p></td>
</tr>
<tr>
<td><p>3.1.12</p></td>
<td><p>Outline the advantages and disadvantages of wireless networks.</p></td>
<td><p>2</p></td>
<td><p><strong> S/E </strong> Wireless networks have led to changes in working patterns, social activities and raised health issues.</p></td>
</tr>
<tr>
<td><p>3.1.13</p></td>
<td><p>Describe the hardware and software components of a wireless network.</p></td>
<td><p>2</p></td>
</tr>
<tr>
<td><p>3.1.14</p></td>
<td><p>Describe the characteristics of wireless networks.</p></td>
<td><p>2</p></td>
<td><p>Include: WiFi; Worldwide Interoperability for Microwave Access (WiMAX); 3G mobile; future networks.</p>
<p><strong> S/E </strong> , <strong> INT </strong> Connectivity between different locations.</p></td>
</tr>
<tr>
<td><p>3.1.15</p></td>
<td><p>Describe the different methods of network security.</p></td>
<td><p>2</p></td>
<td><p>Include encryption types, userID, trusted media access control (MAC) addresses.</p>
<p><strong> S/E </strong> Wireless networks have led to concerns about the security of the user’s data.</p></td>
</tr>
<tr>
<td><p>3.1.16</p></td>
<td><p>Evaluate the advantages and disadvantages of each method of network security.</p></td>
<td><p>3</p></td>
</tr>
</tbody>
</table>
<a name="4">
<p><strong> Topic 4--Computational thinking, problem-solving and programming (45 hours) </strong></p>
</a>
<p><strong> 4.1 General principles (10 hours) </strong></p>
<p>This should not be taught as a separate topic but must be incorporated and connected to all sections--especially flow charts, pseudocode and programming in the SL/HL core and abstract data structures (HL extension). It is essential that these elements are not addressed in isolation--they have to be approached as a whole.</p>
<p>The basic ideas and their application should be illustrated with non-computer examples. Each basic idea should then be practised in specific algorithmic contexts using concepts drawn from flow charts, pseudocode and programming. The teacher support material illustrates examples such as the home/locker/knapsack for thinking ahead.</p>
<table border="1">
<tbody>
<tr>
<th> Topic number </th>
<th> <p><strong> Assessment statement </strong></p>
</th>
<th> <p><strong> Obj </strong></p>
</th>
<th> <p><strong> Additional notes </strong></p>
</th>
</tr>
<tr>
<td colspan="4"><p><strong> Thinking procedurally </strong></p></td>
</tr>
<tr>
<td><p>4.1.1</p></td>
<td><p>Identify the procedure appropriate to solving a problem.</p></td>
<td><p>2</p></td>
<td><p>This includes identifying the steps and putting them in the correct order. Such as recipes, block-arrow-block-arrow.</p>
<p><strong> LINK </strong> Connecting computational thinking and program design, introduction to programming.</p></td>
</tr>
<tr>
<td><p>4.1.2</p></td>
<td><p>Evaluate whether the order in which activities are undertaken will result in the required outcome.</p></td>
<td><p>3</p></td>
<td><p>Links to problems presented to the student in other areas of the syllabus.</p>
<p><strong> LINK </strong> Thinking ahead, thinking concurrently. Connecting computational thinking and program design, introduction to programming.</p>
<p><strong> MYP </strong> Technology, step-by-step instructions.</p></td>
</tr>
<tr>
<td><p>4.1.3</p></td>
<td><p>Explain the role of sub-procedures in solving a problem.</p></td>
<td><p>3</p></td>
<td><p>Constructing procedures that can then be referred to by their identifier.</p>
<p><strong> LINK </strong> Abstraction, connecting computational thinking and program design, introduction to programming.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Thinking logically </strong></p></td>
</tr>
<tr>
<td><p>4.1.4</p></td>
<td><p>Identify when decision-making is required in a specified situation.</p></td>
<td><p>2</p></td>
<td><p>Links to procedural thinking--alternative procedures.</p>
<p><strong> TOK </strong> Reasoning as a form of decision-making.</p>
<p><strong> LINK </strong> Connecting computational thinking and program design, introduction to programming.</p></td>
</tr>
<tr>
<td><p>4.1.5</p></td>
<td><p>Identify the decisions required for the solution to a specified problem.</p></td>
<td><p>2</p></td>
<td><p>Different actions are taken based on conditions.</p>
<p><strong> LINK </strong> Connecting computational thinking and program design, introduction to programming.</p>
<p><strong> AIM 4 </strong> Applying thinking skills to identify and resolve a specified complex problem.</p></td>
</tr>
<tr>
<td><p>4.1.6</p></td>
<td><p>Identify the condition associated with a given decision in a specified problem.</p></td>
<td><p>2</p></td>
<td><p>Testing conditions, iteration. Identifying and constructing the conditions--AND, OR, NOT relationships--Boolean tests.</p>
<p><strong> LINK </strong> Connecting computational thinking and program design, introduction to programming.</p></td>
</tr>
<tr>
<td><p>4.1.7</p></td>
<td><p>Explain the relationship between the decisions and conditions of a system.</p></td>
<td><p>3</p></td>
<td><p>IF … THEN … ELSE</p>
<p><strong> LINK </strong> Connecting computational thinking and program design, introduction to programming.</p></td>
</tr>
<tr>
<td><p>4.1.8</p></td>
<td><p>Deduce logical rules for real-world situations.</p></td>
<td><p>3</p></td>
<td><p><strong> LINK </strong> Connecting computational thinking and program design, introduction to programming.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Thinking ahead </strong></p></td>
</tr>
<tr>
<td><p>4.1.9</p></td>
<td><p>Identify the inputs and outputs required in a solution.</p></td>
<td><p>2</p></td>
</tr>
<tr>
<td><p>4.1.10</p></td>
<td><p>Identify pre-planning in a suggested problem and solution.</p></td>
<td><p>2</p></td>
<td><p>Gantt charts.</p>
<p>Pre-ordering. Pre-heating an oven. Home/locker/knapsack.</p>
<p>Caching/pre-fetching. Building libraries of pre-formed elements for future use.</p>
<p><strong> LINK </strong> Thinking procedurally, thinking concurrently. Connecting computational thinking and program design, introduction to programming.</p></td>
</tr>
<tr>
<td><p>4.1.11</p></td>
<td><p>Explain the need for pre-conditions when executing an algorithm.</p></td>
<td><p>3</p></td>
</tr>
<tr>
<td><p>4.1.12</p></td>
<td><p>Outline the pre- and post-conditions to a specified problem.</p></td>
<td><p>2</p></td>
<td><p>For example, cooking a dish for a meal.</p>
<p>All ingredients available before starting to cook.</p>
<p>A place to eat the food.</p></td>
</tr>
<tr>
<td><p>4.1.13</p></td>
<td><p>Identify exceptions that need to be considered in a specified problem solution.</p></td>
<td><p>2</p></td>
<td><p>For example, identify the pre-conditions for calculating the end-of-year bonus when not all employees have worked for the company for the whole year.</p>
<p><strong> LINK </strong> Connecting computational thinking and program design, introduction to programming.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Thinking concurrently </strong></p></td>
</tr>
<tr>
<td><p>4.1.14</p></td>
<td><p>Identify the parts of a solution that could be implemented concurrently.</p></td>
<td><p>2</p></td>
<td><p>Could include computer systems or real-life situations.</p>
<p><strong> LINK </strong> Thinking ahead, thinking procedurally. Connecting computational thinking and program design, introduction to programming.</p></td>
</tr>
<tr>
<td><p>4.1.15</p></td>
<td><p>Describe how concurrent processing can be used to solve a problem.</p></td>
<td><p>2</p></td>
<td><p>For example, building a house, production lines, division of labour.</p>
<p>Students will not be expected to construct a flow chart or pseudocode related to concurrent processing.</p></td>
</tr>
<tr>
<td><p>4.1.16</p></td>
<td><p>Evaluate the decision to use concurrent processing in solving a problem.</p></td>
<td><p>3</p></td>
<td><p><strong> LINK </strong> Thinking ahead, thinking procedurally. Connecting computational thinking and program design, introduction to programming.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Thinking abstractly </strong></p></td>
</tr>
<tr>
<td><p>4.1.17</p></td>
<td><p>Identify examples of abstraction.</p></td>
<td><p>2</p></td>
<td><p>Selecting the pieces of information that are relevant to solving the problem.</p>
<p><strong> LINK </strong> Thinking ahead.</p></td>
</tr>
<tr>
<td><p>4.1.18</p></td>
<td><p>Explain why abstraction is required in the derivation of computational solutions for a specified situation.</p></td>
<td><p>3</p></td>
<td><p>Students should be aware of the concept of objects, for example, the use of collections as objects in the design of algorithms.</p>
<p><strong> LINK </strong></p>
<ul>
<li>Databases: tables, queries</li>
<li>Modelling and simulation: an abstraction of reality</li>
<li><strong>OOP: classes, sub-classes</strong></li>
<li>Web science: distributed applications</li>
</ul></td>
</tr>
<tr>
<td><p>4.1.19</p></td>
<td><p>Construct an abstraction from a specified situation.</p></td>
<td><p>3</p></td>
<td><p>There is no need to use code.</p>
<p>Levels of abstraction through successive decomposition.</p>
<p>A school can be decomposed into faculties. A faculty can be decomposed into departments.</p>
<p><strong> LINK </strong> Thinking ahead, thinking procedurally. Connecting computational thinking and program design, introduction to programming.</p></td>
</tr>
<tr>
<td><p>4.1.20</p></td>
<td><p>Distinguish between a real-world entity and its abstraction.</p></td>
<td><p>2</p></td>
<td><p><strong> TOK </strong> The map as an abstraction of the territory.</p></td>
</tr>
</tbody>
</table>
<p><strong> 4.2 Connecting computational thinking and program design (22 hours) </strong></p>
<p>The focus of this topic is how an understanding of programming languages enhances the students’ understanding of computational thinking and provides them with opportunities for practical, hands-on experience of applying computational thinking to practical outcomes.</p>
<p>In externally assessed components questions will be presented using flow charts and/or pseudocode as outlined in the approved notation sheet. Answers will only be required in pseudocode.</p>
<p>Students must be given the opportunity to convert algorithms into working code that is executed and tested.</p>
<p>Working code will not be assessed in the externally assessed components.</p>
<table border="1">
<tbody>
<tr>
<th> Topic number </th>
<th> <p><strong> Assessment statement </strong></p>
</th>
<th> <p><strong> Obj </strong></p>
</th>
<th> <p><strong> Additional notes </strong></p>
</th>
</tr>
<tr>
<td><p>4.2.1</p></td>
<td><p>Describe the characteristics of standard algorithms on linear arrays.</p></td>
<td><p>2</p></td>
<td><p>These are: sequential search, binary search, bubble sort, selection sort.</p></td>
</tr>
<tr>
<td><p>4.2.2</p></td>
<td><p>Outline the standard operations of collections.</p></td>
<td><p>2</p></td>
<td><p>These are: addition and retrieval of data.</p></td>
</tr>
<tr>
<td><p>4.2.3</p></td>
<td><p>Discuss an algorithm to solve a specific problem.</p></td>
<td><p>3</p></td>
<td><p>Students should be expected to discuss the differences between algorithms, including both standard and novel algorithms. For example, discussing the advantages and disadvantages of using a binary search as opposed to a sequential search.</p></td>
</tr>
<tr>
<td><p>4.2.4</p></td>
<td><p>Analyse an algorithm presented as a flow chart.</p></td>
<td><p>3</p></td>
<td><p>Examination questions may involve variables, calculations, simple and nested loops, simple conditionals and multiple or nested conditionals.</p>
<p>This would include tracing an algorithm as well as assessing its correctness.</p>
<p>Students will not be expected to construct a flow chart to represent an algorithm in an externally assessed component.</p>
<p><strong> MYP </strong> Mathematics: using flow charts to solve problems in real-life contexts, patterns and sequences, logic, algorithms.</p>
<p><strong> MYP </strong> Technology: design cycle (inputs, processes, outputs, feedback, iteration).</p></td>
</tr>
<tr>
<td><p>4.2.5</p></td>
<td><p>Analyse an algorithm presented as pseudocode.</p></td>
<td><p>3</p></td>
<td><p>Examination questions may involve variables, calculations, simple and nested loops, simple conditionals and multiple or nested conditionals.</p>
<p>This would include tracing an algorithm as well as assessing its correctness.</p>
<p><strong> MYP </strong> Mathematics: using flow charts to solve problems in real-life contexts, patterns and sequences, logic, algorithms.</p>
<p><strong> MYP </strong> Technology: design cycle (inputs, processes, outputs, feedback, iteration).</p></td>
</tr>
<tr>
<td><p>4.2.6</p></td>
<td><p>Construct pseudocode to represent an algorithm.</p></td>
<td><p>3</p></td>
<td><p><strong> MYP </strong> Mathematics: using flow charts to solve problems in real-life contexts, patterns and sequences, logic, algorithms.</p>
<p><strong> MYP </strong> Technology: design cycle (inputs, processes, outputs, feedback, iteration).</p>
<p><strong> AIM 4 </strong> Demonstrate thinking skills to represent a possible solution to a specified complex problem.</p></td>
</tr>
<tr>
<td><p>4.2.7</p></td>
<td><p>Suggest suitable algorithms to solve a specific problem.</p></td>
<td><p>3</p></td>
<td><p>Suitable algorithms may include both standard algorithms and novel algorithms. Suitable may include considerations of efficiency, correctness, reliability and flexibility. Students are expected to suggest algorithms that will actually solve the problem successfully.</p>
<p><strong> LINK </strong> General principles of computational thinking, introduction to programming.</p></td>
</tr>
<tr>
<td><p>4.2.8</p></td>
<td><p>Deduce the efficiency of an algorithm in the context of its use.</p></td>
<td><p>3</p></td>
<td><p>Students should understand and explain the difference in efficiency between a single loop, nested loops, a loop that ends when a condition is met or questions of similar complexity.</p>
<p>Students should also be able to suggest changes in an algorithm that would improve efficiency, for example, using a flag to stop a search immediately when an item is found, rather than continuing the search through the entire list.</p></td>
</tr>
<tr>
<td><p>4.2.9</p></td>
<td><p>Determine the number of times a step in an algorithm will be performed for given input data.</p></td>
<td><p>3</p></td>
<td><p>Examination questions will involve specific algorithms (in pseudocode/flow charts), and students may be expected to give an actual number (or range of numbers) of iterations that a step will execute.</p></td>
</tr>
</tbody>
</table>
<p><strong> 4.3 introduction to programming (13 hours) </strong></p>
<table border="1">
<tbody>
<tr>
<th> Topic number </th>
<th> <p><strong> Assessment statement </strong></p>
</th>
<th> <p><strong> Obj </strong></p>
</th>
<th> <p><strong> Additional notes </strong></p>
</th>
</tr>
<tr>
<td colspan="4"><p><strong> Nature of programming languages </strong></p></td>
</tr>
<tr>
<td><p>4.3.1</p></td>
<td><p>State the fundamental operations of a computer.</p></td>
<td><p>1</p></td>
<td><p>These include: add, compare, retrieve and store data.</p>
<p>Complex capabilities are composed of very large numbers of very simple operations.</p></td>
</tr>
<tr>
<td><p>4.3.2</p></td>
<td><p>Distinguish between fundamental and compound operations of a computer.</p></td>
<td><p>2</p></td>
<td><p>For example, “find the largest” is a compound operation.</p></td>
</tr>
<tr>
<td><p>4.3.3</p></td>
<td><p>Explain the essential features of a computer language.</p></td>
<td><p>3</p></td>
<td><p>For example, fixed vocabulary, unambiguous meaning, consistent grammar and syntax.</p>
<p><strong> TOK </strong> Language and meaning.</p></td>
</tr>
<tr>
<td><p>4.3.4</p></td>
<td><p>Explain the need for higher level languages.</p></td>
<td><p>3</p></td>
<td><p>For example, as the human needs for computer systems have expanded it is necessary to abstract from the basic operations of the computer. It would take far too long to write the type of systems needed today in machine code.</p></td>
</tr>
<tr>
<td><p>4.3.5</p></td>
<td><p>Outline the need for a translation process from a higher level language to machine executable code.</p></td>
<td><p>2</p></td>
<td><p>For example, compiler, interpreter, virtual machine.</p></td>
</tr>
<tr>
<td colspan="4"><p><strong> Use of programming languages </strong></p>
<p>Sub-programmes and objects support abstraction, which facilitates: ease of debugging and maintenance, reuse of code, modularity.</p>
<p>There is no programming language specified in the SL/HL core. However, students must use a language that supports the basic constructs on the approved notation sheet.</p></td>
</tr>
<tr>
<td><p>4.3.6</p></td>
<td><p>Define the terms: variable, constant, operator, object.</p></td>
<td><p>1</p></td>
</tr>
<tr>
<td><p>4.3.7</p></td>
<td><p>Define the operators =, ?, <, <=, >, >=, mod, div.</p></td>
<td><p>1</p></td>
<td><p><strong> LINK </strong> Approved notation sheet.</p></td>
</tr>
<tr>
<td><p>4.3.8</p></td>
<td><p>Analyse the use of variables, constants and operators in algorithms.</p></td>
<td><p>3</p></td>
<td><p>For example, identify and justify the use of a constant as opposed to a variable in a given situation.</p>
<p><strong> MYP </strong> Mathematics: forms of numbers, algebra--patterns and sequences, logic, algorithms.</p></td>
</tr>
<tr>
<td><p>4.3.9</p></td>
<td><p>Construct algorithms using loops, branching.</p></td>
<td><p>3</p></td>
<td><p>Teachers must ensure algorithms use the symbols from the approved notation sheet.</p>
<p><strong> LINK </strong> Approved notation sheet.</p>
<p><strong> MYP </strong> Mathematics: using flow charts to solve problems in real-life contexts, logic, algorithms</p>
<p><strong> MYP </strong> Technology: design cycle (inputs, processes, outputs, feedback, iteration).</p>
<p><strong> LINK </strong> Connecting computational thinking and program design.</p></td>
</tr>
<tr>
<td><p>4.3.10</p></td>
<td><p>Describe the characteristics and applications of a collection.</p></td>
<td><p>2</p></td>
<td><p>Characteristics:</p>
<ul>
<li>Contains similar elements.</li>
</ul>
<p><strong> LINK </strong> HL extension, recursive thinking.</p>
<p><strong> LINK </strong> General principles of computational thinking, connecting computational thinking and program design.</p></td>
</tr>
<tr>
<td><p>4.3.11</p></td>
<td><p>Construct algorithms using the access methods of a collection.</p></td>
<td><p>3</p></td>
<td><p><strong> LINK </strong> Connecting computational thinking and program design.</p></td>
</tr>
<tr>
<td><p>4.3.12</p></td>
<td><p>Discuss the need for sub-programmes and collections within programmed solutions.</p></td>
<td><p>3</p></td>
<td><p>Show an understanding of the usefulness of reusable code and program organization for the individual programmer, team members and future maintenance.</p>
<p><strong> LINK </strong> General principles of computational thinking, connecting computational thinking and program design.</p>
<p><strong> MYP </strong> Technology: use of software such as Alice.</p></td>
</tr>
<tr>
<td><p>4.3.13</p></td>
<td><p>Construct algorithms using pre-defined sub-programmes, one-dimensional arrays and/or collections.</p></td>
<td><p>3</p></td>
<td><p><strong> MYP </strong> Mathematics: using flow charts to solve problems in real-life contexts, logic, algorithms.</p>
<p><strong> MYP </strong> Technology: design cycle (inputs, processes, outputs, feedback, iteration); use of software such as Alice.</p>
<p>Students will only be required to analyse flow charts in the externally assessed components.</p>
<p>Students will be expected to write and analyse pseudocode in the externally assessed components.</p>
<p><strong> S/E </strong> , <strong> AIM 8 </strong> Appreciate the implications of using available code from sources such as online forums.</p>
<p><strong> LINK </strong> Connecting computational thinking and program design.</p></td>
</tr>
</tbody>
</table>
<div>
<h3 style="background-color: blue;">HL extension (45 hours)</h3>
<a name="5">
<p><strong> Topic 5-- </strong> <strong> Abstract data structures (23 hours) </strong></p>
</a>
<p><strong> 5.1 Abstract data structures (23 hours) </strong></p>
<p>This will be examined at the level of diagrams and pseudocode.</p>
<p>Students should be able to describe the most common data structures (arrays, stacks, queues, linked lists, binary trees) and the most common data processing operations on each of the basic data structures (addition, deletion and retrieval of data, traversal, searching for a given data, sorting of data into some order).</p>
<p>This should be taught and connected to flow charts, pseudocode and programming in the SL/HL core.</p>
<p>The basic ideas and their application should be illustrated with non-computer examples. Each basic idea should then be practised in specific algorithmic contexts using concepts drawn from flow charts, pseudocode and programming.</p>
<table border="1">
<tbody>
<tr>
<th> Topic number </th>
<th> <p><strong> Assessment statement </strong></p>
</th>
<th> <p><strong> Obj </strong></p>
</th>
<th> <p><strong> Additional notes </strong></p>
</th>
</tr>
<tr>
<td colspan="4"><p><strong> Thinking recursively </strong></p></td>
</tr>
<tr>
<td><p>5.1.1</p></td>
<td><p>Identify a situation that requires the use of recursive thinking.</p></td>
<td><p>2</p></td>
<td><p>Suggested practical activity: snowflakes and fractals, towers of Hanoi.</p></td>