Introduction to Computer Science

The nature of the subject

Computer Science deals with solving real world problems using computers. The course requires a clear understanding of problem solving using a logical and well structured approach and a detailed knowledge of how computers can be applied to solve problems.

Computer science is not about learning to program in a windows environment using the cut and paste approach to produce games etc that look nice and are full of fun features ... that sort of skill is best learnt for fun in your own free time

Good computerised systems start with a clear understanding of the problem to be solved, logical design, appreciation of the capabilities and limitations of computers, efficient use of algorithms and data structures, careful testing and thorough documentation

The syllabus

The syllabus is broken down into a number of topics

  1. Software development (inc programming)
  2. Computing system fundamentals
  3. Computing systems and society
  4. Computer mathematics and Logic
  5. Advanced data structures and Algorithms
  6. Further system fundamentals
  7. System life cycle
  8. File organization

Topics 1,2 and 3 are called the common core (CC) and are taken by all students both standard level (SL) and higher level (HL)

Topics 4 - 8 are called the Advanced HL Material and, as the name suggests, taken only by HL students

Topic 3 contains a case study which all students will research

All students complete a program dossier

Teaching Order

The IB does not require or expect that the topics are taught in order and each programme is designed to fit the needs of the particular school and it's timetable structure. For the BUPS/BIS course the following structure is used (well, sort of!)

STANDARD LEVEL

HIGHER LEVEL

Learning to program

At BUPS/BIS the programming language used is C++ using either the native C++ compiler of the Linux disto installed (Mandrake) and the KDE development environment or, for students not interested in Linux, the Microsoft Visual C++ 6.0 compiler. This software is provided for each student and students are encouraged to explore Linux world as a compliment to their studies

You are expected to acquire mastery of the C++ language as defined by the IB criteria. Mastery is defined as the ability to use the C++ language for some non-trivial purpose which is well documented. This is demonstrated through work submitted in the program dossier

This website provides a skeleton programming course including examples of code and exercises that are requied as part of the continual assessment proceedure. The course is complimented by a text book issued to all students "A Guide to Programming in C++" published by Lawrenceville Press. The programming course is a taught course and therefore will not necessarily follow the order presented in the textbook