| Task | Topic | Assignment |
Algo |
Monthly Algorithmic Contests
CCC
USACO
USACO Training
Competition Code File
Competition 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:
- All source code must be printed and submitted by the end of
Tuesday's class. Hint: Print each solution when it is completed.
- All source code must be copied to the Z: drive .
- Navigate to the folder entitled, "Friday Contests".
- Navigate to a folder containing the day's current date.
- Create a folder bearing the student's first and last names.
- Copy all files that were used &/or generated during the period.
| Bonus marks for contest questions are awarded as follows. |
Solution Attempt | During Contest | Done by Tuesday | Total Bonus Per Question |
|---|
| Sincere | 1% | 1% | 2% |
| Effective | 1% | 1% | 2% |
| Efficient | 1% | 1% | 2% |
| 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. |
|
|
|
| Web Pages of Dossiers of the 2006/2007 Academic Year: Higher Level Unless Otherwise Indicated |
|
|
|
| Topic | Resources | Assignments |
Organize Your Dossier Binder ===== Due Jan 18
|
Binder
|
IBO Internal Assessment Cover Sheet (front & back) is the first page in the binder.
Donaldson's 2006 Asessment Criteria
will be placed here after he has graded the dossier.
Compose and insert a proper cover page.
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.
Code is single spaced. Everything else is double spaced.
Print on only one side of the sheets of paper in the final draft of the dossier.
Use APA Style Citations and References.
Create a Separate Footer For Each Section.
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.
|
| Topic | Assignments |
Dossier Forest || \/ The Sequence ===== Due Feb 25
|
| # | Criterion | Dossier Trees ==> Tasks |
| TOC
| Table of Contents
Click here for detailed instructions. Example From Prior Syllabus:
htm
wpd
pdf
doc
|
| Preface | Preface |
| P1 | Preamble |
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.
|
| P2 | Worthiness |
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?
|
| P3 | Acknowledgements |
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.
|
| P4 | Annotated 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 A | Analysis |
| A1 | Analysing the Problem |
Three Reviews of Analagous Software (Example: Gerry Donaldson's 2001 Review of MacMahon 2.36)
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)
Interview Transcript with a SME (Subject Matter Expert)
UML User Stories (Example: NCSU's CofferMaker Project User Stories)
UML Use Case Diagram (Example: NCSU's CofferMaker Project Use Cases Diagram)
Analysis Incorporating the Above
If applicable, a theoretical analysis as exemplified in Bobby Naini's 2000 dossier
Gravity Works
Construct a Systems Flowchart of the dossier program.
|
| A2 | Criteria for Success
=====
Reports of Tests of these Predictions must be Presented in D1 This Annotated Hard Copy of the Test Output
|
Minimum Performance
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.
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.
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".
Response to extreme data input: Give examples and predictions of both the data and responses.
Quantify the data that can be stored. Indicate system requirements.
Usability
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.
Appropriate response to user input: Give examples and predictions of both data and responses.
|
| A3 | Functional Prototype |
Initial Design:
UML Class (Structure) Diagram Showing Only Associations:
(Example: Deitel's Elevator class diagram)
UML Class (Structure) Diagram Including Attributes and Operations:
(Example: Deitel's Elevator class diagram)
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)
Functional Prototype
Input: Command Line or GUI
- 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
Output: Command Line or GUI and/or Results of JUnit Tests
Documentation of User Feedback: Questionnaire administered.
|
| Stage B | Detailed Design |
| B1 | Data Structures |
- 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.
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.
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.
Indicate how data objects will be changed during execution.
Quantity of data that can be stored.
|
| B2 | Algorithms |
Stubs that are appropriate for the data
- Parameters of both constructors and methods
- Return Values of methods
- Pre-Conditions of methods
- Post-Conditions of methods
|
| B3 | Modular Organziation |
Do one of the following to choose modules that incorporate the data structures and
methods required for the solution in a logical way.
Stepwise Refinement in System Design Specifications: (Example: See Gerry Donaldson's
FIDE Swiss Tournament Wizard)
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.
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 C | The Program |
| C1 | Using Good Programming Style |
Program listings must be easily readable.
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.
Source code is placed here, in this section.
Identification header for each class and interface:
- Program name and purpose
- Author, Date, School
- Computer used, IDE used.
Good internal documentation:
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.
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.
Identifiers have meaningful names.
Methods are small == generally each method fits entirely on one screen.
Objects are clearly separated.
Objects have comments for their parameters.
Indentation illustrates the programming constructs.
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.
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.
|
The wrapped portion of wrapped lines are indented.
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.
|
| C2 | Usability |
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.
- GUI Interface.
- Helpful Menus.
- Help Page. [See Jacky Lee's How To Create A Help Page.]
|
| C3 |
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.
- IOException: detect and reject erroneous data input from the user.
- Run-time exceptions.
- Arithmetic exceptions.
- Data-file errors.
Implement customized exception types for errors paticular to your program.
|
| C4 | Success of the Program |
Provide annotated screen dumps showing that the program runs properly.
- Input/Output: Annotate Screen Dumps of Sample Runs
- 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.
- 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.
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.
|
| C5 | Regression 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 D | Documentation |
| D1 | Annotated 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!
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?
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.
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.
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.
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.
|
| D2 | Evaluating Solutions |
In this critical analysis of the resulting solution, identify:
- criteria that the program successfully addressed. Refer to the results of criterion D1.
- limitations of the program.
- improvements for future releases.
|
| D3 | User Documentation As Hard Copy |
In this critical analysis of the resulting solution, identify:
- sample input
- written instructions
- screen shots
|
| D4 | HTML 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
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 |
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 |
- 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 E | Holistic Approach |
| E | Holistic Approach |
Provide a hard copy of a dated log or blog documenting:
Tasks attempted or completed on specific dates.
Reflections as seen in the conclusion of Thushy Amirthalingam's 1997 Pascal dossier,
Personal Information Manager (PIM).
Significant experiences or resources that contributed toward understanding the dossier.
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
|
|
| Topic | Resources | Assignments |
|
|
Learn UML
Pre-2006 Com Sci 33-IB Web Page
|
Place the following diagrams in your dossier.
- User Stories and User Diagram(s)
- Class Diagram: shows the major classes and relationships in the program.
- 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.
- Sequence Diagram: describes how a particular method is implemented, clarifying the order of the messages.
- Collaboration Diagram: contain the same information that sequence diagrams contain, but clarify
relationships between the objects.
- State Diagram: provides notation for finite state machines, useful for figuring out how a system behaves.
|
| Topic | Resources | Assignments |
Life Cycle
|
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 al | Nyhoff | IB Comp Home | ECA | Description |
| Specification | Problem Analysis & Specification |
-- | -- | Bring precision and detail to the original problem statement |
| -- | -- | -- | Concept Formation |
Create objectives & limits of project. |
| -- | -- | Systems Analysis | -- | fact finding |
| -- | -- | -- | -- | -- |
|
| Topic | Resources | Assignments |
Number Systems
|
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 | Resources | Assignments |
Boolean logic
|
Topic 4.2
ECA 1
ECA 2
ECA 3
ECA 4
ECA 5
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:
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
OR
import the Eclipse project from
this Circuit directory.
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.
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:
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:
- Boolean Logic
by Lisa Chen (2002).
- Boolean Logic by Brian Lau (2003).
- 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 | Resources | Assignments |
CPU Config
|
Topic 6.1
ECA 1
ECA 1
IB Home
The Journey Inside: Microprocessors
|
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 | Resources | Assignments |
Magnet Disk Store
|
Topic 6.2
ECA
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.
|
OS and Util
|
Topic 6.3
ECA 1
ECA 2
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.
|
Net Works
|
Topic 6.4
IB Home
|
Topic 6.4: Further Network Fundamentals
Read IB-Computing's Further Network Fundamentals.
|
Peri- pheral Comm
|
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:
- Ports and Handshaking
- Memory mapped I/O
- Controller
- Direct Memory Access and Buffer"
- Interrupt and Polling
|
File Organ
|
Topic 7
IB Home
ECA
|
Topic 7: File Organization
Read IB-Computing's File Organization.
Read ECA's ECA's File Organization
|
| Task | Topic | Assignment Due 31 May 2006 |
C.A.L. 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:
- Kjell type tutorial(s)
- Kjell type quiz(zes)
Bradley Kjell has made the following software available for creating tutorials
- cssmaker.zip
- 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
| Criteria | % |
| Theory | 25 |
| Ques & Ans | 10 |
| Graphics | 20 |
| Quantity | 25 |
| Quiz | 20 |
|
| Task | Topic | Assignment Due 13 June 2006 |
Post Dossier 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.
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....
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.
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.
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.
|
The executable jar and data files must be packaged in a self-installing file deployment bundle such as that
created by InstallStation.
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.
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.
All internal links must have relative addresses; not be "hard-wired" to specific directory paths.
The root html file of each directory should be named index.htm or index.html.
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
| Criteria | % |
| Menu | 10 |
| PDF File(s) | 20 |
| Javadocs | 15 |
| Source Files | 10 |
| Executable Jar | 15 |
Movie Overview (Camtasia Type) | 20 |
|