Higher Level
Computer Science 33IB

Pre-2006 Computer Science 33IB Web Page

Check out this thread among IBO Teachers Re Mastery.

Crucial Resources For Studying IB Syllabus

  1. IB-Computing Home

  2. Escuela Campo Alegre

  3. eca IB Computer Science Home

  4. Computer Science Course Resources

  5. SWC IB Student Web Pages

  6. Study Guide 2006 [pdf]

  7. IBID Book: Computer Science 2nd Edition: Java Enabled

Solutions to IBID Text Exercises

Time of Session Paper To Be Written Duration of Session
Tuesday PM, May 2th Computer Science Paper 1 HL = 2¼ hours, SL = 1½ hours
Wednesday AM, May 3th Computer Science Paper 2 HL = 2¼ hours, SL = 1½ hours
The Entire IB Diploma Programme May 2006 Exam Schedule (pdf)
2006 Case Study: MIDI - Musical Instrument Digital Interface (pdf)
2006 Sample Papers and Case Study (pdf)

Vade Mecum 2005: Group 5 Mathematics and Computer Science (pdf)






USACO Training

Code File

Template File

Do USACO Contests
Using Eclipse 3+. [pdf]

Discrete Mathematics
for Computer Science
at M.I.T.

Structure and Interpretation
of Computer Programs
at M.I.T.

Each month students will tackle a set of computing problems requiring the design and implementation of algorithms in a computing contest. The contest will run over the weekend from Friday afternoon until Tuesday morning. The computing problems will be drawn from monthly USACO [USA Computering Olympiad] constests and the March 1 CCC [Canadian Computing Competition].

  • Collaboration during any contest is prohibited.
  • Any electronic or hard copy resource may be used in any USACO contest.
  • Any electronic but no hard copy resource may be used in any CCC contest.
  • Code lifted from elsewhere must be documented. // URL or book reference.
  • For bonus marks:
    1. All source code must be printed and submitted by the end of Tuesday's class. Hint: Print each solution when it is completed.
    2. All source code must be copied to the Z: drive .
      1. Navigate to the folder entitled, "Friday Contests".
      2. Navigate to a folder containing the day's current date.
      3. Create a folder bearing the student's first and last names.
      4. Copy all files that were used &/or generated during the period.
Bonus marks for contest questions are awarded as follows.
Done by
Total Bonus
Per Question
Total Bonus Marks Awarded:6%

Legend Explaining Evaluation Criteria
attempt = Significant code that fails to solve the problem but does compile & execute <= 5 minutes.
effective= Code that correctly solves the problem & compiles & executes <= 5 minutes.
efficient = Code that is effective & compiles <= 30 seconds & runs <= 1½ seconds per test case.
computer = 700 MHz Duron
compiler = gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3) Java Sun 1.5.0

Your ability to rapidly solve the monthly contest problems will significantly improve after completing the following chapters on Recursion and Searching and Sorting as these chapters expose you to standard "repertoire" of algorithms.

You can view prior sections of a graduate course on algorithms at the University of Illinois. Lectures from 2005 onward are passworded, but lectures prior to that are freely available.

Freely available are many courses at MIT (Massachusetts Institute of Technology) in their MITOpenCourseWare. Recent and recommended is a discrete mathematics courses, Mathematics for Computer Science, Fall 2005.

Web Pages of Dossiers of the 2007/2008 Academic Year. All dossiers are higher level.
StudentWeb PageDescriptionJavadocsSourceVideoJAR
Victor Feng Volunteerist Matches volunteers with projects. No Yes-pdf No Yes
Mathew George Chess Simulator Simulates a chess playing opponent No pdf-p62 Hmm Yes
Carol Hu Email Organizer Efficiently find and write email. No Yes-pdf No Yes
Ali Hussain Vehicle Inspector Manages Vehicular Perfomance Specifications No Yes No No
Scott Jackson Music Database Database of a collection of various forms of media Yes Yes Yes Yes
Devon Kwok Universal Simulator An Extensible Cellular Automata Simulation Framework Yes Yes-pdf Yes Yes
Jorey Stewart AOTEXT Text-only simulation of combat in Anarchy Online No Yes-pdf No No
You Wang Calculator Simulates a fully functional calculator Yes Yes-zip Yes Yes
Evelyn You Instant Flashcards Create flashcards to memorize & review information Yes Yes Yes Yes
Haochen Zhao Lifestyle Manager Gives an indication of how healthy one is living. No Yes Yes Yes
Web Pages of Dossiers of the 2006/2007 Academic Year: Higher Level Unless Otherwise Indicated
StudentWeb PageDescriptionJavadocsSourceVideoJAR
Bon Adriel Aseniero School Blitz Role Playing Game [Standard Level] Yes Yes-pdf No No
Ross Chan Monopoly Simulation of the Real Estate Board Game No Yes-pdf Yes Yes
William Chen Diet Manager Management for a Healthy Diet Yes Yes Yes Yes
Fareed Ebrahim Jeopardy Quiz Competition Yes Yes Yes No
Andrew Gair Battle of The Eclipse A Two Dimensional Fighting Game No Yes-pdf No No
Graham Hill Desktop Universe An Evolution Simulator Yes Yes Yes Yes
Bill Hu Club Zero Manages Affliation Transactions Yes Yes Yes Yes
Ahmed Makhdoom Tactix A customizable tactics game. Yes Yes Editor
Travis Woodward TDPlanner Day Planner No Yes-doc Yes No

Jan 18

  1. IBO Internal Assessment Cover Sheet (front & back) is the first page in the binder.

  2. Donaldson's 2006 Asessment Criteria will be placed here after he has graded the dossier.

  3. Compose and insert a proper cover page.

  4. Place 16 or so cardboard dividers in the binder. A different divider should begin each section A1, A2, A3, B1, B2, B3, C1, C2, C3, D1, D2, D3, D4, E, Mastery Techniques, and Appendix A.

  5. Code is single spaced. Everything else is double spaced.

  6. Print on only one side of the sheets of paper in the final draft of the dossier.

  7. Use APA Style Citations and References.

  8. Create a Separate Footer For Each Section.

  9. Title Page for each subsection of each stage:  include at least one graphic on each title page that is somehow suggestive of the contents of the subsection identified by that title page.


Feb 25


Dossier Trees ==> Tasks

TOC Table of Contents
Click here for detailed instructions. Example From Prior Syllabus: htm wpd pdf doc

A preamble is an introductory statement, a preliminary explanation of the purpose of the dossier. Explain why it was worthy of spending your time developing it. What is its social significance? What is the dossier supposed to accomplish.


Defend the choice of application by what it does for the end user and society. The dossier program must be a socially redeeming application. This is not an end-of-chapter exercise. The thought, effort, time and expense that you spend on this dossier is justified because it will do something useful when it is finished. Describe what is useful about this dossier program. Describe why it is useful. Describe who will use it. Why will they value it over doing the same thing by hand? Will it save the user time, money, or enable the user to actually do things that they may not have typically done without the use of the dossier program? Does the dossier program do what was done before in a somewhat different way? Does it add meaningful choice to an identified population of end users?


This is where you thank those who contributed to your ability to produce your dossier: authors of the one or more textbooks that you studied to learn Java and the topic that your dossier addressed, mentors that interacted with you during the development of the dossier, friends and fellow students that tested your program or criticised your dossier, and family members who supported you or got out of your way when the pressure was on.

P4Annotated Bibliography Use APA (American Psychological Association) citation and referencing style. To "annotate" a reference is to give an opinion as to it's worthiness, where it is useful and where it is not useful.
Stage AAnalysis
A1Analysing the Problem
  1. Three Reviews of Analagous Software (Example: Gerry Donaldson's 2001 Review of MacMahon 2.36)

  2. One Review of How It Was Done Without A Computer (Example: Shinji Kim's 2005 dossier review of non-computerized personal organizers and appointment books, pages 9-10)

  3. Interview Transcript with a SME (Subject Matter Expert)

  4. UML User Stories (Example: NCSU's CofferMaker Project User Stories)

  5. UML Use Case Diagram (Example: NCSU's CofferMaker Project Use Cases Diagram)

  6. Analysis Incorporating the Above

  7. If applicable, a theoretical analysis as exemplified in Bobby Naini's 2000 dossier Gravity Works

  8. Construct a Systems Flowchart of the dossier program.

A2Criteria for Success


Reports of Tests of these Predictions must be Presented in D1 This Annotated Hard Copy of the Test Output
  1. Minimum Performance

    1. Tabulate the JUnit boolean assert( ) statements that will test the correctness of the functions. Place the method's signature in the left column and the corresponding assert statement in the middle column. Place an explanation of the assertion (why does it work?) in the third column.

    2. Time to retrieve data from a file: Predict results under different scenarios using Java's System.currentTimeMillis( ) as illustrated in Measurement Is Everything from the book Java Platform Performance: Strategies and Tactics by Steve Wilson and Jeff Kesselman. Google "java stopwatch class" for more examples. Different scenarios could be the time to save one hundred thousand records, or time to load ten thousand records into an array.

    3. Response to invalid data input: Give examples and predictions of both the data and responses. A table with two columns is recommended, where the left column is labelled "Input" and the right column is labelled "Expected Output".

    4. Response to extreme data input: Give examples and predictions of both the data and responses.

    5. Quantify the data that can be stored. Indicate system requirements.

  2. Usability

    1. Ease of use of input screen: How sophisticated need be the user? How old? How literate? Compare the required effort and knowledge to doing the task(s) by hand, with a different interface, under different conditions.

    2. Appropriate response to user input: Give examples and predictions of both data and responses.

A3Functional Prototype
  1. Initial Design:

    1. UML Class (Structure) Diagram Showing Only Associations: (Example: Deitel's Elevator class diagram)

    2. UML Class (Structure) Diagram Including Attributes and Operations: (Example: Deitel's Elevator class diagram)

    3. UML Sequence Diagram showing the sequence of messages, which are exchanged among roles that implement the behavior of the system, arranged in time. (Example: Wikipedia's Service in a Restaurant)

  2. Functional Prototype

    1. Input: Command Line or GUI

    2. Process: Implementation of one or more of:
      • Direct Access File Handling
      • Linked List
      • Binary Search Tree
      • Stack (Array or Linked List)
      • Queue (Array or Linked List)
      • Hash Table implemented in an array

    3. Output: Command Line or GUI and/or Results of JUnit Tests

  3. Documentation of User Feedback: Questionnaire administered.

Stage BDetailed Design
B1Data Structures
  1. Sketches/Illustrations of sequential versus direct file handling and a comparison of the dynamic structures: linked list binary search tree, stack, queue and hash table. See Walls and Mirrors C++ 2nd Ed for an illustration of:
    • Insertion and deletion of nodes of a linked list, see page 149.
    • A queue implemented with a linear linked list, see page 309.
    • A queue implemented with an array, see page 314.
    • Insertion of a node into an empty tree, see page 478.
    • A file partitioned into blocks of records, see page 666.

  2. Provide sample source code from the dossier program of each file or dynamic structure used. The reference caption should identify the page number and line number of the source code as found in Section C1.

  3. Sample Data of every use of file handling and dynamic structures: hardwire test data into array lists or data files, using input redirection to avoid user interaction while testing processing. Show annotated data dumps of the data.

  4. Indicate how data objects will be changed during execution.

  5. Quantity of data that can be stored.


Stubs that are appropriate for the data

  1. Parameters of both constructors and methods
  2. Return Values of methods
  3. Pre-Conditions of methods
  4. Post-Conditions of methods
B3Modular Organziation

Do one of the following to choose modules that incorporate the data structures and methods required for the solution in a logical way.

  1. Stepwise Refinement in System Design Specifications: (Example: See Gerry Donaldson's FIDE Swiss Tournament Wizard)

  2. Structure Chart: these were more appropriate for structured programming and OOP (Object Oriented Programming). See Creating A Structure Chart Using WordPerfect 8 to see how to create a structure chart.

  3. Hard Copy of CRC Cards: CRC = "classes", "responsibilities", and "collaborators". See Horstmann's BIG JAVA 2nd Ed, pages 614-616 for an explanation and pages 636-639 for an example in using CRC cards to design an ATM program.

Stage CThe Program
C1Using Good Programming Style

Program listings must be easily readable.

  1. Apply a stardardized coding style consistently to all source code.

    This is easily done in Eclipse by setting and implementing a standard coding style.

    Import UBC's implementation of Big Java's Source Code Formatting Rules.

    Thereafter pressing "Ctrl-Shift-F" reformats source code to specifications.

  2. Source code is placed here, in this section.

  3. Identification header for each class and interface:

    1. Program name and purpose
    2. Author, Date, School
    3. Computer used, IDE used.

  4. Good internal documentation:

    1. Constant, type and variable declarations have explanatory comments.

      The purpose of every paramenter is explained using the Javadoc tag @param .

      Note that parameters are the receiving variables in the signature of a method or constructor.

    2. The precondition(s) of every non-selfdocumenting method must be identified using the Javadoc tag @pre.

      The postcondition(s) of every non-selfdcoumenting method must be identified using the Javadoc tag @post.

      The precondition(s) and/or postcondition(s) of accessor methods such as getNum( ) and mutator methods such as setNum( ) are usually "self-documenting" by virtue of their self-explanatory names and relatively small code size. These methods do not generally require documentation of their preconditions and/or postconditions.

      When in doubt, do document with @pre and @post Javadoc tags.

    3. Identifiers have meaningful names.

    4. Methods are small == generally each method fits entirely on one screen.

    5. Objects are clearly separated.

    6. Objects have comments for their parameters.

    7. Indentation illustrates the programming constructs.

    8. All source code must apply syntax highlighting. Minimally, reserved terms must be in bold fonts and/or of a different colour from non-reserved terms.

    9. All lines of source code must be numbered. This is essential for making specific references to the source code when commenting on it in other documentation.

      The first line of each externally named (not internal or annonymous) class should begin with the number "1" (one).

      Note: Versions of Eclipse through 3.3 do not support the printing of line numbers to a printer or clip board. Copy and paste does not retain the line numbers.

      One work around is to convert the Java source code to an html or rtf (rich text file) format with a program that both generates syntax highlighting and numbers the lines of the source code. One such program that does this is Java2Html.

      I have found that rtf files retain indentation whereas html files sometimes lose the appropriate indentation. I also observed that Java2Html formated html files get inserted as tables when read into WORD and WordPerfect, but not so for rtf files. I recommend convertions to the rtf format.

      Using Java2Html, copy the rtf code into a text editor such as TextPad. Remember to tick the check box for generating "Line Numbers" and to choose "RTF" in the "Target" drop down menu before clicking the "Convert" button. Save the resulting text file with the appropriate "rtf" extension.

      The resulting rtf file retains syntax highlighting, indentation and line numbering when inserted into a current version of WORD or WordPerfect after Insert --> File....

      Caveat: Lines are not automatically renumbered if deleted or inserted in code after it has been converted. Code must be again converted by running Java2Html if lines are deleted or inserted or modified such to trigger either situation, as could happen if code were modified in the wordprocessor.

    10. The wrapped portion of wrapped lines are indented.

    11. There must be no "magic numbers". For example, the size of records are derived from clear documentation of the addition of the length of each field of the record.


The teacher runs the program with the student to confirm that the program executes as claimed.

Construct a table summarizes the features. The table should make reference to both the annotated sample runs and the program listing.

Program has features that make it user friendly.

  1. GUI Interface.
  2. Helpful Menus.
  3. Help Page. [See Jacky Lee's How To Create A Help Page.]

Handling Errors

Sun's Java Tutorial:
Handling Errors Using Exceptions

Kjell Tutorials 80 81

Horstmann's BIG JAVA 2nd Ed: Chap 15 - Exception Handling

Deitel's JAVA HTP 4th Ed: Chap 14 - Exception Handling

Use try, catch, and finally statements.

There are numerous types of errors that must be detected.
  1. IOException: detect and reject erroneous data input from the user.
  2. Run-time exceptions.
  3. Arithmetic exceptions.
  4. Data-file errors.

Implement customized exception types for errors paticular to your program.

C4Success of the Program

Provide annotated screen dumps showing that the program runs properly.

  1. Input/Output: Annotate Screen Dumps of Sample Runs
    1. Create tables with two columns as did Maria Dantsiguer's 2004 dossier, European Museum Information System.
      • Place the screen dump in the left column.
      • Place the explanation in the right column.
    2. an explanation caption for every screen dump of both:
      • what is to be seen in the screen dump.
      • which objective from A2 is addressed by that screen dump.

  2. Algorithms: Annotate Results of JUnit Tests demonstrating that the methods executed as expected and without errors.

    Add a fourth column to the JUnit Tabulation designed in Section A2. Place a check mark beside each test that successfully passed and an X beside each test that failed the JUnit test.

C5Regression Testing
JUnit Source Code


Note: This criterion, criterion C5, is a CTS requirement as defined by Donaldson. Criterion C5 does NOT exist in the 2006 IBO Computer Science syllabus.

Regression Testing of Program
JUnit Source Code

Place the Java source code and JUnit Javadocs for the JUnit classes here. Start each class on a different page. Give a two column table showing the correspondance between each class of the program and its corresponding JUnit testing class.

Stage DDocumentation
D1Annotated Hard Copy of the Test Output


Results reported here must address criteria from A2 Criteria for Success

Provide tables of annotated screen dumps of the test output as exemplified by Bei Li's 2005 dossier Mercury Express Delivery System. There should be a different run for each branch of the program. Each annotation must identify the "aspect" that is being tested.

Samples of all objectives in criterion A2 must be tested, screen dumped and annotated!

  1. JUnit Tests: Tabulate results of executing JUnit boolean assert( ) statements itemized in Criterion A2.

    There must be a better way to record the results of JUnit tests. Is JUnitReport the solution? It requires Ant. That requires a knowledge of XML. Is this the next level?

  2. Time to Return A Research Result Using System.currentTimeMillis( ), compare the times predicted under the scenarios established in criterion A2 with the actual times measured after the coding of the program was completed.

  3. Responses to valid data: Record a table of annotated screen dumps showing entering valid data and the program's responses. Place screen dumps in the left column and annotations in the right column.

  4. Responses to invalid data input: Demonstrate exception handling itemized in criterion A2 in a table of two columns where each row demonstrates a different error (exception) and the program's response (catch). Place screen dumps showing the exceptions and responses in the left column. Place the annotations describing thoses exceptions and responses in the right column.

  5. Responses to extreme data input: Place the screen dumps in the left column and the annotations describing the program's responses in the right column.

D2Evaluating Solutions

In this critical analysis of the resulting solution, identify:

  1. criteria that the program successfully addressed. Refer to the results of criterion D1.
  2. limitations of the program.
  3. improvements for future releases.
D3User Documentation As Hard Copy

In this critical analysis of the resulting solution, identify:

  1. sample input
  2. written instructions
  3. screen shots
D4HTML Program Documentation


Note: This criterion, criterion D4, is a CTS requirement as defined by Donaldson. Criterion D4 does NOT exist in the 2006 IBO Computer Science syllabus.

Javadoc Documentation Hard Copy

Learn Javadoc Tutorials

Customize @pre, @post, and @invariant With UBC Taglets

  1. Every class and interface should have the following tags where applicable.

    @author [author name]author's name of the class/interface
    @version [version]version information of the class/interface
    purpose [rationale for existing]the reason that the class/interface exists.
    @invariant [condition] an assertion that is always true at a particular point in an algorithm

  2. Methods and constructors should have the following tags where applicable.

    @pre [condition] precondition that must exist at the beginning of a method in order for the method to work correctly
    @post [condition] postcondition existing after a method has finished executing
    @param [argument name] [argument description]describes an argument
    @return [description of return]data returned by a method. Constructors never return data.
    @exception [exception thrown] [exception description]exception thrown by a method

  3. Print a hard copy of output of the HTML Javadoc files. Remove references to "Methods inherited from class java..." that do not refer to methods used in the dossier program.
Stage EHolistic Approach
EHolistic Approach

Provide a hard copy of a dated log or blog documenting:

  1. Tasks attempted or completed on specific dates.

  2. Reflections as seen in the conclusion of Thushy Amirthalingam's 1997 Pascal dossier, Personal Information Manager (PIM).

  3. Significant experiences or resources that contributed toward understanding the dossier.

  4. Revelations, realizations, epiphanies and/or discoveries that transfer beyond the dossier's specific subject matter.

Appendix A Mastery Techniques
Click here for detailed instructions.
Index Dossier Index
Automated Wordprocessing Function


Learn UML

Com Sci
Web Page

Place the following diagrams in your dossier.

  1. User Stories and User Diagram(s)
  2. Class Diagram: shows the major classes and relationships in the program.
  3. Object Diagram: shows a set of objects and relationships at a particular moment in the execution of the system. You can view it as a snapshot of memory.
  4. Sequence Diagram: describes how a particular method is implemented, clarifying the order of the messages.
  5. Collaboration Diagram: contain the same information that sequence diagrams contain, but clarify relationships between the objects.
  6. State Diagram: provides notation for finite state machines, useful for figuring out how a system behaves.


IBID Text,
Topic 1

Walls & Mirrors
Chapter 1

Nyhoff's Chapter 1

Study IBID, pp 2-39

Do Exercises of IBID, Topic 1. Check against solutions at: Topic 1 Solutions

Study Walls & Mirrors, Chapter 1: Principles of Programming & Software Engineering

Study Nyhoff C++ An Introduction to Data Structures, Chapter 1

Do a Systems Flowchart of your dossier program. Place it in your dossier at Stage A: Analysis

Carrano et alNyhoffIB Comp HomeECADescription
SpecificationProblem Analysis & Specification -- -- Bring precision and detail to the original problem statement
-- -- -- Concept Formation Create objectives & limits of project.
-- -- Systems Analysis -- fact finding
-- -- -- -- --
Pages 4 - 15 [Frank Carano, Paul Helman and Robert Veroff:
               Data Abstraction and Problem Solving with C++:   Walls and Mirrors] Carrano, Frank M. and Paul Helman and Robert Veroff, 1998. Data Abstraction and Problem Solving with C++: Wall and Mirrors (Addison Wesley Longman, Inc.: Don Mills, Ontario)
Pages 1 - 25 [Larry Nyhoff:  C++ An Introduction to Data Structures] Larry Nyhoff. 1999. C++ An Introduction to Data Structures (Prentice-Hall, Inc.: Upper Saddle River, NJ)
-- [IB Computing Home] Richard Jones. 2006.IB Computing Home: Software Life Cycle
-- [Escuela Campo Alegre] Shashi Krishna. 2006. Escuela Campo Alegre: Software Development Life Cycle


IBID Text,
Topic 3.5 and 4.1

Kjell's MIPS Assembly Tutorial: Chapters 1-8

Nyhoff Text, Chap 1, Section 2.2

Study Kjell's MIPS Assembly Tutorial: Chapters 1-8. There will be a test covering these tutorials next Wednesday, March 15, 2006.

Interesting movies on these topics may be viewed from For All Practical Purposes, especially:

  • 21. Computer Science—Overview
  • 23. Counting by Twos
  • 24. Creating a Code

Check out this Two's Complement Applet, from a neat web site entitled Inside The Java Machine.

Professor Teresa Carrigan's Virtual Office tutorials, most of which relate directly to IB's syllabus.

The Secret Message is a fun exercise to play with the decimal, octal, hexidecimal and binary number systems.

What does IB consider to be binary "normalization"?

Due Monday, March 13, 2006: Read Larry Nyhoff's C++ An Introduction to Data Structures, pages 32-43. Do Exercise Set 2.2, pages 43-44.



Topic 4.2


IB Home

Topic 4.2:   Boolean Logic

We begin with Boolean Logic today. Handouts included:

  • Chapters 3 (Binary Logic Gates), 4 (Using Binary Logic Gates), and part of 10 (Arithmetic Circuits) from Roger L. Tokheim, 1993, Digital Electronics (McGraw-Hill Publishing Company: Toronto).
  • Notes by Gerry Donaldson from prior years.
  • Richard Jones' treatment of IB - Boolean Logic as found on his web site, IB Computing Home.

Check out xLogicCircuits Lab 1: Logic Circuits from David Eck's book, The Most Complex Machine: A Survey of Computers and Computing.

You cannot normally save from an applet. Do a screen dump to a wordprocessor or paint programme to capture the image: Focus (mouse click) on the applet --> [Alt-PrtScn] --> Go to wordprocessor or paint program --> Focus --> [Ctrl-v].

Note: It is possible to import the files associated with the applet into Eclipse, launch the applet from within Eclipse, and then save the diagrams from the applet. To do this:

  1. Download the applet's source code files from Eck's Source Code Page:

    • the folder:   xLogicCircuits/
    • the file:   xLogicCircuitsApplet.java
    • the file:   xLogicCircuitsFrame.java
    • the file:   xLogicCircuitsLauncher.java


    import the Eclipse project from this Circuit directory.

  2. To import the project into Eclipse, do this:

    Launch Eclipse → File → Import... → Existing Projects in Workspace → Next> → Select root directory: copy path of the Circuit directory → Browse → Check the box of the Project "Circuit" → Finish → Expand (click "+" sign) the newly imported project "Circuit" → Expand the directory "src" → Expand the package "tmcm" → Select (right mouse click) "xLogicCircuitsLauncher.java" → Run as → Java applet.

  3. Circuit Diagrams may now be named, saved and loaded from within Eclipse.

Assignment Due Thursday, March 23:

Do all 10 exercises in Eck's LogicCircuits Lab 1: Logic Circuits [csg] [web].

Do a screen dump to a wordprocessor or paint programme to capture the image: Focus (mouse click) on the applet --> [Alt-PrtScn] --> Go to wordprocessor or paint program --> Focus --> [Ctrl-v].

Normally you cannot save from an applet, but does this resource tell you how to do so: Security in Distribuited java Applications.

Check out xLogicCircuits Lab 2: Memory Circuits from David Eck's book, The Most Complex Machine: A Survey of Computers and Computing.

Assignment Due Thursday, March 23:

Do all 9 exercises in Eck's xLogicCircuits Lab 2: Memory Circuits [csg] [web].

Do a screen dump to a wordprocessor or paint programme to capture the image: Focus (mouse click) on the applet --> [Alt-PrtScn] --> Go to wordprocessor or paint program --> Focus --> [Ctrl-v].

In past years students successfully achieved IBO's objectives for Boolean Logic with Electronic Workbench. It is more powerful than Eck's xLogicCircuits Java applet, but has a steeper learning curve. It may be that Eck's xLogicCircuits applet is sufficient to practice all of the electronic aspects of Boolean Logic that we require. If time permits, it would still be useful to explore those concepts using Electronic Workbench. If time permits, do the following.

Practice Boolean logic using Electronic Workbench Version 5.12. Less powerful but interesting programmes that allow us to practice Boolean logic are:
  1. xLogicCircuits applet and labs & other applets
  2. DLSim 2.2
  3. Leggo My Logg-O
  4. Logic Gates Circuit Simulation Program
  5. Digital Workshop
  6. Multimedia Logic
  7. Xilinx ISE WebPACKTM
  8. The Iowa Logic Specificaiton Language

Look at some of the nine tutorials by Ron Reis of Los Angeles Valley College entitled Computer Simulation of Digital Circuits found on a Prentice-Hall companion web site to the textbook, Digital Fundamentals Seventh Edition by Thomas L. Floyd.

Check out former student web pages on the topics of Section 4.2:

  1. Boolean Logic by Lisa Chen (2002).
  2. Boolean Logic by Brian Lau (2003).
  3. Karnaugh Maps by Jacky Yeung (2003).
The Journey Inside is a great collection of online lessons from Intel about the technologies, processes, and methods that makes a computer and the Internet work.


Topic 6.1


IB Home

The Journey Inside:

Topic 6.1:   Processor Configuration

Read From Chapter 5, Section 1: The Fetch-and-Execute Cycle: Machine Language from the 4th edition of David Eck's book Introduction to Programming Using Java.

Read IB-Computing Home's Processor Configuration. Note also IB-Computing Home's OLD Processor Configuration page and especially it's Flash Animation of the Machine Instruction Cycle.

Read ECA's Processor Configuration and ECA's Machine Instruction Cycle.



Topic 6.2


IB Home

Topic 6.2:   Magnetic Disk Storage

Read IB-Computing's Magnetic Disk Storage.

Read ECA's Magnetic Disk Storage.

A terrific presentation of this topic by a (now former) Churchill IB Computer Science student is Dave Lindsay's Disk Storage web page repleat with Dave's great personal pictures of the disk drive that he dismantled.


Topic 6.3


IB Home

Topic 6.3:   Operating Systems and Utilities

Read IB-Computing's Operating Systems and Utilities.

Read ECA's Operating Systems - The Basic Understanding and Operating System Utilities.

Check out the pdf slides from Silberschatz's OS textbook that were created by Dr. Ching-Kuang Shene, Department of Computer Science, Michigan Technological University in his course CS4411 Introduction to Operating Systems.


Topic 6.4

IB Home

Topic 6.4:   Further Network Fundamentals

Read IB-Computing's Further Network Fundamentals.


Topic 6.5

IB Home

Topic 6.5:   Computer/Peripheral Communication

Read IB-Computing's Peripherals.

Read the following pages from ECA Computer/Perhiperal Communication:

  1. Ports and Handshaking
  2. Memory mapped I/O
  3. Controller
  4. Direct Memory Access and Buffer"
  5. Interrupt and Polling


Topic 7

IB Home


Topic 7:   File Organization

Read IB-Computing's File Organization.

Read ECA's ECA's File Organization

TaskTopicAssignment Due 31 May 2006


Date Due:
31 May 2006

Après Final Exams

C.A.L.  = =  Computer Assisted Learning

You need not be Christian to subscribe to the following proverb.

For unto whomsoever much is given, of him shall be much required. (Luke 12:48)

This exercise asks vetern IB Computer Science students to repay in some way the efforts and resources of others that went before them by which they have benefited.

It is far better to do a superlative job on a narrow but essential topic than a mediocre job on a multitude of topics.

  • Chose a topic agreed to by your teacher. The tutorial should either teach topics that address IB Computer Science objectives or objectives that should be IB objectives. Examples of the latter are JavaDoc, JUnit testing, UML diagrams, and debugging tools.

  • Use the Bradley Kjell format to create:

    1. Kjell type tutorial(s)
    2. Kjell type quiz(zes)

  • Bradley Kjell has made the following software available for creating tutorials

    1. cssmaker.zip
    2. Quizmaker.zip

    Note that the above files, cssmaker.zip and Quizmaker.zip, do not run under Java 5.0 because of the use of an identifier, ennum, which did not become a reserved term until Java 5.0. That identifier has been refactored in the directory "Kjell_PgMaker - Open as workspace in Eclipse" which will run under Java 1.5 in Eclipse if that directory is made an Eclipse workspace, and which may be obtained from the self-extracting zipped file, Kjell_PageMaker_5.exe

  • A page regarding the Kjell Type CAI Tutorial explains more.

  • Break up most screens with a graphic, diagram or code.

  • Repackage the tutorial as a PowerPoint slide show.

Grading Criteria

Ques & Ans10

TaskTopicAssignment Due 13 June 2006


Date Due:
13 June 2006

Post Dossier To The Web

Post Dossier To A Web Page

Submit this assignment on a CD or DVD Disk With All Related Files.

As a requirement of Computer Science 33-IB, but not as a requirement for your IB Certificate, you will generate a web site presenting your dossier and all its files in various appropriate formats.

If you have never before created an HTML web site, you will find it easiest and fastest to use software that automates many of the more mechnical functions. Students have recommend MicroSoft Publisher 2003 (or later) → Web Sites and Email → Web Sites → etc.

Nvu (pronounced N-view, for a "new view") is a complete Web Authoring System that combines web file management and easy-to-use WYSIWYG (What You See Is What You Get) web page editing. Nvu is designed to be extremely easy to use, making it ideal for non-technical computer users who want to create an attractive, professional-looking web site without needing to know HTML or web coding. Nvu is open source and may thus be freely downloaded and used.

The web site should organize all of the dossier files into an attractive presentation. Be creative in coming up with your own web site design. It should not be "busy". It should be simple and clear to use. An example of one such site is The Card Game Assignment by John K. Estell at Standford University.

  1. The entire dossier as submitted in the binder must be available as a single pdf document. Scan diagrams and other documents if necessary to convert to pdf Adobe's format so that they may be merged in the appropriate sequence.

    Microsoft Word 2003 (and later) allows you to save a WORD document in pdf format. If Adobe Acrobat has been installed on the same station as MicroSoft Word, then there will be found a button on WORD's menu bar at the top of the screen to the immediate right of WORD"s Help button.

    Corel's WordPerfect allows you to save a WordPerfect document in pdf format after File → Publish To → PDF....

  2. Javadoc files of all source code must be available. Offer seperate links to the overview, tree view, and index view as was done with Javadocs for JUnit Testing Javadocs.

  3. Source and data files must be in directories appropriate for successful compilation.

    • All source code must be saved as appropriate text files: *.java files.
    • All data files must be in directories as specified in the source code.

  4. Executable jar and data files must be in directories appropriate for successful execution.

    Check out how students were required to do an Earlier IB Dossier Web Page to learn how to create a Jar file using NetBeans 3.6 and how to make an extractable jar file.

    Check out How To Make An Executable JAR File With A Batch File [pdf] [wpd]

    To create an executable JAR file in Eclipse:   [ Hint: First save the path to your project so you can later paste it as the destination location of your executable JAR file → Right mouse click name of project → Properties → Select ("highlight") the location (eg: "H:\TotalBeginnerProjects\TB11") → Copy with → Cancel ] File → Java → JAR file → Next > → Select by checking ✓ only the #src directory → Select a directory to save the JAR file in → Give the JAR file a name (eg: mylibrary.jar) → Next > → Tell Eclipse which class has the main() method (Click the "Browse..." button.) → Finish    JAR == Java ARchival File. An executable JAR file will execute on any system that has a JRE (Java Runtime Engine) installed. Selecting only the #src directory allows us to now easily exclude the bundling of testing code with the application.

    To check the run of your JAR file from the command line prompt:   Copy the path of your JAR file location: Right mouse click name of JAR file → Properties → Select ("highlight") the location sans name of file (eg: "H:\TotalBeginnerProjects\TB16") → Copy with <Ctrl-C> → OK ] → [ Note: In order for the JAR file to "automatically" execute at the command line prompt, the O/S environmental path variable must be contain the path to Java's jar.exe file. An example of the location of a jar.exe file is: C:\Program Files\Java\jdk1.6.0_01\bin.] → Start → Run... → Type cmd in the Open dialog window → A command prompt window (aka DOS window) opens → On the prompt line, type the drive location of the file (eg: "H:) → Press <Enter> → The prompt now reflects the root of the drive where the JAR file is located ( eg: H:\> ) → On the prompt line, type "cd" (stands for "change directory") → Press the space bar once. → Right mouse click the title bar. → Edit → Paste → The prompt line should now include the path of the JAR file. [ eg: H:\TotalBeginnerProjects\TB15\TB16> ] → Type "dir" to call the directory → You should now see the jar file. → At the command line, type "java -jar followed by the name of the jar file. [ eg: java -jar mylibrary.jar ] → Press <Enter> → The JAR file should now execute.

  5. The executable jar and data files must be packaged in a self-installing file deployment bundle such as that created by InstallStation.

  6. Include a version of the dossier program application running as compiled native executables (.exe files) under Windows. You may compile the Java source code with the Excelsior JET Compiler. Click here to get an anonymous 30-day Excelsior JET Evaluation Package.

    You are advised to obtain a seperate email address that you use only for commercial purposes such as purchasing products and downloading software from the Internet. One possible side effect of giving an email address to third parties is that it often later gets spammed with unsolicited requests and advertisements. Free email accounts may be obtained from Google, Yahoo and MicroSoft.

    An informed discussion about and links to other compilers and variations thereof (especially native compilers) will be found at Marco Schmidt's site.

    The GNU Compiler for Java supports most of the APIs specified by "The Java Class Libraries" Second Edition and the "Java 2 Platform supplement" are supported, including collections, networking, reflection, and serialization. AWT is currently (May 2006) unsupported, but work to implement it is/was in progress.

  7. Include a screen recording with voice demonstration of the use and execution of your dossier program.

    You may use Camtasia Studio screen recording and presentation software or other comparable software for this purpose. Click here to download a 30 day free trial of Camtasia Studio.

    Create a web page that has your video already embedded in it so that the user does not have to first download the file. To do this in Camtasia 3, following the links: Sharing your Videos → Advanced Production Wizard → Video Options Screen → HTML Options Screen.

    Go here for a short, clear video introduction to Camtasia.

    Read this pdf file for brief instructions on using Camtasia.

    Click here for tutorials in the Camtasia Studio Learning Center version 2. Be selective as you are using a later version.

    Click here for "Show Me" tutorials in the Camtasia Studio Learning Center.

    Click here for HTML and pdf Camtasia Studio documentation.

    You are advised to obtain a seperate email address that you use only for commercial purposes such as purchasing products and downloading software from the Internet. One possible side effect of giving an email address to third parties is that it often later gets spammed with unsolicited requests and advertisements. Free email accounts may be obtained from Google, Yahoo and MicroSoft.

    Of historical interest is Peter Rizov's 2004 dossier demonstration movie of Peter's dossier program, Grocery List Maker. Where Peter accompanied his demonstration with music only, you must accompany your demonstration with oral (voice) explanations of its use. If done tastefully, you may also add other sound such as music to your movie.

  8. All internal links must have relative addresses; not be "hard-wired" to specific directory paths.

  9. The root html file of each directory should be named index.htm or index.html.

  10. Web files should be in homogeneous directories.

    • The root directory must contain the index file: index.htm or index.html.
    • multimedia files must be organized in directories by their file type. For example, graphics files (*.gif, *jpg) must be separated from other files.
    • Source code, binary (Java byte) code and data files should each have their own root directory.

Grading Criteria

PDF File(s)20
Source Files10
Executable Jar15
Movie Overview
(Camtasia Type)

Examples of excellent past web page postings are:
Devon Kwok2008JavaUniversal Simulator: An Extensible
Cellular Automata Simulation Framework
Graham Hill2007JavaDesktop Universe: An Evolution Simulator
Prasanna Ranganthan2006JavaVoluntrix
PC Lai2005JavaBig 2 Card Game
Clark Meulleur2004JavaFoxtrot Customer Management Solution
Bob Cao2003JavaSimpletron Machine Language Simulator
Ping Kwan Lai2002C++Computer Maintenance Scheduler
Shannon Yao2001C++Computerized Music Bank
Prashant Jois2000C++Restaurant Finance Management
Mike Fox1999C++Tank Wars Interactive Tank Simulator
Quinn Liesch1998PascalQCSoftWare Data Organizer

[Counter On Strike [Home of Gerry Donaldson's Com Sci Gate]
[Gerry Donaldson's Email Address]
ICQ# 62833374
[EFC Blue Ribbon - Free Speech Online]

URL:   http://www.donaldson.org/    Last Revised:   March 10, 2006