Turn in Stage B - Design.
Discuss Mastery Factor Check List
* SNOW DAY *
Take advantage of this time "off" to get some serious
work done on your project.
(1) Work on Stage B - Design -
remember it is due on Mon 8 Feb.
(2) Read the sample dossier to see what your work should look
like.
Consult the advice in the guidance notes - that might also be helpful.
(3) If
you get stuck, send an e-mail to the teacher at Dave_Mulkey@fis.edu
We will spend 4 weeks of class time writing the program for your dossier project.
Reminder of IA deadlines:
Stage C : Program Finished - 5 Feb 2010
Stage D + all printing : 12 Mar 2010Presentation : 20 min Interview with the teacher,
scheduled between 15 Mar and 27 Mar, 2010
Next week will be Mock Exam Review week . We will review during classes.
Homework is to complete as much as possible on your functional prototype.
Due Date : Fri 4 Dec 2009
On Fri 4 Dec, you must turn in your functional prototype, together with your updated design overview. The functional prototype must be submitted by saving it on the 329 server. The revised design overview may be submitted on paper or electronically. This is an IB Internal Assessment deadline and no extensions will be given.
Functional Prototype
Before completing Stage B - Design - you may find it helpful to produce a functional prototype. This should help you clarify your thinking about some of the data-structures and algorithms. This is a very simple, starting version of your project's program. Use your Overview Design document to guide your work. The goal is not to produce a finished program, nor even to produce a limited version. Rather, concentrate on just a few factors that might be tricky. Ask the teacher for suggestions of what would be useful to write first.
Here is the beginning of a Functional Prototype based on the Sport Team Overview . This would hopefully be written and tested in about an hour.
Monday's test about Google will involve larger questions, like:
Describe how Google manages to deal with a billion search requests per day.
or
Explain how Google has managed to implement a very
sophisticated system
using only normal (cheap)
hardware - no expensive servers.
Read as much as you can, think about what it all means, and make sure you understand terms like:
Parallel processing, clusters, UPS, index server, Gigabyte, artificial intelligence
and the rest of the words in the assignment.
Homework - read this :
Google Server Design http://news.cnet.com/8301-1001_3-10209580-92.html
Google Cluster Architecture
http://www.computer.org/micro/mi2003/m2022.pdf
1 - Read about the Google Algorithm and Google's
PageRank.
Write
down questions and bring them to tomorrow's discussion.
2 - Open the notes below. Read any (or all?) of the articles.
Your goal is to understand how Google works.
Project Timeout
Put aside your project for a few days. Let's talk about How Google Works .
The information in that page is about 5 years old. Some things have changed since then.
In addition to answering the questions in the project page, try to update any information that is obviously out-of-date.
Try to categorize your questions and discussions into these categories:
* WRITE NOTES both during discusssions and while you are researching/investigating.
* ASK QUESTIONS - your goal should be to LEARN AS MUCH AS YOU CAN
* LEARN VOCABULARY - things like bandwidth, terabytes, clusters, ....
Plan on a written test on Monday 16 Nov about How Google Works.
Remember - your design overview is due on Thursday 5 Nov 2009
Continue work on your OVERVIEW design for your project.
Due Date : Thursday 5 Nov 2009
You must create an OVERVIEW of your project design.
Due Date : Thursday 5 Nov 2009
You are encouraged to use the template shown below. Change it as needed to suit your project. Your project should be roughly this size. If it's a lot smaller, you risk being penalized because it is too simple. If it is considerably larger, you are commiting to a whole lot of work and you might fail to finish on time.
We will work on this during class on Monday and Tuesday - if you are unsure what to do next (e.g. you are "stuck") get help from the teacher. You cannot afford to sit around waiting for inspiration.
Study the Sport Team Design Overview. Notice that it contains a variety of ideas, but the ideas are organized into modules so that the design is clear and the program can be written.
Now take the Design Overview Template and start writing in ideas for your project.
You will probably modify this later, but try to do a complete job before you start programming. Otherwise you will probably make false starts and waste time.
Later you will need to add more details to this chart and present your Detailed Design Documentation. But you can ignore the small details for now.
OOP
Reminder : Written test on Thur 22 Oct - About the Airport Case
Study
Here is the test and a make-up
test .
Today's discussion:
For each sub-system in the Case Study, outline the data storage needs. That means
Start with a PNR - p. 10.
Here are some further online resources worth looking at:
Off Topic : Here is an old video about Vista - how good it's GONNA be (?)
But it
also has some interesting stuff about new development systems,
as well as
"grid computing".
Watch the film Eagle Eye - chapter 16 at the airport. It shows how an automated baggage handling systems sorts out packages to end up in the right place.
Answer these questions:
Eagle Eye is an interesting film for IB Computer Science students. The overall scenario is unrealistic at the massive, catastrophic level presented, but lots of the small details are realistic (e.g. biometric ID systems). If you get the chance, it's well worth watching.
Read the Airports Case Study (get a paper copy from the
substitute). FIS local copy here.
Highlight any technical
vocabulary that you don't understand.
Prepare for a detailed discussion on Thursday. Here are some questions to consider:
(1) Look at the "Integrated airport system" diagram on page 3, as well as the brief description. State 3 examples of data that might be shared between two different sub-systems.
(2) For 2 sub-systems, explain why security is an
important issue.
For 2 other sub-systems, explain
why security is not so important.
(3) Page 5 lists a variety of biometric
identification possibilities.
(i)
Describe a non-biometric identification system that depends on
hardware.
(ii) Describe a
non-biometric identification system that depends on software.
(4) Page 6 describes RFID tagging. Explain briefly how this works.
(5) Page 7 describes self-service check-in. Describe 2 automated processes that are probably required during self-service check-in.
(6) Page 8 says: "In particular, they are concerned that manipulating a computer-user interface will distract them from their tasks, and that important data automatically updated on a computer screen will go unnoticed." Describe a possible method of dealing with this problem, so that they can finally get rid of their paper.
(7) Page 9 describes the baggage handling software.
(i) Explain what a "3D virtual reality baggage
handling simulator" is.
(ii) Describe 2 tests that
should be carried out "in the real
world"
rather than
depending on the simulator.
(8) Page 10 describes the Reservation sub-system. Explain the role of "governments" in this system.
(9) Page 12 describes Wi-Fi.
(i)
Describe who uses this system and for what purpose.
(ii) Decide whether the Air-Traffic-Control system should use
Wi-Fi
and
justify your answer.
(10) Page 13 talks about "overdependence on computer
system."
(i) Describe 2 problems that would be
difficult to handle without computer systems.
(ii)
Describe 2 problems that could be handled adequately without computer systems.
Data Structures + Algorithms = Objects
Turn in USER STORIES and GOALS (by e-mail).
This week, we will spend all class periods writing Stage A documentation. So plan on working during class (bring your work with you).
Now take the user stories and extract GOALS (criteria for
success).
Turn in your USER STORIES and GOALS on Monday 14 Sep.
Work on your Stage A documentation.
If you haven't done so yet, read the Sample Dossier
to see what's required, and start writing the Problem
Description section.
As you gather more information, you may want to change
or expand your
Prototype. Maybe you can work on that.
Remember to bring a fairly complete set of User
Stories
to class on Friday - otherwise you will be unable
to
participate fully in the lesson.
REMINDER : Stage A due Friday 25 Sep - more info here
Automation in Your Project
Due to network failures last week, several students failed to turn in their Automation ideas. This is due at the beginning of the period today (Monday).
Reading - Read chapter 2 from Head First Software Development
Read sample user stories in Dossier Guidance Notes
Read the example user stories in the Sample Dossier
Talk With the User - Get User Stories
It's time to meet with your intended user. Show them the ideas you have so far -
Take a notebook with you and collect User Stories.
You will need to help the user in this task. They are not likely to spontaneously tell you all the things you need to know.
Due Date - Bring a copy of your notes to class on Friday 10 Sep.
Automation in Your Project
The user must type in data and press buttons. But the computer should be doing some work, too. What automation can/will/should you implement to make the user's life better? Stick to ideas that are feasible. For example, in a math-quiz program like QuizTacToe:
Okay - program presents questions in the order they are stored in a data file
Better - program randomly chooses a math question from a list in a data file
No - program automatically creates a suitable question
Maybe - program adjusts the
difficulty of questions according to user's
results,
e.g.
after 4 correct answers, the program chooses harder questions
You can make a list of ideas and rate them as yes/no/maybe later, but it's probably best to avoid the "no" ideas if they are clearly too difficult. If it sounds like a good idea, but you're not quite sure how to program it, but you're pretty sure it's possible, then it's a "maybe".
Take your time. Do a lot of thinking about this. Type your ideas
in a word-processor.
Spend at least an hour on this.
Due Tue 1 Sep
Data - what DATA will your project need to input? store? output?
Start making a list of data-items (e.g. variables) and data-structures (e.g. arrays and files). Write down everything that pops into your head. You can organize it later.
Homework: Read p 13-16
Design & Implementation Discussion
"2. A hospital is introducing two new computer
systems. One to handle stock control in the kitchens and another to
monintor patients in intensive care using a central workstation receiving data
from sensors attached to the patients."
From Meyenn &
Jones, p.9
a. Describe how various users might access these two systems.
b. Discuss how the changeover from the old system(s) could be made. Use specific technical vocabulary to describe the changeover methodology.
c. Discuss data items that will be:
i. shared by both parts of the system
ii. used
only in one part of the system or the other.
d. Describe 2 ways that integration between these
systems could:
i. improve
effiency
ii. improve reliability
e. Describe some items that must be discussed in the
requirements specification,
including both data and algorithmic (features) items.
f. Explain why part of the intensive care might use CLI instead of GUI.
Homework: read p 10-12. Be preapred to discuss this in the next class meeting.
Due TODAY!
PowerPoint Prototype for your project.
Homework: read pages 6-8
Due Tomorrow
PowerPoint Prototype for your project - here are the topics:
More discussion about Projects :
http://dl.getdropbox.com/u/239179/ibcomp/Dossier/DossierNotes.htm
** Homework: Read pages 2-5 in the textbook **
Summer Assignments
Internal Assessment Dossier Project
Click here to see the final exam review notes
Sorting and Searching in a Table
NetBeans Database #3 - An even better Student Planner
NetBeans Practice #2 - More with Student Planner
NetBeans practice project - Student Planner
Test : Monday 11 May
Homework : Install NetBeans at home and try it out.
Keep the CD. You
will need to copy all the files
onto a hard-disk to make it work
correctly.
Here a solution
program for the first sorting worksheet.
It contains a SimpleSort instead
of a SelectionSort.
Answers for AWTpractice1, including TicTacToe buttons.
Homework : Find out the difference between "Bubble Sort" and "Selection Sort".
More AWTpractice
AWT Controls
AWTpractice.java Our Java Notes
Redesign - Improving the prototype to improve usability and functionality.
Turn in your Dates program by copying the entire folder into your folder on the web329 server.
Student Checkout Program - WRITING and READING text files
Dates Mini-Project - due Wednesday 11 March (beginning of class)
Look at this sample program : http://ibcomp.fis.edu/CIAfactbook/WordFinder.html
Add another TWO more FIND methods:
finding 3 words, where ALL of them occur in one line in the text file
finding 3 words, where ANY (1 or more) occur in the one line in the text file
Hints :
ALL words = means you must use AND logic (&&)
ANY word = means you must use OR logic (||)
Somehow the two methods need DIFFERENT parameter lists.
They
cannot both accept the filename and 3 words, because POLYMORPHISM only allows
you to use the same method name if the PARAMETER LISTS are different.
In case you need the text files, here they are:
a b c d ... they are all in the zip archive.
Look at the CIA Factbook (at www.cia.gov)
Change one of the countries into a text-file (or download their text version)
Homework: Write a program that can search through the file for a specific piece of data and print it - for example, searching for Population - then print the corresponding number.
Quiz Friday using the program you wrote.
Text Files
Try these examples (at the end) : Data Storage and Text Files
Some vacation "reading" :
The Amish - Resisting Technology
The Future (and history) of Science
Turn in your Bomb-Seeker Program
Spend the rest of the period investigating and reading about and the "Paperless Office"
Kings - a Simple Board Game in a 2-D Array
Bomb Seeker - a Minesweeper Imitation
More practice with array algorithms.
Practice with array algorithms.
More simple algorithms - programming in class
Homework reading - Algorithm Notes
Packing Algorithms - More practice with array algorithms in the packing problem.
Homework : write a program to find the largest number in an array
Simulations - Loading.java
Object Oriented Programming
Examples: Personal Notebook Program Adder - OOP demo BiggestPrime
Reading: http://math.hws.edu/javanotes/c5/index.html
Be sure to read Mr Mulkey's notes about Operating Systems - Operating Systems - Past, Present, Future
Use these practice questions to review/practice for the TEST on Tuesday 2 Dec. It's recommended that you study with other student(s) and compare your answers. You may also ask questions in class and get the teacher's opinion. Notice that the [number] in brackets after each question tells how many MARKS it will be given, and that is roughly equivalent to the number of significant ideas/concepts that your answer should contain. So a [2] mark question would not require you to write an entire page for an answer. In IB exams, you have about 1.5 minutes per mark to answer the questions - e.g. a 50 minute test would probably have 30-35 marks.
We will start programming again next Wednesday.
Operating Systems - Past, Present, Future
Prepare for a TEST on Tuesday 2 Dec.
The test will cover all
the reading and lectures
from the past couple weeks - input/output
devices,
operating systems, etc. No programming on the test.
Operating Systems and Platforms
HW : Read this article : http://computer.howstuffworks.com/operating-system.htm/printable
5-minute quiz next class
Read pages 155-157 in Chapter 3
Find out how printers work.
Specifically, how does a laser-printer
control where the text appears on the page?
How does it put the toner
(powder) in the right place on the drum,
and how does the toner end up on
the paper?
You might try reading about laser printers at www.howstuffworks.com
Read pages 151-154 in Chapter 3
Quiz tomorrow (5 minutes)
Read pages 140-144 in Chapter 3
Homework: Read lesson 11 in Blue Pelican Java - "The For...Loop"
Memorize: 1, 2 , 4 , 8 , 16 , 32 , 64 , 128 , 256 , 512 , 1024
1. Turn in your Jeopardy program by PRINTING IT ON PAPER and giving the paper to the teacher.
2. The class will discuss these practice problems.
Daily Quick Quiz
Beginning Wed 22 Oct, each class will begin with a 5-10 minute written quiz. These will always be written on paper - they will not involve using the computer. Why? At the end of the IB course, you will have 2 written exams, about 90 minutes each. You will need to write clear, concise, correct answers quickly on paper. That includes writing Java program code. Practice makes perfect (or at least better)! ( If you arrive late to class, you will have less time to write your answers.)
Bring a working program on Tuesday, 21 Oct to be graded.
This week we will work on the Jeopardy program.
Mr Mulkey will be absent Wed-Fri. If you get stuck and need help, you should talk to another student, or send an e-mail to : Dave_Mulkey@fis.edu . You won't get an immediate answer, but certainly within a couple hours.
Follow the instructions in the assignment. Bring a working program on Monday, 20 Oct to be graded. You may share ideas with other students, but don't copy code directly.
Math Helper - a complex math calculator
DrJava is a standard Java IDE. We will start using this now, as Processing is a bit non-standard, making it difficult to work with standard Java sample programs. Start DrJava from your class CD, or from the short-cuts on our 329 desktops.
You can download DrJava here: http://ibcomp.fis.edu/drjava.exe
or here: http://www.drjava.org (get the Windows
Executable file)
Inputting Numbers
Read these notes and do the programming practice at the end
Reminder : Quiz Friday 29 Aug 08
Homework: Read about Inputting Numbers
Reminder : Quiz Friday 29 Aug 08
Read : chapter 4 in Blue Pelican Java.
Do the questions at
the end of the chapter by:
- reading the question
- trying to guess the
answer
- checking the answer by running the code in a Java editor
(Processing)
The teacher will answer questions tomorrow in class.
Here are the teacher's answers (no guarantees):
(1) 109, 104 (2) j++; or j=j+1; or j+=1; (3) 1992.37
(4) System.out.println(zulu--); (5) 3 (6) v -= (p-30);
(7) v = v - (p-30) (8) -22 (9) 2 , 5 (10) 3=g causes an error
(11) double m = 3.14 , b = 3.14 , f = 3.14 ; (12) int x,y,z;
(13) 7 (14) 21 (15) a command that changes the value of a variable
(16) k = i%j; (17) 4 ?? (18) j--; or j = j-1; or j -= 1;
x = x++ ; is a very silly statement, that doesn't do what we expect.
So
don't use it! Write x = x + 1; or x++;
Emergency Plans
http://dl.dropbox.com/u/239179/EmergencyPlan.html