Higher Level
Computer Science 33IB


Solutions to IBID Text Exercises

Time of Session Paper To Be Written Duration of Session
Monday PM, May 9th Computer Science Paper 1 HL = 2 hours, SL = 1¼ hours
Tuesday AM, May 10th Computer Science Paper 2 HL = 2½ hours, SL = 1¾ hours
The Entire IB Diploma Programme 2005 Exam Schedule (pdf)

Dossier Due Dates As Known On February 20, 2004

March 1:Binder of entire dossier due in full.
March 8:Second Iteration: respond to evaluation following March 1.
March 16:Third Iteration: respond to evaluation following March 8.
March 22:Absolute Final Date To Submit Entire Dossier.
March 25:Mr. Donaldson's deadline to submit final dossier grades to Ms. Antonuck.

 

Note: Unlike past years, IBO requires that the final dossier grades be
submitted too early to give students time during spring break to work on it.

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


2004Assignment
Jan 30

Introduction to UML (Unified Modelling Language).

The UML specification and UML usage guidelines are available for viewing and download from the Object Management Group [OMG] at www.omg.org. Whatever tool is used, it should support the current version of UML 2.0. One site that informally reviews and offers links to a number of UML diagramming and modelling sites is Michael Godfrey's My Little UML Page.

Knowledge of how to design and document a computer program with UML has become crucial knowledge in the past 5 years. My immediate objective as a teacher of an OOP computer programming language has been to identify a significant by manageable set of UML skills and tools that could augment (and replace some) of the antiquidated design tools formerly used with IB programming languages that were largely taught as structural and procedural, even if capable of OOP code, such as Pascal, C, and C++. We begin with variations of the five diagrams mentioned below.

UML For JAVA Programmers

UML For JAVA Programmers is precisely the book that I have been looking for to guide the level and types of UML diagrams that our students in the International Baccalaureate program might fruitfully learn and apply without becoming overwhelmed with what has become 800 pages of the diagramming documentation standard for all OOP languages.

Robert Martin, the author, argues that it is just as important to decide when not to use UML as when to apply it. Furthermore, he presents only those diagrams that are used most of the time when implementing Java code. Indeed, he completely avoids conceptual level UML and focuses exclusively on the specification and implementation levels and their corresponding UML diagrams, which is good because that is precisely where our students must perform.

Indeed, in Chapter 1 of UML For JAVA Programmers Martin argues that five types of UML diagrams "are enough for most purposes. Most programmers could live without any more knowledge of UML than what is shown here." [page 8] What are those five diagrams?

  1. Class Diagram: shows the major classes and relationships in the program.
  2. 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.
  3. Sequence Diagram: describes how a particular method is implemented, clarifying the order of the messages.
  4. Collaboration Diagram: contain the same information that sequence diagrams contain, but clarify relationships between the objects.
  5. State Diagram: provides notation for finite state machines, useful for figuring out how a system behaves.

Feb
2-8

During each period, a segment of the Larman UML Video course is viewed and a brief overview of notes on specific UML diagrams is presented, followed by a work period during which students continue working on their dossiers. A great strength of the the Larman course on Applying UML and Design is that he adamantly places UML diagrams in a modest role compared to the significantly more important creative and important role of the design process. This week we watched Larman's videos on:

  • Chapter   1: A Dice Game - Simple Example of OOA/D (Object Oriented Analysis & Design).
  • Chapter   2: Introduction To Modelling
  • Chapter   3: Iterative Development and the UP (Unified Process).
  • Chapter 13: Class Diagrams in the Design Model.
  • Chapter 10: Interactive Diagrams: Illustrating Collaborative & Sequential UML Diagrams.

    Considerable attention has been paid to identifying an appropriate CASE tool for facilitating the creation of UML diagrams. "CASE" is an acronym for Computer Aided Software Engineering. Our school purchased a license for a standard edition of Poseidon 1.6.1 last spring, but it became dysfunctional when we upgraded the equipment in our lab. The Community edition of Poseidon for UML is free and some students are working with it. Here is what I had to say about Poseidon for UML last March.

    UMLet Is A Neat UML Sketch Application

    It is written in Java, no less. It is simple to use and open source and thus free for the effort and time of downloading it. I recommend that those getting into UML download it and play with it. It doesn't by itself teach UML diagramming, but it looks like it would be fun (and simple!) learning UML with it.

    You can find it at http://qse.ifs.tuwien.ac.at/~auer/umlet/index.html

    An assignment due Monday, February 8, 2004, requires that two types of class diagrams are be submitted as documentation for the IB program dossier:

    1. Class Diagram showing the detailed attributes and operations. Example: Deitel's Figure 15.21 from Java How To Program 4th Edition.
    2. Class Diagram without detailed attributes. Example: Deitel's Figure 15.20 from Java How To Program 4th Edition.
    Note: The above UML diagrams document the Deitel Elevator Simulation. Click here for the source and JVM code..

    The JDK (Java Development Kit) Class Documentation Project

    Markus Falkhausen has developed over 230 interactive class diagrams that chart the standard packages of Sun MicroSystem's Java Development Kit such that separate classes have links to the API-documentation. [API = Application Program Interface] His site also provides a several tables showing the frequency of use of each grammatical Java element in terms of the number of occurrences per 100 lines of code.

    Feb
    9-15

    As our search for a superior but affordable CASE tool proceeds, an excellent consideration is the Visual Paradigm 3.0 Community Edition which is free and retains full functionality except that only one of each kind of UML diagram may be generated per project and a water mark splashes over every diagram. Note however that the noncrippled Standard Edition is available free to academic institutions provided that they use the product for at least 20 hours per student in a class of at least 10 students. Although their web site presumes tertiary institutions such as universities and technical schools, I applied for an academic license for Sir Winston Churchill High School. If we are accepted, then we will have access to excellent software with web site page turning tutorials and an interactive tutorial for using UML diagrams with VP-UML. Finally, and of no small consideration, is the fact that the SDE (Smart Development Environment) enables VP-UML to be seamlessly integrated with Netbeans!

    Teacher's Convention beckons on Thursday and Friday of this week, which leaves students with a well needed opportunity to polish off another iteration of their IB dossier program.

    Another set of UML Diagrams are assigned of the IB program dossier, these due Monday, February 15, 2004:

    1. Collaboration Diagrams. Example: Deitel's Figure 15.18 from Java How To Program 4th Edition.
    2. Sequence Diagrams. Example: Deitel's Figure 15.19 from Java How To Program 4th Edition.
    3. Use Cases of Different Scenarios: TEXTUAL stories of actors fulfilling goals; happy line and alternate flows.
    4. Use Case Context Diagram(s): summary of a use case stories.
    Note: The above UML diagrams document the Deitel Elevator Simulation. Click here for the source and JVM code..

    More in depth discussion concerning use cases will be found in the article formerly but no longer available at UseCases.org: Structuring Use Cases with Goals by Alister Cockburn (1997). Alister Cockburn's famous use case template "is the most widely used and shared format" according to Craig Larman (Applying UML and Patterns, 2002, page 50). A more recent discussion of use cases by Cockburn was illustrated with his powerpoint presentation, Agile Uses Cases presented at OOPSLA 2003.


    Visio is a MicroSoft distributed product that does an excellent job on diagrams, including UML diagrams, to which students may have access. VISIO UML Stencil and Templates zip file may be freely downloaded, or simply copy the three smallish files directly from here to the c:\Program Files\Microsoft Uisio\Solutions\Software directory. Some argue that everyday tools for drawing diagrams intrude less on our thinking and allow us to innovate where necessary.

    Alternatively you may download UML "shapes" from MicroSoft itself at MicroSoft Visio 2000 Shapes Update.


    [Smartdraw.com Logo]

    Officially, according to UML (Unified Modelling Lanaguage) is:

    A specification defining a graphical language for visualizing, specifying, constructing, and documenting the artifacts of distributed object systems. UML 1.5 incorporates Action Semantics, which adds to UML the syntax and semantics of executable actions and procedures, including their run-time semantics.

    UML (Unified Modelling Language) has evolved to become the industry standard for making diagrams of OOP language algorithms. SmartDraw offers some of the clearest brief explanations and examples of the nine types of UML diagrams that I have seen. They are:

    1. Class Diagrams
    2. Package Diagrams
    3. Object Diagrams
    4. Use Case Diagrams
    5. Collaboration Diagrams
    6. Statechart Diagrams
    7. Activity Diagrams
    8. Component Diagrams
    9. Deployment Diagrams

    Students of the Java programming lanugage should attempt to learn and use UML diagrams as they very nicely provide various ways to document a programme's source code with OOP (Object Oriented Programming) diagrams.

    Feb
    17-20

    The Deitel Java Case Study illustrates UML diagrams and other concepts and designs.

    Click here for the source code and JVM code of Elevator Simulation.

    Elevator Simulation from Harvey & Paul Deitel's JAVA HOW TO PROGRAM 4th Ed

    The web sites of commercial UML software offer excellent tutorials that teach the fundamentals of UML diagrams, albeit geared to implementation of their own product. Nevertheless, I found the following sites to be most instructive.

    There are also some excellent third party "tutorials": articles and the like. Check out these, for example:

    Feb
    23-27

    Every period is a work period on the Program Dossier.

    Mr. Donaldson inspects everyone's code for sufficient mastery techniques.

    Mar
    1-5

    March 1:    1st Iteration - Binder of Entire Dossier Is Due.

    Topic 4:   Computer Mathematics and Logic, 4.1:   Number Systems and Representations

    Videos: A set of fascinating streaming videos concerning high school and college mathematics are available at For All Practical Purposes: Introduction to Contemporary Mathematics. Download and zoom any of them to full screen. Of particular interest to our Computer Science 33IB are the videos:

    • 21 Computer Science - Overview - Hilbert, Turing, and Neumann.
    • 22 Rules of the Game - Merge Sort and Insertion Sort
    • 23 Counting by Twos - Place Value Systems, Binary System, Analog versus Digital
    • 24 Creating a Code - ASCII, the Laplacian pyramid, the Hamming code, Pseudo-random Number Generation

    Note that Kjell's MIPS Assembly Language Tutorial contains wave files of Kjell himself reciting the text. You may begin each wave file by clicking on a link embedded in the first letter of the paragraph associated with the wave file. It should take about 30 minutes to complete each of the following Kjell chapters.

    Also of interest are:

    Hand-outs on this topic will be forthcoming.

    Mar
    8-12

    March 8:    2nd Iteration - Binder of Entire Dossier Is Due.

    Mar
    15-19

    March 15:    3rd Iteration - Binder of Entire Dossier Is Due.

    Mar
    22-26

    March 22:    Final Iteration - Binder of Entire Dossier Is Due.

    Topic 4:   Computer Mathematics and Logic, 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.

    Assignment Due Friday, March 26:

    Do all 10 exercises in Eck's xLogicCircuits Lab 1: Logic Circuits.

    Remember that you cannot save a file from a Java applet. If you use the applet, then you must do a screen dump to a wordprocessor or paint programme to save the image.

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

    Assignment Due Friday, March 26:

    Do all 9 exercises in Eck's xLogicCircuits Lab 2: Memory Circuits.

    Remember that you cannot save a file from a Java applet. If you use the applet, then you must do a screen dump to a wordprocessor or paint programme to save the image.


    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 Leggo My Logg-O and the Logic Gates Circuit Simulation Program.

    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 (4.2.4) by Jacky Yeung (2003).
    Mar
    29
    -
    April
    2

    Expanding & Simplyfing Boolean Algebraic Expressions

    Begin by reviewing James Garland's powerpoint presentation on Boolean Algebra. Be sure to do the practice exercises and homework at the end.

    Assignments Due Thursday, April 1:

    Do all 4.2 Boolean Logic exercises from the Number Systems Handout, Exercises 4.19-4.28.

    Do all 4.3 Modula Arithmetic exercises from the Number Systems Handout, Exercises 4.29-4.31.


    Correct 4.2 & 4.3 On Friday, April 2: Covers all IBO objectives of Boolean Logic and Modulo Arithmetic.

    April
    3
    |
    April
    12

    Case Study 2004: Computer Aided Engineering (pdf)

    Peruse and study the IB 2004 Computer Science Case Study: Computer Aided Engineering (pdf).

    Johnson Jacob (aka "JJ"), Director of Information Technology at Escuela Campo Alegre in Caracas, Venezuela, has created an excellent Case Study Resouce Page for IB students studying this case study. If the preceding link is unavailable, refer to the locally available stripped copy of JJ's Case Study Resource Page.

    Assignment: Answer the questions (htm pdf wpd doc) found Posted On November 10, 2003 on IBO’s Online Curriculuim Centre by IB Computer Science teacher Dave Mulkey.

    Spring Break = Study Past Years' Papers

    Research & Generate Student Syllabus Web Page

    Eligible Topics For 2004 Student Syllabus Web Pages: 1st Come 1st Get

    All topics must create Kjell Type Tutorial Chapter(s) In Teaching The Following Topics.

    1. Implementation of IB Boolean Objectives With Electronic Workbench Version 5.12 (1-2 students)
    2. Sequential & Direct Access File Handling à la Deitel Chapter 16 (David Yeung)
    3. Construction of a Help Page as GUI and as HTML (1 student)
    4. The Application of CompareTo( ) As Used In The IB Dossier (1 student)
    5. The Use of The Current Version of NetBeans. (1-2 students)
    6. UML Diagrams That Were Required By Mr. Donaldson In 2003-2004. (1-2 students)
    7. How To Create An Animation of a Computer Application. (1 student)
    8. Software Tools For Developing IB Level Java Products Using A MacIntosh Platform (1 student)
    9. Software Tools For Developing IB Level Java Products Using A Linux Platform (1 student)
    10. Examples of Expressions of Boolean Algebraic Expansions and Simplifications (1 student)
    11. Other Topic Approved By Mr. Donaldson (1 - 3 students)
    April
    13
    |
    April
    16

    5th Last Week Before IBO Exams
    3: Computing Systems and Society
    1: Software Development

    April
    19
    |
    April
    23

    4th Last Week Before IBO Exams
    2: Computer Fundamentals
    7: System Life Cycle

    MondayTest on Boolean Logic
    Tues AMCase Study Overview: Computer Aided Engineering
    Tues PMComputer Fundamentals
    WednesdayCase Study Exercises: Computer Aided Engineering
    ThursdayComputer Fundamentals
    FridaySystem Life Cycle
    April
    26
    |
    April
    30

    3rd Last Week Before IBO Exams
    5: Advanced Data Structures and Algorithms
    8: File Organisation

    May
    3
    |
    May
    7

    2nd Last Week Before IBO Exams - 6: Further System Fundamentals

    Topic 6: Further System Fundamentals

    6.1Processor Configuration Details To Be Added.
    6.2The Machine Instruction Cycle
    Read Eck's Explanation of The Fetch-and-Execute Cycle: Machine Language
    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.

    Details To Be Added.
    6.3Disk Storage Details To Be Added.
    6.4Operating Systems and Utilities Details To Be Added.
    6.5Computer/Peripheral Communication Details To Be Added.
    May
    10
    |
    May
    14

    Last Week Before IBO Exams
    Topic(s) of the Week

    May
    17
    |
    May
    21

    The Week Of IBO Exams - Topic(s) of the Week

    Time of Session Paper To Be Written Duration of Session
    Monday PM, May 17th Computer Science Paper 1 HL = 2 hours, SL = 1¼ hours
    Tuesday AM, May 18th Computer Science Paper 2 HL = 2½ hours, SL = 1¾ hours
    The Entire IB Diploma Programme 2004 Exam Schedule (pdf)

    May
    25
    |
    May
    28

    Last Official Week of the Course - Topics of the Week

    1. Generate a IB Dossier Web Page
    2. Generate a Kjell Type CAI Tutorial

    Monday, May 24th is Victoria Day = Holiday
    May
    31

    Last Scheduled Day of Course

    IB Dossier Web Page Due


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

    URL:   http://www.donaldson.org/    Last Revised:   May 31, 2004