IB Computer Science (SL+HL) - Two-Year Instruction Plan
Dave Mulkey, Frankfurt International School, Jan 2007

====== Student Concerns ======   Student Concerns     Teaching Plan     Syllabus     Vocabulary

Aims and Objectives

The aims and objectives of computer courses are to enable students to: 

  • understand the principles and nature of computers
  • understand the use of computers in a variety of disciplines, applications and contexts
  • use effective methods to analyze problems and plan computer-based solutions
  • assess the effectiveness of computer-based solutions
  • identify appropriate uses of standard computer tools
  • develop skills required for using standard computer tools
  • use technical vocabulary to discuss computer tools
  • use appropriate vocabulary to explain functions of computer systems
  • recall technical facts and details of computer tools
  • develop awareness of common errors, problems, and limitations of with computers
  • understand and discuss ethical issues connected with computer tools
  • appreciate technical and social consequences of rapid developments in technology
  • acquire skills and understanding which can be transferred to future problems


Students will be assessed on their ability to:                    

  1. Demonstrate an understanding of terminology, concepts, processes, structures, techniques, principles, systems and consequences (social significance and implications) of computing (in daily work)

  2. Apply and use terminology, concepts, processes, structures, techniques, principles and systems of computing to construct computerized solutions to problems (in practical projects)

  3. Analyse, discuss and evaluate terminology, concepts, processes, structures, techniques, principles, systems and social consequences (in written tests)


  • Appropriate behavior – Students should be polite and cooperative at all times, and  avoid behavior which might damage equipment or prevent other students from learning.
  • Regular attendance  - Much of the instruction and work in computer classes can only be done with the equipment available in the computer labs, so frequent absences are a serious obstacle to success and progress in computer courses.
  • Meeting Deadlines – Students must meet assigned deadlines for homework and practical work – assignments may only be accepted late as a result of excused absence.  Students who have not finished an assignment on time must submit an unfinished version – deadlines will not be extended, and late work will not be accepted.  Assignments will never be accepted a second time for "remarking".
  • Self-reliance – Students are expected to learn as much as they can each day, and to make steady progress during each term.  They should arrive in class on time and properly prepared, with all necessary materials. They are expected to pay close attention to the teacher's instruction and explanations, and to ask questions when they don't understand something.  When assigned a task during class, they are expected to concentrate on that task without constant monitoring and encouragement from the teacher. 

======  Teaching Plan  ======   Student Concerns     Teaching Plan     Syllabus     Vocabulary

Term 1 - Java Basics (numbers, Strings, If.., Loops), Arrays, Binary numbers, Input and Output Devices  [T1] [T2] [T3] [T4] [T5] [T6] [Syl] [Voc]  



HL Extras


Java Intro - int, double, calculations, I/O

Syntax, Compiler


 algorithm , and , array, Byte, bar-code reader, base, bit, Boolean Expression, compiler, De Morgan's law, expression, fixed-point, floating-point, formatted output, global variable, GUI, hexadecimal, identifier, JPEG, lcoal variable, global variable, syntax error, logic error, MICR, modulo arithmetic, OCR, OMR, operand, operator, operator precedence, overflow, parallel interface, serial interface, interrupt, polling, primitive data type, robustness, speech recognition, voice recognition, syntax error, syntax, trace, truncation, truth table, unary operator, binary operator, two's complement, signed, unsigned, underflow, Unicode, ASCII, user-interface, word

Numeric errors - overflow, type mismatch

Binary, truncation, Overflow

Hex, Binary arithmetic


Boolean Logic

Truth Tables

Math Functions (ABS, SQRT,...)

Methods, parameters

Binary Fractions

Strings, String methods, Conversions,

Types, Storage, RAM, GB, MB


Graphics - Colors, coordinates, printing, EasyApp, Controls

GUI vs CLI, monitors, graphics cards, Output devices

Hex Editor, Graphics files

Loops, counting, sequences, summing

Table of values for math


Lists, Arrays, 2-D arrays

Arrays, Parallel Arrays


User-Defined Methods
First algorithms (search, math)

Parameters, types, return values, local and global variables


Handling errors, Try..catch

Error types (syntax, run-time...)
Input devices


First Project - Math Problems



Term 2 - Static Data Structures - Files, Objects and Classes, Data Storage Devices                        [T1] [T2] [T3] [T4] [T5] [T6] [Syl] [Voc] 



HL Extras


Text Files - writing, reading

OS, Networks


 address-mapping , ASCII, analog, argument, buffer, character set, DBMS, data-flow diagram, data-structure, debugging-tool, direct-access, encapsulation, field, file, flag, fully-indexed, ISAM, inheritance, in-order traversal, key-field, menu, WIMP, method signature, object, OOP, parameter, parameter passing, parsing, paritally indexed, pass-by-reference, pass-by-value, polymorphism, primary memory, secondary memory, private, public, record, recursion, reference, rotational delay, search engine, sector, track, seek time, selection sort, bubble sort, sensor, sentinel, sequential access, random access, sequential file, sequential search, method signature, polymorphism, software reuse, star topology, bus topology, transaction file, master file, user-defined method, library, standard methods, variable-length records, fixed-length records

Sequential Search, substring matching

Search Engines

Parsing text-files

RandomAccessFiles (as binary storage)

Type matching, Data formats -
double, Dates, Strings

Floating Point in Binary

Records, Files of records

Storage Devices (disk, tape)
RandomAccess, sequential

Sorted files, binary search

Sorting, Key-fields

Using networks for databases

Indexed files

Object Oriented Programming
Multiple Classes

System design - top-down, bottom-up, OO, prototype, feasibility

Inheritance, Encapsulation, Polymorphism

Objects with references


Arrays of objects, changing references

 Program Design

 Data-Structures, Objects
system data-flow diagram

Inheritance, encapsulation

OO Project with Files



Term 3 - Systems - OS, Networks, CPU, Busses, Algorithms                                                      [T1] [T2] [T3] [T4] [T5] [T6] [Syl] [Voc]  





Compiling, linking, JVM

Machine Instruction Cycle, CPU, asm lang RAM, ROM

System Stack

ADC, DAC, ALU, ,CU, CPU, analog, backup, batch processing, BigO, binary operator, binary search, bps, bubble sort,  bus, cache, CASE, CPU, check-bit,check-digit, check-sum, client-server, command language,compatibility, architecture, program, controller, data compression, defragmentation, digital, direct-memory-access, distributed processing, encryption, file-manager, floppy-diskette, hacking, handshaking, high-level-language, hub, insertion sort, interface, interpreter, interrupt, ISO, iteration, encryption key, library-manager, linker, latency, loader, LAN, master file, memory address, address bus, memory manager, DMA (memory mapped IO), microprocessor, microwave transmission, modem, modular language, modularity, module, multi-tasking, multi-user system, multi-processing, network, networking, node, host, on-line, stand-alone, on-line processing, OSI, OS, packet-switching, pop, push, queue, stack, protocol, quick-sort, real-time, register, robotics, router, search engine, security, semantics, syntax, server, simulation, single-tasking, single-user system, multi-user system, subprogram, TCP/IP, translator, tree (hybrid) network topology, utility, , validation, verification, virtual memory, virus, virus checker, WAN

Experiments to measure performance

System Performance, MIPS, MHz, Baud, KB, MB, GB, History, future, Moores law


File formats, Class/method interfaces

OS, Platforms, Interfaces, compatibility, security, file locking



Networks, protocols, LAN, WAN


Other programming languages (JavaScript, Basic)

Interpreter vs compiler, portability, assembly lang


Validation, verification, documentation experiments

Errors, backups, viruses


Error-trapping, range check, check digits

Networks - Transmission errors


Algorithm Efficiency, reliability, comparisons

 binary search, quick-sort


Recursion vs Iteration

Simplicity of code, reusability



Term 4 - Complex and Dynamic Data Structures, System Life-Cycle, Start Project (Analysis)      [T1] [T2] [T3] [T4] [T5] [T6] [Syl] [Voc] 



Linear Data Structures
   SL - Practice with Files and Arrays
   HL - Pointers, Linked-Lists, Techniques for Dynamic Stacks and Queues

Non-linear Data-Structures
SL  - Review two Dimensional Arrays, with practice and application to simulations and/or games
   HL - Trees, Recursion introduced as necessary for traversing a tree.  Further practice with recursion.

Software Life-Cycle
Several real-life systems are discussed, with attention to the disasters which have resulted from poor investigation, poor design, poor testing, and poor documentation;  Issues of longevity, reliability, usability, and flexibility are illustrated in real systems.  It is good to bring in as many references to the case-study as possible here and in the next few weeks.

Good Techniques for Investigation and Design
Top-down-design;  Hierarchical charts; Modularity; Requirements analysis; Pseudo-code; Budgeting time and money; Selection of appropriate hardware and software utilities. (The discussion of selecting hardware and software also serves as a review of system-fundamentals.)  This section can end with the students turning in written notes of their investigation, with sample data and sample reports (from existing systems where possible).

Dossier Stage A - Analysis

ADT  ,  balanced tree, binary tree, circular-list, collision(hash), data-structure, dequeue, doubly-linked-list, dynamic data structure, enqueue, FIFO, hash-code, infix notation, left-child, LIFO, linked-list, node, parent, child, pointer, postfix notation, post-order traversal, pre-order traversal, prefix notation, pseudo-code, stack, push, pop, queue, enqueue, dequeue, requirements specification, software design, static data structure, storage requirements, storyboard, structure diagram, subclass, superclass, subtree, system documentation, system life cycle, systems analyst, systems design, systems flowchart, top-down design, tree, unbalanced tree


Term 5 - Producing the Dossier Program, Mock Exams                                                 [T1] [T2] [T3] [T4] [T5] [T6] [Syl] [Voc] 


Stage B - Program Design

Students expanbd their prototype program with stub-modules. This helps them clarify the remaining problems in their design. At the end of 2 weeks, students must submit complete design, including pseudocode for their solution to their problem.

Start Writing the Program

Two more weeks to get a good start on the program.  Many initial problems will surface, and at the end of these two weeks the students are ready and willing to accept some guidance.  

Mock Exams

Stage C - Writing the Program

During January, most class time is allocated for work on the dossier.  This is interspersed with lessons about usability, reliability, testing, flexibility, and documentation.  

Stage D - Documentation

February is devoted to writing documentation and finishing the dossier.


Term 6 - Finishing Up Projects, Finishing the Syllabus, Reviewing for Exams                  [T1] [T2] [T3] [T4] [T5] [T6] [Syl] [Voc] 



This section is anywhere from 4 to 6 weeks long, depending on the school calendar for the year.

Students need to finish their dossiers and then review for the exam.  I leave circuits to teach at this time - it doesn’t seem to have a logical place in the rest of the course.  It also prompts a variety of associations with various parts of the syllabus, so it is a good springboard for starting the review.

Review and Practice for Exam

full adder, half-adder, logic circuit, logic gate, nand, nor, and, or, xor, not


====== Syllabus ======    Student Concerns     Teaching Plan     Syllabus     Vocabulary

TOPIC  1    [T1] [T2] [T3] [T4] [T5] [T6] [Syllabus  1  2  3  4  5  6  7 [Vocabulary  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x ]

Topic 1.1—Systems analysis

8 hrs

  Assessment statement Teaching note Obj


Outline the systems life cycle in terms of the stages: analysis, design, implementation, operation and maintenance.

Other models are acceptable as long as they emphasize the cyclical nature of the problem-solving process.



Explain the importance of collecting data during the analysis stage.



Compare methods of data collection.

Examples are: interviewing current users and domain experts, constructing questionnaires, observing current systems and studying prospective user-based documentation.



Describe the production of a requirements specification during the analysis stage.

This may include: a definition of inputs and outputs, a list of tools, facilities, people available for developing the solution, and a schedule for the next stages of the project.



Outline the features of a feasibility report.

A feasibility report may be produced during the analysis phase, the design phase, or both. It may include: a brief description of the proposed system; estimated costs; economic, technical and legal responsibility; and a possible completion date.




Compare the advantages and disadvantages of alternative solutions in the design stage. This should include both hardware and software solutions.

Several possible solutions should be considered and evaluated by asking questions such as: What kind of output should be produced? Where will the input data come from and how will it be entered? Should the system be centralized or networked? Should computers be used at all? Should standard software packages be used? How much customization is desirable? The emphasis should be on modular organization. The human–computer interface should be considered.



Discuss methods of testing systems, the importance of proper testing and the implications of inadequate testing.

Students must be able to propose suitable test data, with reasons, during the design and implementation stages.



Outline methods of implementing new systems.

Methods include: running old systems in parallel with new systems, direct changeover and phased introduction. Training implications and possible disruption during installation should be considered.



Outline the features and importance of maintaining systems.

Features to be considered include periodic reviews, performance evaluation and clear documentation, to facilitate modifications.




Topic 1.2—Systems analysis

4 hrs

Students should learn to investigate and analyse problems at the system level before beginning to think about a solution (algorithms). Students should be able to read and construct system flowcharts.

  Assessment statement Teaching note Obj


Explain the importance of formulating a problem precisely.



Discuss the aspects that must be considered in a specified problem.

Students should realize that activities such as interviews, questionnaires and literature searches are required to discover the relevant aspects.



Identify the outcomes that an appropriate solution must produce to solve a specified problem.



Identify the parts of a problem that can be solved appropriately using a computer.



Identify the three basic control constructs of programming: accepting data, processing it and outputting the results.



Analyse a problem by decomposing it into modules.

For example, the modules might represent the input, process and output of the solution to the problem.



Topic 1.3—Systems design

4 hrs

  Assessment statement Teaching note Obj


State the parts of a system.



Identify the data that needs to be held and processed by a system.



Outline suitable means of data capture and output presentation for a system.



Design appropriate data structures to store data within a system.



State the hardware components that are appropriate for a system.



Outline a suitable interface between a system and users.



Analyse a systems flowchart that represents a complete system.



Construct a systems flowchart to represent a complete system.

Symbols that students should use appear in appendix 3.



Topic 1.4—Social significance and implications of computer systems

5 hrs

  Assessment statement Teaching note Obj


Discuss the social and economic implications of the installation of new systems.

See 1.1.8 for installation methods to be considered.



Discuss the social significance and implications of the widespread use of computers in society.

The social significance must be treated by reference to economic, political, cultural and environmental consequences. These include: effects on employment (resulting in changes to the working environment, retraining and so on); computers (hacking, viruses and so on); ethical and legal requirements; data storage (preserving privacy, data protection and so on); software users (copyright, software licensing and so on).



Discuss current trends in computer systems and the consequences of these trends.



Topic 1.5—The software life cycle

2 hrs

  Assessment statement Teaching note Obj


Outline the major stages in the software life cycle.

One model includes: systems analysis, leading to a precise statement of the problem that needs solving (a requirements specification); software design; program construction, including testing and debugging; installation and operation; and maintenance. Other models are acceptable, as long as they emphasize the cyclical nature of the life cycle.



Explain why software production is normally cyclical.

Students should understand that computer systems are used over long periods of time. The software in these systems requires periodic improvement. After the original design and implementation, further analysis, redesign and restructuring are required to accommodate changing needs. This will continue through many cycles of analysis, design, implementation and use.



Topic 1.6—Software design

8 hrs

  Assessment statement Teaching note Obj


Outline the data required to solve a problem that the students have not encountered before, including data file formats, input and output requirements with appropriate user interfaces.

For example, screens, OMR forms, report formats.



Discuss the advantages of modularity in designing a solution to problems.



Define the term prototyping.



Outline the prototyping approach to systems design and development.

Prototyping can be done at many levels of sophistication. For the purposes of this course prototyping is limited to the presentation of a preliminary solution that may not be functional.



Discuss the advantages to end-users and systems designers of using the prototyping approach.

Prototyping can be used with end-users for the purpose of obtaining feedback at an early stage in the design process. Prototyping can be used by systems designers to investigate alternative solutions to a problem.



Outline the efficiency of a solution in terms of storage requirements, memory requirements, and speed.

Only a qualitative treatment or a specific calculation is expected; “O” or BigO notation is required only at HL. (See 5.6, Algorithm evaluation.)



Outline how programs can be tested and debugged.

Testing implies tracing sections of an algorithm, including responses to errors (“dry runs”), as well as the design of test cases, which are then executed. Students must be able to propose suitable test data, and give reasons. Debugging has the components of detecting, diagnosing and correcting errors shown up by testing.



Describe the role of tools in constructing, testing and debugging programs.

Ideally, students should use an integrated development environment (IDE) combining an editor, interpreter or compiler and debugging tools, but this is not a requirement.



Topic 1.7—Documentation

4 hrs

  Assessment statement Teaching note Obj


Outline why documentation is needed at each stage of the systems life cycle.



Explain the features of documentation for design, programming and maintenance, that is, system documentation.

Students are required to document their problem-solving process according to the standards described in the guidelines for program dossiers. Program listings must also be thoroughly documented.



Explain the features of documentation for the user, that is, user documentation.

Students are required to write end-user instructions according to the standards described in the guidelines for the program dossier. Students should know that other user manuals may be needed (for example, on-line help systems and installation manuals where systems are installed by personnel other than end-users), but they are not required to write such documentation.

TOPIC  2    [T1] [T2] [T3] [T4] [T5] [T6] [Syllabus  1  2  3  4  5  6  7 [Vocabulary  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x ]

Topic 2.1—Systems analysis

50 hrs

  Assessment statement Teaching note Obj


Apply the following high-level language constructs appropriately in order to implement a software design expressed in Java.

  • Declare variables and types with appropriate scope, distinguishing between private and public identifiers.
  • Define and apply user-defined objects.
  • Format output in a user-friendly manner.
  • Construct and calculate arithmetic, relational and Boolean expressions (only and, or, not) using appropriate operators (&&, || and !) and taking into account their precedence.
  • Construct and calculate the value of modulo arithmetical expressions “mod”, “div” using appropriate operators (%, /) and taking into account their precedence.
  • Implement the remaining algorithm constructs in Java: arrays, objects, selection constructs (branching), file operations, iteration constructs (looping), sentinels and flags.
  • Use built-in subprograms, including those of the Java foundation classes specified in appendix 2.
  • Define and apply user-defined methods.
  • Demonstrate an understanding of method signatures.
  • Demonstrate an understanding of the use of parameters, including object and primitive parameter passing and return values.
  • Demonstrate an understanding of the scope of Java identities, restricted to the keywords private and public.
  • Define primitive, class, object, data member, method, method signature and constructor.


Apply appropriate data types and data structures to solve a problem that students have not encountered before.

Required data types are integer, real, character and Boolean. Required data structures are strings, one-dimensional arrays, two-dimensional arrays, records and files.



Describe the nature and function of the data types and data structures stated in 2.1.2.



Trace algorithms in Java.

See appendix 2. Examination questions will always use Java whenever code needs to be displayed; therefore students must be able to understand algorithms presented in this language. The algorithms may be either the standard algorithms in the syllabus, or algorithms of equivalent complexity that the students have not seen before. The algorithms may use any of the data types and structures listed in 2.1.2.



Evaluate algorithms written in Java with respect to efficiency, correctness and appropriateness for a task.

See note in 2.1.4.



Construct algorithms in Java.

See note in 2.1.4.



Explain the need for searching and sorting.



Apply sequential (linear) and binary search algorithms, selection and bubble sort algorithms to problems, including some not encountered before.

Searching and sorting provide good examples for studying the design, development and analysis of algorithms. Students should be able to discuss the appropriate circumstances for the use of each algorithm. In examinations they may be given descriptions of other algorithms to be developed.



Compare the efficiency of the specific searching and sorting algorithms mentioned in 2.1.8.



Discuss the efficiency of specific searching and sorting algorithms.

BigO notation is not required at SL.



Describe syntax errors, logic errors, and run-time errors.

Overflow, underflow and truncation errors may arise during program development and so they may be discussed, but they will not be examined at SL.



TOPIC  3    [T1] [T2] [T3] [T4] [T5] [T6] [Syllabus  1  2  3  4  5  6  7 [Vocabulary  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x ]

Topic 3.1—Language translators

2 hrs

  Assessment statement Teaching note Obj


Define syntax and semantics.



Describe the function of high-level language translators.

The translators should be limited to interpreters and compilers.



Outline the use of software development tools.

Examples include: database management systems, macros, CASE tools and simple language translators (interpreters and compilers are not suitable examples in this context), HTML editor, web page editor, code editor, visual IDE.



Topic 3.2—Computer architecture

12 hrs

  Assessment statement Teaching note  Obj


Outline the structure of the central processing unit (CPU) including the functions of the control unit (CU), the arithmetic and logic unit (ALU), primary memory and address buses.

Students are expected to be able to reproduce a basic diagram illustrating the CPU and to know that each location in primary memory has a unique address.



Outline the meaning of the terms bit (b) and byte (B) and their derivatives.

Students must understand that everything in a computer is held and processed in binary, hence the relation between bits, bytes and so on in powers of 2. For example 1 kilobyte = 2^10

They should be familiar with the prefixes T, G, M, k and their use in computer science measure. They must be able to apply the prefixes T, G, M and k to bits and bytes. For example TB (terabytes), Gb (gigabits), MB (megabytes).



Outline the meaning of the terms word, register and address and their use in the storage of data and instructions.

The study of specific registers is not required.



Outline the steps in the machine instruction cycle: fetch, decode, execute and store.

A single processor model is sufficient. The study of a specific CPU is not required.



Outline the characteristics of primary memory and the difference between volatile and non-volatile memory.

Students must understand the function of RAM, ROM and cache memory and their typical sizes (in bytes). The way in which virtual memory can be used to expand primary memory must be understood but details of paging are not needed.



Outline the characteristics of secondary memory and define sequential and direct access.

Secondary memory should refer to flash memory disks, CDs and DVDs and tape. Students must know the type of access of the above secondary memory media. They should also be able to give an application of each type and justify its use for this application.



Outline the function of a microprocessor designed to perform one or a limited number of functions (within a car, washing machine and so on).

The need for different types of memory in a microprocessor must be understood. Students must be able to quote at least one example of the use of a microprocessor and state the inputs and outputs.



Discuss the features, advantages, disadvantages and applications of specific input and output devices and the media used by each.

Students must know the following features: mouse, keyboard, touch screen, optical character recognition (OCR), magnetic ink recognition (MICR), scanners (page, mark sense and barcode), LCD panels, speech recognition, sensors, digital cameras, graphics tablets, printers, plotters, monitors, robotics, sound. Technical details are not required unless introduced in the case study.



Outline recent developments in computer system architecture including processor architecture, primary memory technologies and secondary memory devices.

Technical details are not required unless introduced in the case study.



Topic 3.3—Computer systems

5 hrs

  Assessment statement Teaching note Obj


Define the term “operating system”.

Knowledge of specific operating systems is not required.



Outline the functions of operating systems.

Functions include: communicating with peripherals; coordinating concurrent processing of jobs; memory management, resource monitoring, accounting and security; program and data management; providing appropriate user interfaces.



Discuss the characteristics of various computer systems including single users and multi-users, in both single-tasking and multi-tasking environments.

The terms multi-access and multi programming should be understood but details of the way in which they are managed will not be examined.



Compare the characteristics and applications of different kinds of computers.

Personal computers, portable computers, mainframes and supercomputers should be considered. Characteristics must include: primary and secondary memory size; input/ouput (I/O) devices; environment (size, convenience, where it is used); cost, users (multi- or single-); and processor (word length, bus size and frequency).



Outline the principal characteristics of batch processing, online (interactive) processing and real-time processing.



Outline applications that use each of the processing methods in 3.3.5: batch processing (payroll and bank cheque processing); interactive (online) processing; word processing; computer games; real-time processing (air traffic control and monitoring of patients in hospital intensive care).




Explain the relationship between master and transaction files.

This should relate to the examples in 3.3.6.



Discuss the reliability of the system including the implications of failure.

The need for, and use of, backing-up strategies, mirrored systems and the utilities in 3.7.



Topic 3.4—Networked computer systems

8 hrs

  Assessment statement Teaching note Obj


Define local area network (LAN), wide area network (WAN), server and client.



Explain basic network topologies.

Students must be able to explain and illustrate star and bus networks as well as hybrids involving both these networks.



Explain the hardware required in networking.

Hardware should include communications links (cables, microwave, fibre optics and so on) hub, switch, node and router.



Define the terms “standard protocol”, “data integrity” and “data security” in the context of data transmission across a network.

Students must know that standard protocols are a set of rules that are internationally recognized in the transmission of data. The difference between data security and data integrity must also be recognized. Students do not need to know specific or technical details such as the ISO (OSI) system of layers, TCP/IP and so on.



Explain the software involved in networking.

Students must understand the role of communications software in connecting local and wide area networks and the need to deal with protocols and data security.



Describe suitable methods to ensure data integrity in the transmission of data.

Error-checking codes such as check sums (block character checks) and parity checks must be understood. The reasons for re-transmission should be understood. The quality of communication lines should be considered.



Describe suitable methods to ensure data security.

Students should understand the concept of data encryption but do not need to give algorithmic details. They must understand the need for, and use of, passwords, physical security and different levels of access (permissions) for different users.



Discuss the need for speed in data transmission, and how speed can be enhanced.

Students must know that documents and graphics files can be sent in different formats and the format affects the speed of transmission. Common formats such as JPEG and BMP should be known. The principles of data compression should be considered but details of methods are not required.



Discuss networking applications and the implications of networking for organizations, including internal communications, electronic mail, e-commerce, conferencing and distributed processing.

The use of LANs, public and private WANs and the Internet should be considered.



Outline the functions of a web browser and search engine including displaying an HTML page, following hyperlinks and searching on key words.

Specific names of browsers and search engines are not required.



Topic 3.5—Data representation

6 hrs

  Assessment statement Teaching note Obj


Outline the use of binary to represent data.

Students must understand the relationship between number of digits and number of patterns available (2n),for example: 4-bit colour representation allows 16 colours; a 32-bit address bus can address 4GB RAM). The different features of ASCII and Unicode should be known but students are not expected to know the specific representations of characters.



Outline the need for standard formats for storing documents and files.

Link with 3.4.8 and 3.4.9.



Express numbers in the bases: decimal, binary and hexadecimal.



Convert integers between the bases specified in 3.5.3 (maximum 8 bits).



Apply binary notation to represent integers, both positive and negative, using the method-of-two’s complement.



Define analogue data and digital data.



Outline the need for the interconversion of data between analogue and digital formats for computer processing.

Students need to understand the need for conversion between data for processing, for example, sensors and modems.



Discuss two applications that require conversion of data between analogue and digital formats including temperature sensing.

Teachers are free to choose the second application. Other software examples include: speech recognition, light detection, image processing, OCR software.



Topic 3.6—Errors

2 hrs

  Assessment statement Teaching note Obj


Describe the following causes of errors with reference to an application in each case: data entry, accidental, deliberate, software and hardware



Outline methods of detection and prevention for each of the errors in 3.6.1.

Verification and validation should be understood. Check digits and hash totals should be explained. The use of modulo operators (mod, div) in constructing check digits should be understood.



Describe methods of recovery from an error.

Re-input, re-transmission and restoring from backups should be considered. Error-correcting algorithms are not required.



Topic 3.7—Utility software

2 hrs

  Assessment statement Teaching note Obj


Outline the main function(s) of the following software utilities: data compressors, virus software, file managers, defragmentation software.

The required file manager functions are: copy, delete, format, find, create folder/directory, archive, print, back-up, rename and restore. The fact that files are not stored contiguously only needs to be dealt with in outline, in order to understand why defragmentation software is required. Technical details are not required.



Discuss the need for each of the utilities in 3.7.1.



TOPIC  4    [T1] [T2] [T3] [T4] [T5] [T6] [Syllabus  1  2  3  4  5  6  7 [Vocabulary  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x ]

4.1—Number systems and representations

6 hrs

  Assessment statement Teaching note Obj


Calculate in the bases specified in 3.5.3.

For binary and hexadecimal calculations, only addition is required.



State the mantissa and exponent of a binary number in floating-point representation. Relate this to scientific notation in decimal.

For negative binary numbers in integer and real formats, only the method-of-two’s complement is required.



Apply binary notation to represent real numbers.

Both fixed-point and floating-point representations are required. Students should be able to calculate the range of normalized floating-point numbers given a specific representation. Issues such as the need for normalization and the loss of precision should be understood.



Discuss the advantages and disadvantages of integer and floating-point representations.



Define truncation error, underflow error and overflow error.



Outline three situations, with each one providing an example of when and where one of the errors in 4.1.5 can occur. Each situation should show a                            different error, that is all three errors should be described.



4.2—Boolean logic

5 hrs

  Assessment statement Teaching note Obj


Define the Boolean operators and, or, not, nand, nor and xor, by drawing the appropriate truth table.



Construct Boolean expressions using the operators in 4.2.1.











This can be written in words as: (A xor not B) and (C nor D).



Calculate the values of a Boolean expression using truth tables.

A maximum of three inputs will be expected. Include the use of truth tables to determine whether two Boolean expressions are logically equivalent.



Convert Boolean expressions into simpler forms.

A maximum of three inputs will be expected. Conversions may be done “algebraically” (using identities such asand De Morgan’s laws) or by using Karnaugh maps, Venn diagrams or any other appropriate method.



Construct a simple logic circuit that corresponds to a given Boolean expression by using standard logic gates.



Construct a Boolean expression that corresponds to a given logic circuit.



Explain the function of a given circuit.


TOPIC  5    [T1] [T2] [T3] [T4] [T5] [T6] [Syllabus  1  2  3  4  5  6  7 [Vocabulary  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x ]


3 hrs

  Assessment statement Teaching note Obj


Define operator (unary and binary), identifier, operand, actual parameter (argument), formal parameter, infix notation, postfix notation and prefix notation.



Define stack, queue and binary tree.



Discuss the features and appropriate usage of stacks including: parameter storage, interrupt handling, evaluation of arithmetic expressions and storage of subprogram return addresses.



Discuss the features and appropriate usage of queues including: keyboard queues, print queues and customer queue simulations.



Discuss the features and appropriate usage of binary trees including: storing search keys, decision trees and file systems.



5.2   Static data structures

8 hrs

Arrays are covered at length in the common core. This subtopic should be considered as an extension.

  Assessment statement Teaching note Obj


Trace algorithms that perform a quicksort on linear arrays.



Construct algorithms that perform a quicksort on linear arrays.



Construct a hash table including the generation of addresses using modulo arithmetic and the handling of clashes by locating next free space.

Students will be given a hash algorithm and a set of keys or records that will be allocated memory locations by employing the algorithm.



Trace algorithms that implement a stack in an array.



Construct algorithms that implement a stack in an array.

This includes: to initialize a stack, to test for an empty or a full stack, to push a data item, to pop a data item and to display the top data item. All operations must protect against overflow and underflow.



Trace algorithms that implement a queue in an array.



Construct algorithms that implement a queue in an array.

This includes: to initialize a queue, to test for an empty or a full queue, to add a data item to the rear of a queue (enqueue), to remove a data item from the front of a queue (dequeue) and to display the data item at the front of a queue. Algorithms must include linear and circular implementation. All operations must protect against overflow and underflow.



5.3—Dynamic data structures

14 hrs

  Assessment statement Teaching note Obj


Define object reference.



Construct algorithms that use reference mechanisms.



Discuss the features and appropriate usage of single, double and circular linked lists.



Outline and illustrate how links operate logically.



Trace algorithms to implement linked lists.



Construct algorithms to implement linked lists.

This includes: initialize, add objects, delete objects, find tail object, perform linear search and insert objects into a list. All operations must protect against null pointer exceptions



Trace algorithms that implement a dynamic stack using references.



Construct algorithms that implement a dynamic stack using references.

Students must recognize the difference between this and the static representation of stacks. See notes in 5.2.5



Trace algorithms that implement a dynamic queue using references.



Construct algorithms that implement a dynamic queue using references.

Students must recognize the difference between this and the static representation of a queue. See also notes in 5.2.7.



Define parent, left-child, right-child and subtree.



Trace algorithms to implement binary trees.



Construct algorithms to implement binary trees.

This includes: initialize, add objects, traverse (pre-order, in-order and post-order). All tree traversals must be implemented recursively. See 5.5.



Outline and illustrate the logical representation of dynamic data structures.


5.4—Objects in problem solutions

6 hrs

The scope of the topic is limited to features exemplified in Java. (See appendix 2.)

  Assessment statement Teaching note Obj


Outline the features of an object.

This should be limited to the following definition.

An object is a combination of data and the operations that can be performed in association with that data. Each data part of an object is referred to as a data member while the operations can be referred to as methods. The current state of an object is stored in its data members and that state should only be changed or accessed through the methods. Common categories of operations include: the construction of objects; operations that either set (mutator methods) or return (accessor methods) the data members; operations unique to the data type; and operations used internally by the object.



Explain the basic features and advantages of encapsulation.

Encapsulation is the combination of data and the operations that act on the data into a single “program unit” called an object. The advantages are that it allows for information and data hiding.



Explain the basic features and advantages of information and data hiding.

Once encapsulated into an object both the data members and the details of the implementation of the member functions can be hidden. This allows the object to be used at an abstract level.



Explain the basic features and advantages of polymorphism.

Polymorphism describes the situation in which the same operation can be applied to different objects, with each object behaving appropriately. The concepts of templates, virtual member functions and operator overloading are not required. Polymorphism allows objects to be used intuitively and it simplifies coding by making it generic.



Explain the basic features and advantages of inheritance.

Inheritance allows one object to be derived from another. The derived object has all the data members and member functions of the original object and any additional data member or member functions that are defined within it. Even previously defined functionality may be redefined with the appropriate functionality applied to the particular object that invokes it. In Java, all classes are subclasses of the object class. When functions (including constructors) are redefined in a derived object, they completely override the original function. Inheritance in Java is limited to one object being derived from another (one level of inheritance). Multiple inheritance is not supported by the Java language.



Trace an algorithm that includes objects.

This will include recording the behaviour and state of the objects.




6 hrs

  Assessment statement Teaching note Obj


Define recursion.



Discuss the advantages and disadvantages of recursion.

Students must understand that for some applications a recursive procedure is short and elegant, and that a recursive solution is ideally suited for some algorithms. However, recursion is not suitable for most algorithms as non-recursive ones are more efficient.



Trace recursive algorithms.

All steps and calls must be shown clearly. Students may need to draw a tree.



Construct recursive algorithms.

This is limited to an algorithm that returns no more than one result and contains either one or two recursive calls to itself.



Implement the following constructs: self-referential classes and recursion.


5.6—Algorithm evaluation

4 hrs

Assessment statement Teaching note Obj


State the efficiency of the following algorithms in BigO notation: a linear search is O(n), a bubble sort is

BigO notation is used to classify algorithm performance (speed). A sequential search is O(n), meaning that the time to search an array is proportional to the size of the array. However, a bubble sort requires nested loops and is thereforeO(n^2) so its time requirements are proportional to the square of the size of the list. Students should be aware that the efficiency of a given algorithm may depend on the distribution of the data, for example, a quicksort may deteriorate to O(n^2) in the worst case.



Analyse the efficiency of algorithms (those in 5.6.1 and those of similar complexity), in terms of BigO notation and in terms of the storage requirements.

When students are presented with an algorithm that they have not encountered they must be able to write the BigO notation for the efficiency of that algorithm



Outline how data structures in this syllabus can be organized to suit the requirements of applications.

Students should consider the needs of different applications for data types and data structures. For example, stacks might be used to track changes to a word processing document whereas a queue might store data items being entered at the keyboard for subsequent processing in the order in which they arrived. Ordered binary trees and hash tables are frequently used to store key fields used for quick retrieval of items from an unordered data file.



Evaluate algorithms that use any of the data structures in this syllabus.

The algorithms may be  standard algorithms mentioned in the syllabus, or algorithms of equivalent complexity that the students have not seen before.

TOPIC  6    [T1] [T2] [T3] [T4] [T5] [T6] [Syllabus  1  2  3  4  5  6  7 [Vocabulary  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x ]

6.1—Processor configuration

2 hrs

  Assessment statement Teaching note Obj


Describe the functions of the following processor components: accumulator, instruction register and program counter.

Further details (or registers) are not required.



Explain the role of the above components in the execution of single instructions in the machine instruction cycle.



Describe the function of an interrupt register.



Describe how buses link the processor, the random access memory, the read-only memory and cache.



6.2—Magnetic disk storage

1 hr

  Assessment statement Teaching note Obj


Outline storage details with reference to blocking, sectors, cylinders and heads.



Describe access time in terms of latency (rotational delay), seek time and transfer time.



6.3—Operating systems and utilities

2 hrs

  Assessment statement Teaching note Obj


Define operating system.

Knowledge of any specific operating system is not required.



Explain the functions of operating systems.

Students need to be aware that an operating system is a collection of programs that cover the following tasks: input/output (I/O) control, file maintenance, software/hardware interface, memory management, user interface, software execution control, security. Virtual memory must be included but knowledge of thrashing and paging is not required. This extends 3.3.2.



Outline the functions of linker, loader and library manager.



6.4   Further network fundamentals

4 hrs

  Assessment statement Teaching note Obj


Outline the role of the computers used in the separate type of networks: WAN, LAN and the Internet.

The roles of providers, servers and clients should be understood for each of these networks. Students should be able to select the appropriate type of network for a given situation. They must understand the role of gateways.



Describe the features of communications needed for networking.

Ethernet, public and private telephone lines, ISDN, ADSL, fibre optic and wireless methods should all be familiar and students should be able to select the most suitable method of communication in a given situation, and to state the advantages of each method. Technical details will not be required.



Describe packet switching.

Students need to be aware that when a message is dissembled into packets, the packets may take different paths and pass through different nodes to arrive at the same destination, and that packets can be discarded. Virtual circuits are not required.



Outline the need for protocols in packet switching.

Students do not need to know technical details of TCP, IP, OSI, but must understand that protocols include essential information that allows packets to be reassembled at their destination according to the requirements of the receiving computer.



Explain the need for network security and describe how this can be achieved.

Emphasize the importance of protection within a LAN by giving layered access (for example, via permissions on certain areas) to different users, and marking files as read only. The need for a firewall to prevent intrusion from outside should be clear.



6.5—Computer/peripheral communication

6 hrs

  Assessment statement Teaching note Obj


Define port and handshaking.



Define direct memory access (DMA) and buffer.



Define interrupt and polling.



Explain how peripheral devices are controlled with reference to the printer, modem and disk drive.

This must include the use of buffers (including double buffering), interrupts and interrupt priorities, polling, direct memory access (DMA) and handshaking in these devices.



Compare the features of DMA, interrupt systems and polling systems.

Students must cover an event or external device interrupt as well as a polling system. Knowledge of specific interrupt codes is not required.



Compare serial transmission with parallel transmission.


TOPIC  7    [T1] [T2] [T3] [T4] [T5] [T6] [Syllabus  1  2  3  4  5  6  7 [Vocabulary  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x ]


File structure name

Structure details

Access method (searching)

Sequential file

Ordered or unordered records

Sequential access

Partially-indexed file

Ordered records

Sequential access to index, followed by direct access to the first record in the group, then sequential access to find the desired record.

Fully-indexed file

Unordered records

Sequential access to the index, followed by direct access to the data file.

Direct access file

Unordered or ordered records

A calculation provides the address (location) of a record, followed by direct access to the record.


7.1—File organization

10 hrs

  Assessment statement Teaching note Obj


Define the term “key field”.



Outline sequential file organization on unordered records and how records can be retrieved by using sequential access via the key field.



Outline sequential file organization on ordered records and how records can be retrieved by using sequential access via the key field.



Outline partially-indexed sequential file organization.

A partially-indexed sequential file has ordered records, with a separate but partial index. Students should be able to describe how records can be retrieved via access to the index, followed by direct access to the first record in a group, followed by sequential access to locate the desired record.



Outline fully-indexed file organization.

A fully-indexed file has unordered records, with a separate and complete index. Students should be able to describe how records can be retrieved via access to the index, followed by direct access in the data file. Recall of multi level indexes is not required.



Outline direct access file organization.

A direct access file can have unordered records. Students should be able to outline how records can be retrieved via a calculation followed by direct access.



Outline the need for fixed- and variable-length fields and records, and how they are related to direct and sequential access methods.



Describe the use of hash algorithms to save and retrieve records in a direct access file.

Students should understand the use of modulo operators (mod, div) in the construction of a hash function. See also 5.2.3.



Compare the speed of access and storage requirements for the types of files mentioned in 7.1.2–7.1.8.

This should also include storage media (disk, tape). Access speeds should be expressed in descriptions, calculations of iterations and BigO notation.



Explain how the logical organization of data differs from its physical organization.

For example, in a fully-indexed sequential file, records can be retrieved in alphabetical order by using the index, even though they are not stored physically in that order.



Outline the need for external sorts.

The sorting of files that are too large for the primary memory of a computer requires techniques based on a combination of sorting and merging. Recall of algorithms for merge sorts is not required.



Demonstrate an understanding of and use the different types of data streams identified in appendix 2.


======   Vocabulary   ======    Student Concerns     Teaching Plan     Syllabus     Vocabulary

Vocabulary   [T1] [T2] [T3] [T4] [T5] [T6] [Syllabus  1  2  3  4  5  6  7 [Vocabulary  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x ]

No list of computer science terms can be exhaustive. This glossary includes terms relevant to the IB Diploma Programme computer science course and these are not necessarily applicable universally. Texts do not always agree about the definitions of some terms, but ambiguity should be reduced in cases where more than one word is used for the same concept by using the definition given in the glossary.

Terms that are relevant for the higher level (HL) course only are indicated by the symbol in the second column.

EXAMPLES in bold added by Dave Mulkey.


abstract data structure 

abcdefghijklmnopqrstuvwx Top Syl 

HL icon A way of organizing data and its related procedures and functions.
Also called Abstract Data Type (ADT)
     Queue, Stack, Linked-List, Tree
accessor methods HL icon Methods that do not alter the state or attributes of an object; their purpose is to return information.
     getText() ,  getSize() ,  etc.
accumulator HL icon A storage register in the ALU that holds data temporarily while the data is processed and before it is transferred to memory.
    Old Intel 8086 chips had AX , BX , CX , DX as 16-bit registers
    Add  AX, BX  -->  like   AX = AX + BX   in Java
A–D converter   Analog–digital converter. A device for converting analog signals into digital ones for subsequent computer processing; sometimes called a “digitizer”. A digital to analog (D to A) converter operates in the reverse direction.
    Sound Card ,  scanner , digital camera , thermal sensor
ADSL (Asymmetrical Digital Subscriber Line) HL icon Technology that increases the data rate over existing telephone lines accommodating voice and digital data transfer. A special modem is needed for access.
     "Broadband" : 1 - 16 MegaBits per second bandwidth
address bus   Pathway from memory to processing unit that carries the address in memory to and from which data is transferred. See the definitions for “bus” and “data bus”.
    32-bit address bus can address 2^32 = 4 GigaBytes of memory
algorithm   An ordered set of well-defined instructions for the solution of a problem in a finite number of steps.
    Bubble-sort , Binary Search , Merge Sorted Lists
ALU   See the definition for “arithmetic and logic unit”.
    speed measured in Flops (Floating Point Operations per Second)  
analog data    The representation and measurement of the performance or behaviour of a system by continuously variable physical entities such as currents, voltages and so on. See alsodefinition for “digital data”.
    sound waves , temperature , light waves (colors)
and   The output of “and” is True if all statements are True, False if any statement is False.
   In Java &&  ,   0 and 0 = 0   ,   0 and 1 = 1   ,  1 and 1 = 1  
applet (Java)   A program that runs in the context of a browser.
    simple web-games ,  web-page menu system , price-calculator
application (Java)   A program that runs when translated by a Java compiler.
    Open Office , open-source projects , IB dossiers       
archive    Data that represents a record of data held and processed at a specific time, which is held off-line for future research or for legal reasons.
    usually compressed, e.g. .zip or .tar , containing multiple files
argument  HL icon A value or object passed to a method when it is called.
    usually a number in a function, e.g.  sin(60) -->  60 is the argument  
arithmetic and logic unit (ALU)   A part of the computer that performs arithmetic operations, logic operations and related operations.
   ALU contains Registers and circuits for arithmetic and logic
   ALU does NOT contain circuits for sending addresses and data and from RAM.
  1. An arrangement of data in one or more dimensions.
  2. In programming languages, an aggregate that consists of data objects, with identical attributes, each of which may be uniquely referenced by indexing.

    String[]  days = { "Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
    String[][]  ticTacToe = new String[3][3];

ASCII: American Standard Code for Information Interchange   The primary encoding character set used in computers for textual data transfer between applications. The set uses eight bits for each character code, one of these bits being a check bit to verify the seven bits needed to represent one character. ASCII supports most European alphabets. Unicode supports most known alphabets and is increasingly used in data transfer. See also “Unicode”.
    asc('A') --> 65  ,  asc('9') --> 57 , 0..127 = standard ASCII, 128..255 = extended ASCII
attribute  HL icon Element of data contained in an object; as specified within the object’s class.
    window.width() , font.size()      


abcdefghijklmnopqrstuvwx Top Syl 

    1 Byte = 8 bits, values from 0 to 255  
back-up (file)   A second copy of a file, to be used in the event of the original file being corrupted.
    An automatic .BAK copy of a document made by MSWord
    A copy of all student's grades stored on a backup tape
    An "image" of an entire hard-disk, stored on a CD-R   
balanced tree    HL icon A tree in which the right and left subtrees of any node have heights differing by one at the most. See also the definition for “unbalanced tree”.
    With 7, 15, 31 .. 2^n  - 1   elements, the tree can be PERFECTLY balanced.
    Otherwise, there may be a few branches which are 1 element longer.
    So this tree is balanced, but not perfectly symmetrical:

                           +-->   Stevens           
        +-->   Moore
         |                 +-->  Lewis
         |                                +--> King
         |                                + --> Irving
         |                 +-->  HAL
         |                  |             +-->  Dave
         +-->  Babbage
                           +-->  Adams     

bar code   A pattern of vertical lines distinguished from each other by width. It can be read by a bar code reader to provide data to a computer.
    On cans in the grocery store, books in the library 
bar code reader   An optical reader that can read bar codes.
    At cashier in the grocery store 
base   The basis of a notation or number system, defining a number representational system by positional representation. In a decimal system the base is 10, in a hexadecimal system the base is 16, and in a binary system the base is 2.
    Binary = BASE 2, Hexadecimal = BASE 16, Decimal = BASE 10
batch processing   A method of processing data in which transactions are collected and prepared for input to the computer for processing as a single unit, for example, payroll.
    Recording all the SALES in a store for one day into a MASTER file
    Converting lots of graphics files to the same format,
         without loading and saving them one at a time.
behaviour  HL icon The way in which an object reacts to the methods applied.
    Usually determined by the METHODS in the object.
BigO notation  HL icon A notation used to describe the relative performance (speed) of an algorithm.
    Bubble Sort is O(N^2), Binary Search is O(ln N) , Merge is O(n)
binary operator  HL icon An operator that combines two operands to give a single result, for example, addition, multiplication, division, mod, div. See also the definition for “unary operator”.
     Subtraction : 8 - 2  ,  Concatentation :  firstName + lastName
     NOT  sqrt(100) -->
sqrt is a UNARY operator, has 1 operand 
binary search   A search in which, at each step of the search, the set of data elements is divided by two, until the searched element is found. See also the definition for “sequential search”.
    Search for "CAR" in {"BIKE", "CAR", "JEEP","TRUCK","WAGON"}
      -->  Mid = (0+4)
/ 2 = 3
      -->  JEEP ?
                  --> CAR is smaller
      -->  Mid = (0+1) div 2 = 0
      --> BIKE ?
                   -->  CAR is bigger
      -->  Mid = (1+1) div2 = 1
      -->  CAR ?
\                 -->  Yes, found
binary   tree  HL icon A tree in which each node has at most two children.
     Example --> see Balanced Tree
bit (b)   Binary digit. The smallest unit of information for data storage and transmission. Each bit is considered to be either a “0” or a “1”.
    Could be a TRANSISTOR, a LIGHT (LED), a PIXEL (black or white)  
block   Smallest unit of data that can be transferred between memory and backing store in one operation.
    also Cluster for a disk drive, typically  4 KiloBytes or 16 KiloBytes
BMP   An extension given to files in bitmap form.
    it's NOT a Web format, it's NOT compressed , uses RGB with 3 bytes per pixel  
Boolean expression   An expression that has a value of True (T) or False (F).
    if  ( (Age >= 18) and (nation.equals("US") )
bps   Bits per second.
    56 K Modem --> 56000 bits per second ,  ADSL = 1 - 16 MegaBits per sec
browser   Generally used to give interactive access to information on the World Wide Web, retrieving web pages and displaying in a multi-media format.
    Internet Explorer , Firefox , Netscape , Opera
bubble sort   A sort in which the first two items to be sorted are examined and exchanged if necessary to place them in the specified order; the second item is then compared with the third (exchanging them if required), the third is compared with the fourth, and the process is repeated until all pairs have been examined and all items are in the proper sequence. See also the definitions for “insertion sort”, “selection sort” and “quicksort”.
    for (int pass = 0 ; pass < data.length ; pass = pass + 1 )
    {   for (int c = 0; c < data.length - 1; c = c + 1 )
         {  if ( data[c] > data[c+1] )
             int  temp = data[c];
             data[c] = data[c+1];
             data[c+1] = temp;
   This example is "inefficient" - an efficient algorithm would stop after
    a pass with no swaps.
buffer   A portion of storage used to hold input or output data temporarily.
    Printer receives an entire page, stores it, then prints it
    Web video - several second are "cached" before display starts
    CD burner buffers output before writing to avoid a buffere under-run
bus   The pathway used for sending signals between internal components of a computer. Components can share the same bus but cannot transmit simultaneously. See also definitions of “data bus” and “address bus”.
CPU transmits an address to RAM across the 32 bit ADDRESS bus,
    RAM transmits data back across the 64-bit DATA bus
bus topology    A network in which all devices are connected to a common cable, known as the “bus”. See also definitions of “star topology” and “tree topology”.
    Commonly uses coaxial cable and Ethernet protocol
    Sensible for a small office with only a few work-stations
Byte (B)   A set of bits considered as a unit; it normally consists of 8 bits and corresponds to a single character of information.
    1 Byte = 8 bits, values from 0 to 255  


abcdefghijklmnopqrstuvwx Top Syl 

  Wire or glass fibre used to connect computers over a network. Copper (coaxial and twisted pair) and glass fibre (fibre optic cable) are the most common.
    Twisted pair for Star topology, coaxial for a Bus topology, fibre-optic for WANs
cache   Part of the main store that is between main memory and the processor. It holds a copy of data and instructions that are likely to be used next by the processor and is hence faster than main memory. See also the definition for “disk cache”.
    Level I = inside CPU ,  Level II = on motherboard between CPU and RAM
CASE   See the definition for  “computer-assisted software engineering”. 
character set   A finite set of different characters that is complete for a given purpose, for example, the 128 ASCII characters.
    ISO (Windows normal), System, Wing-Dings
    Extended characters (ASCII 128-255) are Foreign letters,
       may have different codes in different character set MAPPINGS
check digit   A digit added to numerical data that can be recalculated and hence used to check data integrity after input, transmission and so on.
    Credit card numbers, ISBN book number 
check sum   A sum generated using individual digits of a number and employed as an error-detecting device.
    Internet Packets contain a check sum, the sum of all bytes in the packet 
circular queue  HL icon A queue in which the storage area is fixed (e.g. array) and the first item is held in a location that is logically next to the storage location for the last item of the queue. Data items can be thought of as being arranged in a circle.
    Keyboard queue in a PC
    Like days of the week (repeat in a cycle), an array
     where you go back to the beginning once you reach the end
clash (collision)  HL icon A situation in which two or more entries in a file or other data structure are given the same memory location through the use of a hash table.
    In a HashTable, when two pieces of data belong in the same place (same hash key)
      Locker numbers might be computed from the student's name:
         Jones gets J = 10, o = 15 --> 10*26 + 15 = 235
      Then Johnson and Jones would get the same locker. 
class   Combination of data and operations that can be performed on that data; specification of the data members and methods of the object.
    in Java, every program is a Class.  When you make a NEW object,
     it is a copy of a Class.
client   Desktop computer or terminal used to access a computer-based system.
    A secretaries work-station in a LAN, a PC surfing the Web
client–server    A network architecture in which a system is divided between server tasks performed on the instructions received from clients, requesting information.
    Client sends print-job to a print-server, Client stores data files on the server,
     Web client downloads pages from a Web server
collection   A class designed to hold objects (referred to in the syllabus as data structure).
command language  HL icon A set of procedural operators with a related syntax, used to indicate the functions to be performed by an operating system.
   In DOS, you can write a BATCH FILE to perform backups:
      COPY  *.DOC  A:\

   or to clean up all the useless files:
      DEL  *.tmp  /s

   The commands COPY and DELETE are part of the command language.
   This is NOT a general-purpose programming language - it does not provide variables,      procedures, or input/output functions.

compiler   A program that translates a source program into machine code that can be converted into an executable program (an object program). See also the definition for “interpreter”  .
    C++ , Visual Basic , Pascal - most High Level Languages
    Java uses a compiler to produce p-code, which must run in an interpretter,
      so the Java compiler does not produce "machine code"
    NOT Java-script, which runs directly in an interpretter
computer-assisted software engineering   The automation of well-defined methodologies that are used in the development and maintenance of products. These methodologies apply to nearly every process or activity of a product development cycle, for example: project planning, product designing, coding and testing.
    Visual designer like NetBeans, UML designer, debuggers, run-time effiency profiler
computer architecture   The logical structure and functional characteristics of a computer, including the interrelationships among its hardware and software components.
    Wintel, Mac, Linux, Pocket PC - includes the chips/motherboard and the OS 
computer program   A sequence of instructions suitable for processing by a computer.
    Java application, C++ program (video game), Microsoft Word, Internet Explorer
    NOT a document, web-page, or database
constructor method      A method with the same name as the class that initializes the instance variables of an object of the class when the object is instantiated.
CRC cards    Class, responsibility, collaboration cards. A design tool for classes that lists a class’s name, its responsibilities and the classes with which it collaborates on an index card.
cylinder  HL icon Concentric disk tracks of a hard disk (one on top of the other) form a cylinder.
   With 2 platters, a cylinder consists of 4 tracks, one on each side of each disk

database management system (DBMS) 

abcdefghijklmnopqrstuvwx Top Syl 

  A computer-based system for defining, creating, manipulating, controlling, managing and using databases.
    MySQL ,  MS-Access , Oracle
data bus   The pathway between the memory or peripheral and processing unit that carries data for processing or data that has been processed. See also definitions for “bus” and “address bus”
    Usually the same as the Word-Size in the machine.  
    But a 32-bit bus can be used twice to transfer a 64-bit word.
    Bandwidth = bus width * bus speed, so a 500 MegaHerz bus with 64 bit width
      can transfer 500 million * 8 Bytes = 4 GigaBytes per sec
data compression   A method of reducing the size of data. All redundancy in the data is removed to reduce the storage needed or to speed up transfer. The data can be uncompressed back to its original state.
    WinZip is a compression utility, which implements the Zip algorithm
    .GIF uses LOSSLESS compression , JPEG is LOSSY (removes some details)
    Videos use delta compression, starting with a "keyframe", and after that
      transmitting only the DIFFERENCES (changes) between frames.
data integrity   The correctness of data after processing, storage or transmission.
    Use parity checks, checksums, CRC values
data member   A data type that is a member of a class.
    Variables, arrays, objects inside a class      
data packet   Part of a transmitted message that is sent separately. Apart from containing a portion of the message it will have other data such as check digits, destination address and so on.
    In the Internet, big data files or messages are chopped up into small packets.
    The packets travel through the Internet and are re-assembled at the receiving end,
      without needing to arrive in the same order.  Each packet includes a header with
      the IP address of the destination, IP address of the sender, and error checking code.
data protection   Method of ensuring that personal data is correct and is not misused either by those holding it or others who have no right to access it.
    Encryption, firewall, passwords, physical access protection (locked doors)
data security   Method of ensuring that data is correct, safe and cannot be read or changed by those who have no right to access it.
    Encryption, firewall, passwords
DBMS   See the definition for “database management system”.
debugging tool    A program used to detect, trace and eliminate errors in computer programs or other software.
   Can pause a program in the middle and allow the programer to investigate
    the contents of important variables.
defragmentation software   An application that reads file segments from non-contiguous sections of a storage device and then writes the files to the same device in such a way that each file segment is contiguous.
    Defrag in Windows - there are also 3rd party tools  
De Morgan’s law  HL icon If A and B are Boolean expressions, then
      not (A and B) = (not A) or (not B)         not(A or B) = (not A) and (not B)

      It's not (Sat or Sun) = not Sat AND not Sun
      I'm not big and handsome = either I'm not big or I'm not handsome

dequeue  HL icon To remove an item from the front of a queue. See also the definition for “enqueue”.
     In the doctor's waiting room, when they call the next patient.
     In a network, when the server delivers the next print-job to the printer.
digital data   Discrete data.
     Ages = 10,11,12,13 ,  NOT  10½  or  11.997  years
     Volume levels set to 0,1,2,3,... 99 , using switches rather than a rotating knob.
digital signature   A digital code attached to an electronic message or document, which is unique and which can be used to authenticate the sender or owner. Most often used in electronic commerce.
    In the Internet, a large data file encrypted using a password and Public Key algorithm
    Could also use simpler password technology in a private network (e.g. E-banking)
direct access file   A file organized in such a way that a calculation provides the address (location) of a record so that the record can be accessed directly. The records in the file may be ordered or unordered.
    Usually large databases, such as a telephone directory for an entire country,
     or a database containing airline reservations.  Direct access makes fast access
     possible, which is especially important in large databases.
DMA  HL icon Access to memory and devices without the direct control of the processor. This is most often used for hard disk access and screen display.
   A disk-drive reads and writes directly to/from RAM, rather than sending the data
   through the CPU.  Graphics cards can also use DMA and bypass the CPU.  
   Some cheap systems actually use the main memory RAM to store the graphics data,
   so there is no graphics card in the system - this is cheap but slow and not good for games
disk cache    RAM set aside to speed up access to a hard drive. This may be part of the disk itself or may be incorporated in cache memory.
    typically 8 or 16 MegaBytes
distributed processing   A network in which some or all of the processing, storage and control functions, in addition to input/output functions, are dispersed among its nodes.
     SETI has a screen saver that analyses sets of radio data
       on millions of PCs connected to the Internet.  The PC analyses the data,
       and sends it's results back to a central server.
double buffering   HL icon Two areas of memory set aside for data transfer between the processor and peripherals. As one is emptied the other is filled up in order to speed up transfer.
    Many video games use double buffering, drawing an entire picture
     and then quickly swapping the finished picture to the visible screen.
     Then it draws in the second buffer before swapping it to the screen.
doubly linked list  HL icon A linked list in which each node has both a head pointer and a tail pointer.
    A line of kids holding hands - each kid is connect to both the kid before
     and the kid after.  If used to track disk-drive sector allocation,
     it is possible to reconstruct the list even if one link gets broken.
dynamic data structure   HL icon Data structures that can change in size during program execution. See also the definition for “static data structures”.
     Linked-list, tree, history list in a browser

abcdefghijklmnopqrstuvwx Top Syl 

 HL icon The combination of data and the operations that act on the data to form a single program unit called an “object”.
    Java classes contain both variables and methods in a single package,
    and can protect the variables from incorrect changes by declaring them Private
encryption   In computer security, the process of transforming data into an unintelligible form in such a way that the original data cannot be easily obtained except by using a decryption process.
    PGP (pretty good privacy) is an encryption utility.
    It is a Public Key system, meaning the decryption key can be given out publicly,
    but the separate encryption key is a secret.  Then a properly encrypted message
    can only be sent by the owner of the private key - so the receiver can be certain of
    the identity of the sender.  This provides a "digital signature".
enqueue  HL icon To add an item to the rear of a queue. See also the definition for “dequeue”.
    When another patient enters the waiting room in a doctor's office,
     or you join the end of the queue in the lunch line.
exception   An object that is created when an abnormal situation arises in a program. See also the definition for “exception handler”.
    IOException - an error caused when a file is missing or disk is full
exception handler   A program code that handles exceptions that arise during the running of a program. An exception is thrown to the handler rather than causing a fatal error. See also the definition for “exception”.
    in Java, use  try...catch... to handle exceptions
expression   A sequence of symbols that can be evaluated.
    (3*x - 4/y)  is a numeric expression.
+ ", " + FirstName)  is a string expression. 
    ( (age >= 21) and (country.equals("France") ) )  is a Boolean expression.

fibre optic

abcdefghijklmnopqrstuvwx Top Syl 

  Cabling used for networking that uses fine strands of glass. The medium can carry a great deal of data and it gives a fast transfer rate.
    Internet Backbone,  connections between servers in a server farm
field (object attribute)    A subdivision of a record containing a unit of information. For example, a payroll record might have the following fields: clock number, gross pay, deductions and net pay.
     This class contains two fields:
      class Fraction
      {   int numerator;
          int denominator;
FIFO  HL icon First-in-first-out. See also the definitions for “queue”, “stack” and “LIFO”.
    The lunch-line in the cafeteria (when the students obey the rules).
     NOT an elevator, which is LIFO (last in first out)
file   An organized collection of data.
    Program source code (game.java), Executable (game.exe), Document (game.doc),
    Graphics file (screenShot.jpg), Web-page (index.html)
file manager   An application software that can access, create, modify, store and retrieve files.
    Windows Explorer, when you see the directory tree and can copy and paste files 
fixed-length records  HL icon Records whose size is determined in advance. All such records in a file have the same length. See also the definition for “variable-length records”.
    Name as a String of 30 chars + Age as 32 bit integer = 34 bytes  
fixed point  HL icon The performing of arithmetical calculations without regard to the position of the radix point. The relative position of the point has to be controlled during calculations.
    money always has 2 decimal points, so  5.00 EU or 99.95 EU
flag   An indicator with two possible states, “set” or “not set”, that can be represented by one bit. A flag can be used to indicate that a record can be deleted, to indicate end of input/output and to sense whether an interrupt has occurred.
    found = false            // a boolean flag
    loop through array
        if String matches target
            found = true
    end loop
    return found
floating point  HL icon In floating point arithmetic, the position of the decimal point does not depend on the relative position of the digits in the numbers (as in fixed point arithmetic), since the two parts of the floating point number determine the absolute value of the number.
    Scientific notation
    Avagadros number = 6.02 e +23 , a million = 1.0 e +06 ,  nano = 1 e -9
formal parameter   See the definition for “parameter”.
    the local name of a parameter inside a method, e.g. number in method below
         double root = cubeRoot( 125 ) ;

         public double cubeRoot(double number)
         {  return  Math.pow(number,1/3); }
formatted output   Data prepared for output in order to be displayed in a desired format (for example, trailing zero on 7.50$ instead of 7.5$).
    formatting a Date as "dd mmm yyyy"
    12/25/06 -->    25 Dec 2006

fully-indexed file  HL icon A file in which, although the records are unordered, a particular record can be found using a sequential access to the index of the file followed by direct access to the data file. See also the definition for “partially-indexed file”.
    A telephone list is fully indexed - has an entry for each person -   
    but could reference a more detailed file with more data.

    NOT a partially indexed file, with sections for each letter,
    or the index of a book which only contains some of the words



abcdefghijklmnopqrstuvwx Top Syl 

 HL icon A link between two computer systems that converts data passing through into the formats needed for each system.
    proxy server for connecting a LAN to the Internet  
graphics tablet
(graphics pad)
  An input device on which the user writes or designs. The image is reproduced on the screen.
    Used by graphic designers, artists (NOT a mouse)  
GUI   Graphical user interface.
    Windows OS, Swing and AWT in Java  


abcdefghijklmnopqrstuvwx Top Syl 

  Obtaining unauthorized access to protected resources.
    Trying to guess a password, resetting the date in a shareware program,
     using a hex-editor to modify a program 
handshaking  HL icon The exchange of predetermined signals when a connection is established between two devices or components.
    The horrible noise a modem makes when you "dial-up" your ISP
    An exchange of signals between a web-client and web-server, to exchange
      IP addresses and agree on a transmission protocol, e.g. FTP or HTTP.
hash code  HL icon A method of coding to obtain a search key for the purpose of storing and retrieving items of data.
   Storing names of telephone customers by using the telephone number to choose the     position in the array, assigning lockers according to the student's name like this:
        Len(Name)*100 + (sum(ASCII codes) mod100)
hash table  HL icon A table of information that is accessed by way of a shortened search key (the hash value).
    An array or file accessed via a hash-code such as all the phone numbers
     in a country (see hash code)
hexadecimal   A system of numbers with the base 16; hexadecimal digits range from 0 to 9 and from A to F, where A represents 10 and F represents 15.
    FF hex --> 255 dec       B9 hex --> 11*16 + 9 = 185 
high-level language   A programming language whose concepts and structures are convenient for human reasoning. Such languages are independent of the structures of computers and operating systems.
    Basic, Pascal, C++, Cobol, Fortran
    NOT machine code (what the CPU understands)
HTML (Hyper Text Markup Language)   A computer language used to construct web pages. Tags are used to denote the way in which text and graphics are to be displayed. The language is interpreted by a browser to display the pages.
    Web-pages look like this on the inside:
           The <B>Best</B> Film of the Year
hub   In networking, a switch that sends data to the stations to which it is attached.
    4 port or 16 port hubs used for LAN game parties  

IDE (integrated development environment)

abcdefghijklmnopqrstuvwx Top Syl 

  A programming tool that gives programmers a single environment (that is, the hardware and software environment in which the program runs) for building programs rather than using individual editors and debuggers.
    NetBeans for Java,  NOT a simple text editor  
identifier   The name or label chosen by the programmer to represent a variable, method, class, data type or any other element defined within the program.
    int AGE, method SEARCH ,  keyword  VOID
infix notation  HL icon A notation for representing logical operators in which the operator is written between the operands, for example, A+B or A*B.  See also the definitions for “postfix notation” and “prefix notation”.
    A+B or A*B  ,   NOT  Math.sqrt(25)  ,  NOT RPN
inheritance  HL icon The name given to the property whereby an object, which extends another object, inherits the data members and member functions of the original.
    in Java, use EXTENDS  

    class  PERSON
    {     String NAME;
          String PHONE;

    class STUDENT extends PERSON
    {    String GRADE ;
         String  PARENTS ;

    class TEACHER extends PERSON
    {     String CLASSROOM;
           double  SALARY  ;

    TEACHER and STUDENT have both inherited NAME and PHONE from PERSON,
      but have added on fields needed only by a student or a teacher.

in-order traversal  HL icon Traversal of a tree visiting the nodes in the order left-child, parent, right-child. See also the definitions for “pre-order traversal” and “post-order traversal”.
     void INORDER(NODE  P)
         if  (P.LeftChild != null)

        output( P.DATA);   

        if  (P.RightChild
!= null)
insertion sort  HL icon A sort in which each item in a set is inserted into its proper position in the sorted set according to a specified criterion. See also the definitions for “bubble sort”, “selection sort” and “quicksort”.
    Start with an empty array
    Put first data item in position 1
= 1
         get a new data item
         loop from position
0 to SIZE-1
             find appropriate place for new data item
                then insert new data item in that position
= SIZE + 1
    until no more data
interface    The hardware and associated software needed for communication between processors and peripheral devices to compensate for the difference in their operating characteristics.
    Parallel Printer Interface, IDE interface for hard-disks,
    USB port (Universal Serial Bus)
interpreter   A program that translates and executes each instruction of a programming language before it translates and executes the next instruction. See also the definition for  “compiler”.
    Scripting languages in web pages (VBscript, JavaScript)
    Older versions of BASIC, Visual Basic if you don't run with "full compile"
    NOT C++ or Fortran, which are normally compiled
interrupt   HL icon A suspension of a process, such as the execution of a computer program caused by an external event, performed in such a way that the process can be resumed.
    When you press a key on the keyboard, the keyboard sends an interrupt signal
    to the CPU, which reads the keystroke and displays the result
ISDN (integrated services digital network)  HL icon An international communications standard for sending voice, video and other data over digital telephone lines.
    2 channels , each has 64 KiloBits per second
ISO   International Organization for Standardization.
    ISO 9660 CD-ROM standard,  ISO 8559 character sets (Latin-1, Hebrew, etc)
    ISO 10646 Unicode, Wikipedia has a complete list 
iteration   The process of repeatedly running a set of computer instructions until some condition is satisfied.
    for loop,  while loop, any other loop  

JPEG (joint photographic expert group)

abcdefghijklmnopqrstuvwx Top Syl 

  A recognized standard of compression of graphics files that has some loss.
    uses LOSSY compression by eliminating small details      

abcdefghijklmnopqrstuvwx Top Syl 

 HL icon
  1. In computer security, a sequence of symbols used with a cryptographic algorithm for encrypting or decrypting data.
    Public Key cryptography uses separate keys for encryption and decryption,
    so only one person can send, but anyone can receive
  2. In databases, the key of a record is a field with a unique value that can be used to locate that record.
    an ID number, like a social security or passport number 


abcdefghijklmnopqrstuvwx Top Syl 

  See the definition for “rotational delay”.
    waiting for a web-page to download, waiting for a video to start  
left-child  HL icon In a tree, the node to the immediate left of a parent node.
See also the definitions for “parent” and “right-child”.
    See TREE 
library manager  HL icon Many programming languages permit user-defined functions to be stored centrally and re-used in various programs. This central storage is called a “library”. A library manager is a utility program that catalogues, pre-compiles and links library modules.
    In Java, libraries are the standard CLASSES provided with the compiler.
    There is not "manager" as such, but IDEs like NetBeans do some management.
LIFO  HL icon Last-in-first-out. See also the definitions of  “stack”, “queue” and “FIFO”.
    Stack, history list in a browser (the back button), undo functions in editors
linked list  HL icon A data structure technique of storing data in different areas of memory rather than in a contiguous block and keeping track of the data using pointers.
      Head                              Tail
        \                                /
       Al  --> Bob  -->  Carla --> null 
linker  HL icon A utility program that brings together the object modules, operating system routines and other utility software to produce a complete, executable program.
    Windows does this when using .DLLs (Dynamic Link Libraries)
loader  HL icon A program that copies an object program held in memory into the memory area designated by the operating system for execution.
    When you double click an application in Windows.
    Also, Windows loads the correct app when you click on a data file (document). 
local area network (LAN)   A computer network where all the computers are directly linked by cables and/or microwave transmission. This is usually located on a user’s premises within a limited geographical area. See also the definition for “wide area network (WAN)”.
    The network in our school, without the internet connection.  You might also
    have a small LAN at home, connecting a few PCs without a server.
    NOT the Internet
local variable   A variable that is defined and is capable of being used only in one specified program block.
    Variables declared inside a method
    NOT global variables
logic circuit  HL icon A circuit whose output can be determined by knowing the input and by following the path through the logic gates.
    Half Adder , Full Adder , Burglar alarm
logic error   An error arising from an incorrect appreciation of the problem leading to an incorrect action being performed and hence a false result being produced.
   if  (Today.equals("Sat") || Today.equals("Sun") && Season.equlas("Summer") )
   {    Swimming = true; }
   {    Swimming = false; }   

  This returns true on Saturday during the winter - it needs parentheses:  

     if ( (Today .equals("Sat") || Today.equals("Sun") )  && (Season.equals("Summer") ) )

  This is NOT a syntax error, as the program can execute.  
  But it gives the WRONG RESULT.

logic gate  HL icon A combinational circuit that performs an elementary logic operation and usually involves one output.

magnetic ink character recognition (MICR)

abcdefghijklmnopqrstuvwx Top Syl 

  The identification of characters through the use of magnetic ink. See also the definition of “OCR”.
    Dark black, strangely shaped letters at the bottom of personal checks.
    The ink is magnetic - the reader is NOT optical.
mainframe   A computer, usually in a computer centre, with extensive capabilities and resources to which other computers may be connected so that they can share facilities.
    Banks use mainframe computers to store customer accounts for millions of customers.     Research labs use mainframes to do very complex calculations on large sets of data.

    NOT a PC 

master file        A permanent file holding information that can be accessed and that is periodically updated by processing with a transaction file. See also the definition for “transaction file”.
    All the student data in a schools database.  When a new student enrolls,
    or a student leaves, the database must be changed. 
memory address register (MAR)   Holds the address in memory of the instruction at present being executed.
    also called the Program Counter
memory manager    HL icon A program that is usually part of the operating system that controls the allocation of memory to various applications. It is particularly important in multi-tasking systems where applications might otherwise cause conflicts, and for implementing virtual machines and virtual memory.
   Windowscontains a memory manager - any MULTI-TASKING OS must contain
   a memory manager, but you cannot see it.  

    NOT DOS - there is no memory manager - each program occupies the entire memory -
    this is a single-tasking system

memory mapped I/O   See the definition for “DMA”.
    Assigning PORT numbers or Interrupt numbers to peripheral devices
menu   A display of a list of optional facilities that can be chosen by the user in order to carry out different functions in a system.
    File, Edit, View menues in Windows apps
  1. The behaviour or operation of an object.
  2. The procedure used by an object as specified within the object class. See also the definition for “method signature”.

    Normal methods are CALLED by the main program
    The actionPerformed method in an AWT app is called automatically by Windows
      when a GUI event occurs
    A Constructor is a special kind of method that only runs when the object is instatiated

method signature   The number and types of arguments of a method.
    Just the header line of the method, e.g.   void boolean Search(String target)
MICR   See the definition for “magnetic ink character recognition”.
microprocessor   An integrated circuit incorporating the main components of a central processor. These circuits are used for microcomputers and small devices controlled by computer.
    Pentium or AMD chip in a PC
    Smaller CPUs, 6502 or Z80 , can be used as EMBEDDED processors
      to control simple operations in an engine, heater, photocopier, etc.
microwave transmission   A method of electronic communication that does not require cables.
  Transmitted by the big dishes (like satellite dishes) you see on top of a switching station.
   NOT cell phones (handies)
modem   An abbreviation for “modulator/demodulator”: a piece of electronic equipment that converts digital signals from a computer into audio signals that are transmitted over telephone lines, and converts them back again.
   US Robotics 56 K, you must "dial up" to use these
    NOT DSL or ISDN, which transmit digital signals across the telephone wires
modular language   A language in which a complete program can be broken down into separate components (modules), each of which is to some extent self-contained. For example, the scope of variables can be limited to a module and does not extend through the entire program. See also the definition for “top-down design”.
    In Java, the use of separate CLASSES, as well as using METHODS inside
    each class, as well as LIBRARY classes (java.awt, java.io, etc)

    Old languages like C were NOT modular - any program was just
    one long list of instructions.

modularity    One aspect of structured programming in which individual tasks are programmed as distinct sections or modules. One advantage is the ease with which individual sections can be modified without reference to other sections.
    see Modular Language  
module   A self-contained subset of a program.
    method, class, ADT
modulo arithmetic   Arithmetic that uses the integer result and integer remainder of division as two separate entities.
   in Java, the % sign -->   23 mod 5 = 23 % 5 = 3
multi-tasking   A mode of operation that provides for concurrent performance, or interleaved execution, of two or more tasks.
    Running several different downloads at once, running IE and Word simultaneously and     copying parts of a web-page into word, background printing at the same time as you are     typing or surfing the web 
multi-user system   A system that allows two or more people to use the services of a processor within a given period of time.
    NOT just a LAN, where service requests come at various times, but SIMULTANEOUS     access, such as a printer with several PCs connected.  A LAN game is actually a good     example, where many users are constantly be served. 
multi-processing   The simultaneous execution of two or more computer programs or sequences of instructions by a computer (parallel processing).
    "TRUE" Parallel processing requires multiple CPUs - not common in PCs, but pretty     common in Sun Work Stations and larger servers. 


abcdefghijklmnopqrstuvwx Top Syl 

 HL icon The output of “nand” is False only if all inputs are True, otherwise the output is True.
    The opposite of AND:   0 nand 0 = 1     0 nand 1 = 1     1 nand 1 = 0 
network   Any set of interconnected computer systems that share resources and data. See also the definitions for “networking”, “local area network (LAN)” and “wide area network (WAN)”.
    LAN (intranet), World-Wide-Web (Internet)
networking    Making use of the services of a network. See also the definitions for “network”, “local area network (LAN)” and “wide area network WAN”).
  1. In the terminology of tree structures, each position in the tree is called a “node”.
       Tree, Linked-List
  2. Any device on a computer network that can be addressed so that it can be contacted by other computers.
       Client, Server, Router
  3. A “host” computer on a network.
       Work station
nor  HL icon The output of “nor” is True if all statements are False, False if at least one statement is True.
    The opposite of OR :     0 nor 0 = 1     0 nor 1 = 0      1 nor 1 = 0 
not   The output of “not” for a statement P is True if P is False, False if P is True.
     not 0 = 1         not 1 = 0 
     A and (not A)  --> never true

abcdefghijklmnopqrstuvwx Top Syl 

  An object is a combination of data and the operations that can be performed in association with that data. Each data part of an object is referred to as a data member while the operations can be referred to as methods. The current state of an object is stored in its data members and that state should only be changed or accessed through the methods. Common categories of operations include: the construction of objects; operations that either set (mutator methods) or return (accessor methods) the data members; operations unique to the data type; and operations used internally by the object.
    A List-Box, which has PROPERTIES and METHODS 
object-oriented programming (OOP)    An approach to programming in which units of data are viewed as active “objects” rather than the passive units envisioned by the procedural paradigm.
    JAVA is strictly object-oriented.
    Older languages, like C and BASIC, did not have objects, so they were not OO.
OCR   Optical character recognition (reader). Refers to the use of devices and software to “read” characters and translate them into ASCII characters for later processing. Applications of OCR include the scanning of printed documents to convert the text into digital ASCII text that can then be edited in word processors.
    Scan a newspaper, use OCR to change the text into a document format,
    and then edit the document using Word.
OMR forms   Optical mark and read forms.
    Answer sheets in the SAT exam (bubble in sheets) 
on-line   When a user has access to a computer via a terminal.
    Surfing the web, printing in the computer lab
    NOT typing an essay at home without a modem or network
on-line processing (interactive)   Data processing in which all operations are performed by equipment directly under the control of a central processor, for example, airline reservations.
    Airline reservations, Automatic Teller Machines
    NOT a robot controller, which does not involve a user
open systems interconnection (OSI)  HL icon A set of protocols allowing different types of computers to be linked together.
    Consists of 3 levels :        
         Application Level -->  Browser, Word-processor
         Transmission    -->   TCP/IP protocol , ethernet
         Hardware        -->  network adapter, wires, hubs
operand  HL icon In an arithmetical expression, the operand is the data that is to be operated on.
     In   A * B + 4 ,  the operands are A,B, and 4
operating system (OS)   Software that controls the execution of programs and that may provide services such as resource allocation, scheduling, input/output control, and data management.
    Windows, Linux, DOS,  Mac OS
operator  HL icon A character or string of characters that designate an operation. See also the definitions for “binary operator” and “unary operator”.
    In   A * B + 4 , the operators are  * and +  
operator precedence    In programming languages, an order relation defining the sequence of the application of operators within an expression.
    parentheses first , * before +  ,  && before ||
or   The output of “or” is True if at least one input is True, otherwise the output is False.
    In Java || ,   0 or 0 = 0       0 or 1 = 1     1 or 1 = 1
overflow  HL icon The generation of a quantity, as a result of an arithmetic operation, that is too large to be contained in the result location. See also the definition for “underflow”.
    9 billion  is an overflow for 32-bit integers

    9.99 e 999  is an overflow for a double 


abcdefghijklmnopqrstuvwx Top Syl 

 HL icon A group of bits made up of control signals, error control bits, coded information and the destination for the data.
    In the Web, all data is transferred is small packets of 1-4 Kb 
    see also Data Packet
packet switching  HL icon A method of transmitting data in which the data packet is transmitted as one entity irrespective of the whole message.
    Routers read the destination address in a packet header and decide the
    best route to reach the destination quickly
parallel interface   HL icon An interface through which a computer transmits or receives data that consists of several bits sent simultaneously on separate wires. See also the definition for “serial interface”.
    Printers, Disk-drive interfaces
    NOT USB (Universal Serial Bus)
parameter  HL icon A parameter is passed to a routine or method by variable name and type. When the code is run, the parameter is replaced by the value of the variable, and becomes the argument of the routine, referred to by the variable name in the definition.
         double root = cubeRoot( 125 ) ;         // 125 is the ACTUAL parameter

         public double cubeRoot(double number)   // number is the FORMAL parameter
         {  return  Math.pow(number,1/3); }
parameter passing    The assignment of values to parameters to be used in a procedure.
    In Java, all parameters are passed BY-VALUE, so it is not possible to change
     the value of the actual parameter (in the calling routine).  But if an OBJECT is
     passed, it's CONTENTS can be changed.   This is similar to PASS-BY-REFERENCE
     in other languages.
parent (node)  HL icon The node immediately above a given node, at the next level up. There can only be one parent node for each node, but different nodes may share the same parent.
    see TREE 
parity bit    A binary digit appended to a group of binary digits to make the sum of all the digits, including the appended binary digit, either odd or even as established beforehand.
    Data = 10101100 -->  Parity bit 0 (for even parity)
    Data = 11111110 --> Parity bit 1 (for even parity)
    For odd parity, the parity bit is reversed 
parsing  HL icon The breaking down of high-level programming language statements into their component parts during the translation process. An example would be identifying reserved words and variables.
    In an Airport data file:
        LHR London, England [Heathrow Airport], United Kingdom
    this string would be PARSED into it's separate pieces:
        Code = "LHR"
        Name = "Heathrow Airport"
        Location = "London, England"
        Coutnry = "United Kingdom"
partially-indexed file  HL icon A file in which records are ordered in groups. Sequential access to an index followed by direct access to the first record in the group, then sequential access to the desired record, retrieves a particular record. See also the definition for “fully-indexed file”.
    Making a A, B, C sections in a dictionary or phone-book 
pass-by-reference   The parameter-passing mechanism by which the address of a variable is passed to the subprogram called. If the subprogram modifies the formal parameter, the corresponding actual parameter is also changed. In Java, all objects, including arrays, are passed-by-reference. See also the definition for “pass-by-value”.
    Arrays are commonly passed by reference, to avoid making a copy of a large amount of        data, and so that the result of a sorting algorithm actually changes the original array
    See Parameter Passing (above)
pass-by-value    The parameter-passing mechanism by which a copy of the value of the actual parameter is passed to the called procedure. If the called procedure modifies the formal parameter, the corresponding actual parameter is not affected. In Java, all primitives are passed-by-value. See also the definition for “pass-by-reference”.
    If a CONSTANT is to be passed, it must be passed by value.
       e.g.   output CUBEROOT(27)

    See Parameter Passing (above) 
peripheral device    Any device that can communicate with a particular computer, for example: input/output units, auxiliary storage, printers.
     keyboard, mouse, monitor, printer
pointer   HL icon A reference to an address that enables the retrieval of a data item or record. Used in dynamic data structures to move from item to item.
    In Java, Objects are pointers to the actual memory location containing the Object data.
    linked-list pointers, like HEAD and TAIL and NEXTNODE 
pointing device   An instrument, such as a mouse, trackball or joystick, used to move an icon (sometimes in the form of an arrow) on the screen.
    mouse, joystick, stylus (small pen for pocket computer) 
polling  HL icon Interrogation of devices for such purposes as avoiding contention, determining operational status, or determining readiness to send or receive data.
    Older home-computers used polling to check whether a key had been pressed -
      the CPU checks each key at regular intervals.  This is not used much any more -
      now everything is INTERRUPT DRIVEN
polymorphism  HL icon The ability of different objects to respond appropriately to the same operation.
   + can be used to add numbers, or to concatenate strings.
     3 + 4 + 5 -->  12       "3" + "4" + "5" --> "345"
   In Java, the same Method name can be polymorphic, by assigning
     different parameter lists in the signature, e.g.
        boolean Search(String target)...
        boolean Search(String target, String[] data)...
pop  HL icon To remove an item from the top of a stack.
    see Stack
port  HL icon An access point for data entry or exit.
    Standard HTTP port = 8080,  Standard FTP port = 21
postfix notation  HL icon A method of forming mathematical expressions in which each operator is preceded by its operands and indicates the operation to be performed on the operands or the intermediate results that precede it; for example, A added to B and the sum multiplied by C is represented by the expression AB+C*. See also the definitions for “infix notation” and “prefix notation”.
   Reverse Polish Notation (RPN):    3  4  *  5  6  +  -   =  1  
post-order traversal  HL icon Traversal of a tree by visiting the nodes recursively in the order left-child, right-child, parent. See also the definitions for “pre-order traversal” and “in-order traversal”.
   see TREE
prefix notation  HL icon A method of forming mathematical expressions in which each operator precedes its operands and indicates the operation to be performed on the operands or the intermediate results that follow it. See also the definitions for “infix notation” and “postfix notation”.
    Typcially seen in programming languages:
        subtract( mult(3,4) ,  add(5,6) ) -->  1
pre-order traversal  HL icon Traversal of a tree by visiting the nodes recursively in the order parent, left-child, right-child. See also the definitions for “in-order traversal” and “post-order traversal”.
    see TREE
primary memory    The part of the memory where the data and programs that are in use at the time are stored.
    RAM or ROM or CACHE ,  NOT disk storage 
primitive data type   Integer, real, character or Boolean data types.
    in Java,  int , double, char , String (sort of)
    NOT an array or an object instantiated from a class
private class members   Members of a class that are only accessible from methods inside the class.
    In a Calendar class, a Date might be made private,
    and accessed with getDate and setDate, to ensure that dates
     are always valid (e.g. not Feb 32)
program counter  HL icon A register that holds the address of the next instruction to be fetched in the fetch execute cycle.
    After each command is executed, the PC is automatically incremented
     to point at the next command.
protocol    An internationally agreed set of rules to ensure transfer of data between devices. A standard protocol is one that is recognized as the standard for a specific type of transfer. For example, TCP/IP.
    TCP/IP (Transmission Control Protocol / Internet Protocol)
prototyping   The construction of a simple version of a system in the design stage, showing the user interface but without full processing behind it. This allows the user to propose changes at the design stage.
    Might consist of a sample User Interface, with simple STUB methods
pseudocode   An artificial language used to describe computer program algorithms without using the syntax of any particular language. During the development of an algorithm, pseudocode often contains sections in natural language that will be replaced later.
    Open datafile
    loop through entire file
    at each item, print the item if it starts with "A"

    Should be less detailed than a computer program, but should show loops
     and method calls

public class members    Members of a class that are accessible from anywhere and from any class.
    Constructors must be public (or protected) - otherwise the class cannot be instantiated
push  HL icon To add an item to the top of a stack.
    See STACK


abcdefghijklmnopqrstuvwx Top Syl 

 HL icon An abstract data structure where items are inserted at one end and retrieved from the other end (FIFO). (The standard operations are given in 5.2.7.)
    Print-server queue, keyboard queue, line in the cafeteria
quicksort  HL icon A sort in which a list is first partitioned into lower and upper sublists for which all keys are, respectively, less than some pivot key or greater than the pivot key. See also the definitions for “bubble sort”, “selection sort” and “insertion sort”.
    Effiency = O(n log n)
real-time processing

abcdefghijklmnopqrstuvwx Top Syl 

  The manipulation of data that is required or generated by some process while the process is in operation; usually the results are used to influence the process, and perhaps related processes, while it is occurring.
    the auto-pilot in an airplane, control devices in a nuclear power plant
    NOT a game simulation of the stock market, where the actual time does not matter
       and there is no real connection to the real world
record   An aggregate that consists of data objects, possibly with different attributes, that usually have identifiers attached to them. See also the definition for “field”.
    in Java, use a class to group data items together, e.g.
    class Student
    {   String name;
         int  grade;
         String born;
recursion  HL icon The process whereby a method refers to itself. In many programming languages, a procedure or function can call itself.
    Binary search, tree traversals     
reference  HL icon Contains the location in memory of an object. The object can contain many individual data members.
    in Java, every object contains a REFERENCE to it's storage.
    You can copy this reference, making extra references.  
    In a linked-list search:
         Node temp = head;
    makes temp as another reference to the same object that head points at.
register  HL icon A part of internal storage that has a specified storage capacity and is usually intended for a specific purpose.
    Old Intel processors contained AX, BX, CX, DX registers, each of which can hold
       a 16 bit integer, and they can be added or multiplied together.  
    All processors contain and Program Counter Register which keeps track of
       the memory address of the current instruction in the program.
requirements specification      A document that sets out the customer requirements of a computer system. It is written as part of the systems analysis and can be used later to evaluate the system when implemented.
    Goals, hardware requirements, development time limits (deadlines), cost limits
right-child  HL icon In a tree, the node to the immediate right of a parent node.
See also the definitions for “parent” and “left-child”.
robotics   The techniques used in designing, building and using robots.
    Automobile assembly line robots, rescue robots which can work deep underwater
    where it is unsafe for human beings.  Robotics includes issues like real-time processing,
    sensing, and artificial intelligence
robustness   A term used to describe the ability of a program to resist crashing due to incorrect input or incorrect intermediate results.
    Good error handling prevents crashes:

        if  (COUNT != 0)
        {    AVERAGE = TOTAL / COUNT;  }

   Without the if..then.. error handler, the program is less robust and might crash
   due to a division-by-zero error.

rotational delay    HL icon In a disk drive, the time required for the disk to revolve until the correct sector is under/over the read/write heads.
    at 7200 rpm, maximum rotational delay is  1/7200 sec = 0.14 milliseconds
router   A device that identifies the destination of messages and sends them via an appropriate route.
    In the Internet, a powerful computer with multipile network connections.
    Receives packets, reads destination address, and sends the packet to another router. 

search engine 

abcdefghijklmnopqrstuvwx Top Syl 

  A program that searches a large database to find matching items. The most common use of a search engine is to find Internet addresses based on given key words.
    Google, Yahoo, Ask Jeeves
secondary memory    A type of memory that allows a user to store data and programs for as long as desired, in, for example, a hard disk drive.
    Disk-Drive, Floppy, CD-ROM, Flash-Eprom, Memory stick or
      SD card in an MP3 player or digital camera
sector  HL icon The smallest accessible storage unit on a disk. The point at which the sector intersects with a track is used to reference the location.
    In a hard-disk, each TRACK (circle) is divided into sectors, typically 64.
security   Security in the context of computing is a large subject but in outline it might refer to:
  1. risk to hardware
      fire, power surge, theft
  2. risk to software
      corruption, deletion, incorrect changes (bad programming), viruses
  3. risk to information.
      data-entry errors, deletion, privacy violations
seek time  HL icon In a disk drive, the time taken for the read/write heads to position themselves over the appropriate track. See also the definition for “rotational delay”.
    average seek time for HDD is generally under 10 millisec  
selection sort   A sort in which the items in a set are examined to find an item that fits specified criteria. This item is appended to the sorted set and removed from further consideration, and the process is repeated until all items are in the sorted set. See also definitions for “bubble sort”, “insertion sort” and “quicksort”.
    Find largest item in list
    Swap it into position 1
    Find largest item in positions 2..max
    Swap into position 2
    Repeat through all positions
semantics   The relationships of characters or groups of characters to their meanings, independent of the manner of their interpretation and use.
    Output, Print, Put have similar semantic meanings,
      but perform significantly different operations.
sensor   A device that detects measurable elements of a physical process for transfer to a computer.
    Thermostat (temperature sensor), electric-eye (optical) in a burglar alarm,
      motion sensor to automatically turn a light on
sentinel  HL icon A special value that marks the end of a set of data. Also called an “end of data marker” or “rogue value”.
    "xxx" to mark the end of an array of strings 
sequential access   An access method in which records are read from, written to, or removed from a file based on the logical order of the records in the file.
    Tape drives , Text-Files
    NOT disk-drives which are Random Access
sequential file   A file in which records are ordered and are retrieved using sequential access.
    a Text File of names
     NOT a random-access file containing records with fixed-length fields
sequential search    A search in which records in a file or in another data structure are examined one by one in the order in which they were entered until a specified criterion is met or until there are no more records to examine. See also the definition for “binary search”.
    for (int x = 0; x < data.length; x=x+1)
    {  if (data[x].equals(target) )
       {  output("Found"); }

NOT a binary search  

serial interface  HL icon An interface through which a computer transmits or receives data, one bit at a time. See also the definition for “parallel interface”.
    USB (Universal Serial Bus) , modem - only 1 data wire
    NOT a parallel printer interface, which has 8 data wires  
  1. A program that provides services requested by client programs.
        Printer server or file server in a LAN 
  2. A computer that provides services to another computer connected over a network.
signature   A combination of specifiers, the method name and the parameter list, that uniquely identifies the method.
    in Java, the first line (header) of a method
simulation   The use of a data processing system to represent selected behavioural characteristics of a physical or abstract system.
    flight-simulator, stock-market analysis program, scientific experiment simulations 
single-tasking   A mode of operation that allows only one program to be in use at any time.
    a DEDICATED or EMBEDDED computer, like a controller for heating system.  
    Also DOS programs, which take over the entire computer and
       don't allow other programs to run
single-user system   A system that only allows one user at a time.
    a PC, some game consoles, a cell phone, GPS computer
    NOT a game console with multiple game-controllers, NOT a server
software design   The systematic application of scientific and technological knowledge, methods and experience to the design, implementation, and testing of software to optimize its production and support.
     also known as Software Engineering, including data-flow diagrams, testing strategies
software reuse  HL icon Creating classes that operate on a wide variety of different objects, and can be “dropped into” a current project, leading to reduced software cost and increased reliability.
    classes in Java, methods instead of copying and pasting code, Windows .DLL modules
speech recognition (voice recognition)     A process of comparing spoken words with those stored in the system.
    voice input for a word-processor
stack  HL icon An abstract data structure where only the top is accessible for the insertion and retrieval of items (LIFO).
    used by OS for temporary storage of procedure return addresses
      and values of parameters
    Push(data) --> add data to the top of the Stack
    Pop()  -->  remove most recent data from the top of the Stack 
    Top -->  pointer to the top of the Stack, usually private
star topology   A network in which each device is connected to a central hub. See also the definitions for “tree topology” and “bus topology”.
    Like lab 329, each workstation has it's own wire connecting it to a central switch  
static data structure    Data structures of which the size and nature are determined before a program is executed.
    Arrays, like   String[] days = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
storage requirements   A description of how much memory is required during the running of the program.
    Should be part of the requirements specification from the analysis and design
storyboard   A diagrammatic form of a prototype showing a planned sequence of screen displays, demonstrating the different paths available to the user.
    A plan of screen-shots and processing steps connected to a Use-Case (user story)
structure diagram   A diagram that represents the working relationships between the parts of a system or program.
    Top-down hierarchical chart, data-flow diagram
    NOT a flow-chart, which shows sequences of processing steps
subclass  HL icon A class that extends the attributes and methods of a parent class.
     see Inheritance - Teacher is a subclass of Person
subprogram   A program invoked by another program.
     a method or a class
subtree  HL icon A tree that is part of another tree.
    see TREE
superclass  HL icon A class that provides its attributes and methods to a subclass.
    see Inheritance - Person is the superclass of Teacher
syntax   The rules that govern the structure of language statements; in particular, the rules for forming statements in a source language correctly.
    in Javascript, write :  var x = 0;
    in Java, write :   int x = 0;
syntax error   An error in the rules that govern the structure of language statements.
    System.outprinting "Hello!)    --> contains several syntax errors 
    NOT a run-time error, such as division by zero
system documentation   Documentation of the result of the systems analysis stage giving the purpose of the system, the required inputs and outputs, a test plan and the results that are expected.
    similar to the user-manual
system life cycle   The course of development changes through which a system passes from its conception to the termination of its use; for example, the phases and activities associated with the analysis, acquisition, design, development, testing, integration, operation, maintenance, and modification of a system.
    going from version 7 to version 8 of a commercial application
    redesigning and reprogramming a database to meet new requirements
systems analyst   A person who carries out a systematic investigation of a real or planned system to determine the information requirements and processes of the system, and how these relate to each other and to another system.
    Normally an engineer with deep understanding of the problem area,
     e.g. the systems analyst for an airline ticket database should know
     a great deal about airline operations.
systems design    The investigation and recording of existing systems and the design of new systems.
    Might be a very experienced and highly competent programmer
systems flowchart   A flowchart used to describe a complete data processing system, with the flow of data through the clerical operations involved, down to the level of individual programs, but excluding details of such programs.
    Librarian ---> [Check out] -->  Daily Transactions
                                                       [ Batch Update ]   <--  Master File
                                                           /                 \
                                              Error Log                \--->    New Data File

TCP/IP (transmission control protocol/Internet protocol)

abcdefghijklmnopqrstuvwx Top Syl 

  A set of communications protocols used to connect hosts on the Internet.
     IP address = 32 bit integer, written 


top-down design   A method of solving a problem by breaking it down into smaller subproblems. These are then broken down in turn until ultimately a pseudocode representation is obtained that can be used as a basis for program construction. See also the definition for “modular language”.
    Problem --> Tasks --> program features --> sub-programs + data structures
trace   A record of the execution of a computer algorithm exhibiting the sequences in which the instructions were executed.
  What is printed by this algorithm?          Trace Table
                                                               C           X          X > 0 ?     Output
   int C
= 0;                                             0
   int X
= 10;                                                       10      
   while(  X > 0)                                                                True
   {  C
= C + 1;                                        1
       X = X
/ 2;                                                       5 
       output(C+","+ X);                                                                      1 , 5
   }                                                                                     True
                                                              .... etc.....
track  HL icon A series of concentric rings placed on a disk surface by the operating system.
    a typical Hard Disk might have 1024 tracks
transaction file        A temporary file holding data that is later used for processing, generally to update a master file. See also the definition for “master file”.
    The daily sales receipts in a store - each sale is a transaction -
     these are posted in a batch update each evening.
translator   A computer program that transforms all or part of a program expressed in one programming language into another programming language or into a machine language suitable for execution. See also the definitions for “compiler” and “interpreter”.
    Compiler, interpreter
tree  HL icon A non-linear data structure (representing a strictly hierarchical system of data) where each data item is thought of as a node.
                                 /             \
                     (parent)             (leaf)
                      /         \
           (left child)   (right child)
tree topology   A network that combines the characteristics of bus and star topologies. Groups of star topologies are connected to a central cable. See also the definitions for “star topology” and “bus topology”. 
truncation  HL icon
  1. The process of approximating a number by ignoring all information beyond a set number of significant figures. Truncation error is the error introduced by this process.
        In Java,  Math.floor(3.7) -->  3.0
        Internally,  3.1415926892827376  -->  3.14159  automatically truncated
  2. The deletion or omission of a leading or a trailing portion of a string in accordance with specified criteria.
        In Java,   String.trim()  removes leading and trailing spaces.
truth table  HL icon A table that describes a logic function by listing all possible combinations of input values and indicating the output value for each combination.

     A      B       A xor B       A and B      (A xor B) or (A and B)
     0        0              0                0                               0
     0        1              1                0                               1
     1        0              1                0                               1
     1        1              0                1                               1

    By looking at the last column, we see that

         (A xor B) or (A and B)  ==  A or B     (equivalent) 

two’s complement   HL icon A method of representing negative numbers in the binary system.

    01010011 -->  64 + 16 + 2 + 1 = 83
    10101100 -->  -128 + 32 + 8 + 4  = -84
    10101101 -->  -83

    The "two's complement" of a number is formed by switching all the 0's to 1's
    and all the 1's to 0's, and then adding 1 .   This creates the negative of the
    original number.  The entire system is called "Two's Complement Notation"

unary operator

abcdefghijklmnopqrstuvwx Top Syl 

 HL icon An operator requiring only one operand to give a single result; for example, negation (overbar for a Boolean expression). See also the definition for “binary operator”.
    c++ ;  - 6 ;  ! a
unbalanced tree  HL icon A tree in which the right and left subtrees have heights differing by more than one. See also the definition for “balanced tree”.
    See balanced tree
underflow  HL icon The generation of a result whose value is too small for the range of the number representation being used. See also the definition for “overflow”.
    Actually, the limit is  e-300, which has 300 zeroes!
Unicode   A standardized 16-bit character set that represents the character sets of most major languages in the world. See also the definition for “ASCII”.
    Unicode supports 65536 characters (2^16)  
user-defined methods     Methods written by the user which are not inherent to the language.
    search(String target);  sort(String[]  data)
user-defined objects     Objects whose members and methods are defined by the user and not inherent in the language.
   see inheritance - the classes Person, Student, Teacher
user interface   Hardware, software, or both, that allow a user to interact with and perform operations on a system, program, or device.
    GUI (Graphical User Interface) ,  CLI (Command Line Interface)
utility   A program designed to perform an everyday task such as copying data from one storage device to another.
    virus scanner, disk deframenter, file manager
validation (data input)

abcdefghijklmnopqrstuvwx Top Syl 

  The process of checking, with software, that the data input is of the right type and within reasonable limits. See also the definition for “verification (data input)”.
    int age;
    {  age = inputInt("Type your age"); }
    while (age < 1  ||  age > 110);
variable-length records  HL icon Records whose length is not determined in advance. Each record is allocated the space that it needs to store the information it holds. See also the definition for “fixed-length record”.
    In a text-file, we can write a separate field on each line, any length we wish:
         Fred Flintstone
verification (data input)   A method of ensuring that the data in the computer system is the same as the original source data. This may be done by double entry. See also the definition for “validation (data input)”.
    When checking out a library book, could verify that the title and Dewey Decimal code
    match correctly, by consulting a database of all the books.
virtual memory   The use of secondary memory as if it were primary memory.
    in Windows, a SWAP-FILE on the hard-drive 
virus   A program that infects other programs or files by embedding a copy of itself into the target files.
    Melissa, Love Bug and other MACRO viruses
    Executable viruses like Yankee Doodle
    Boot Virus - Pakistani Brain
virus checker   A utility program that seeks out and eliminates known viruses.
    Mcaffee Antivirus was the first commercial product.
wide area network (WAN)

abcdefghijklmnopqrstuvwx Top Syl 

  A network that provides communication services to a geographic area larger than that served by a local area network or a metropolitan area network, and that may use or provide public communication facilities. See also the definition for “local area network (LAN)”.
    World-Wide-Web, Bank networks connecting automatic teller machines,
        airline reservation system
    NOT our school network which connects two building 500 m apart
        Our network is a LAN, because we own the connecting optical fiber cable
word   A group of bits that can be addressed, transferred and manipulated as a single unit by the central processing unit.
    Older PCs were 32-bit systems, newer ones contain a 64-bit CPU


abcdefghijklmnopqrstuvwx Top Syl 

 HL icon (Exclusive or gate.) The output is True if the two inputs are different; the output is False if the two inputs are alike.
    0 xor 0 = 0      0 xor 1 = 1     1 xor 1 = 0