Samples of student work:

Journal entries - responding to a magazine article.

Journal entries - responding to the spreadsheet unit

C++ programming essays

Career Day documents

'The Name Book' sample screens
 

Journal entries - responding to a magazine article

Below are examples of student journal entries. Once a week I have students write about some topic we have covered in class. By having students summarize and reflect on what we have learned or discussed I hope to give them practice using higher level thinking skills and a chance to construct their own knowledge. The first three are responses to reading the article "The Virtual Office Gets Real" by Bruce Caldwell and Jill Gambon as published in Information Week, January 22, 1996.

Sample 1

The virtual office is about the way of new technology that allows workers to work at home using a process know as telecommuting. This process allows employees to stay at home instead of having to go to work. In the article it say that the amount of work done has increased and the cost of expanding decreased. This process would allow workers to stay home and do the work at what time is best for them. The problem's with this are that some people liked an office a lot because it gave them a social area. This was especially true for single males or females. Also it took time for the employees to get used to being at home and the software and all the things needed was hard for the employers to get and costly.

I think that the virtual office can be a good idea for employers who have a lot cf work and have to go far to work. It would allow people to save time and cost on gas. Also since you were working at home if you need concentration the work could be done better and you could relax more. This also could be bad in some ways since the employer would not be able to tell what your doing as easily and that people wouldn't be able to get help for things if they needed it without looking things up which takes more time to do. All in all though I think it should be up to the employer to choose what he wants.

Sample 2

The article entitled "The Virtual Office" discusses the question of whether or not the virtual office works. The "virtual office" is basically the idea of working through your computer, out of your home, but for another office. So, although you do not go to work physically, you can still go there mentally, by using your computer as the vehicle that transports both you and your work there. There are various factors to this "virtual office" method-- some are good; some are bad. But, all are used to help determine your opinion about the "virtual office."

The following are the main pros and cons I picked up on while reading this article. Some disadvantages to this are the fact that virtual workers may need constant support, express service, and maintenance. That means that they will always have to have access to these things. Also, it may take virtual workers who use the "virtual office" method up to eighteen months to adjust to their new environments. Another possibility is the fact that workers may lose their touch when it comes to vital parts of our everyday lives, such as contact with others on a regular basis, employees, informal learning, and strategy sessions. However, it seems that for every negative aspect of the virtual office, there is also a positive one. An example of this is the fact that although it may take workers longer to adjust, productivity increases 10 to 20%. Another thing is that technical and management training for workers and their managers can shorten the period of adjustment time necessary for workers. So, overall, I think that this method of working is acceptable, as long as workers don't forget about their people skills, and as long as they always realize that computers are not in any way replacements for humans.

Sample 3

The article I just read was entitled The Virtual Office Gets Real. This article talked about how having an virtual office at home and telecommuting was becoming a newer, more popular idea. This involves employees from major companies working at home rather than at the office. It states that the people who telecommute, using computer equipment to tap on to the job sight, is very effective in the aspect that it can lower the companies costs and increase their productivity rate. Big companies that were having financial problems, sought out telecommuting as a way to keep the staff but lower the cost. One of these companies that switched over to telecommuting was the IBM company. The company was in serious trouble and was going to have to layoff a lot of people. Instead of leaving these people without jobs, IBM issued a lot of their employees to work at home. They received great results from this action and saved about three million a year! However, adjusting to working at home could take their employees up to eighteen months. Once they adjusted though, typically they increased their work production rate up by 10 to 20 percent and kept it there.

I think that this virtual reality office is a very good idea. It seems to me that working at home would make a lot of people very happy. At first I thought that this could be a disadvantage socially, but by taking a better look at it I think that this would give people time to do other social activities. I can see why this would increase the rate of productivity and I think that it is a really good idea. In conclusion I would like to say that the "virtual reality" office is a upcoming must for the large business companies.

Journal entries - responding to the spreadsheet unit

Below are examples of student journal entries. Once a week I have students write about some topic we have covered in class. By having students summarize and reflect on what we have learned or discussed I hope to give them practice using higher level thinking skills and a chance to construct their own knowledge. The three samples below are in response to a unit on learning to use the spreadsheet, Microsoft Excel.

Sample 1

Several things can be learned from the Excel program such as finding the sum of equation with a simple key. One can learn how to chart material and assemble work much easier with using the Speed sheets. For example, in this unit there are places in which data can be organized into so that the material can be understood a lot clearer. I think that this unit is much quicker to work with than GW Basic and also much easier. There is not much writing to do because in this unit one can highlight words, drag, and push enter to get answers. Unlike in GW Basic there is a lot of math to calculate and a lot to work with. In Excel, math can be calculated by pushing a simple button and there are so many tricks so one does not have to copy the some material over and over again. Personally, I understood this much better than GW Basic, but I still like Word the most. The reason for this is because I really understood how to do the programs and it made the unit much easier to have fun while working on it. The graphs that we had to do for Excel was so easy because all one had to do was chose a graph and here it was all ready for you. Therefore, Excel was definitely a very easy lesson and fun to work with too.

Sample 2

The spreadsheet unit was very educational in many ways. Spreadsheets are used in many businesses all around the world. It is used in adding and subtracting and figuring out how much you have or might need. It is almost like GW Basic in many ways but it is a lot easier. Why I say that is GW Basic you could put in formulas and you could get an answer. But with the spreadsheet you can change almost anything. If you change one number it will change your whole total if you were using it in that way. But Spreadsheets also help out so that you can tell how your business is doing by making a graph. In the program Microsoft Excel it shows many different type's of graphs which range from bar graphs to line graphs to 3-D bar and column graphs. The spreadsheet unit will be very helpful to everyone because it will help show everyone how to use this program which some people will use in the work world today.

Sample 3

The spreadsheet unit we previously worked on will definitely help us in the future. I had worked on spreadsheet in the seventh grade, but never to this extent. This unit was a good review as well as addition to what I had priorly learned.

Learning all the shortcuts in the program is going to be very useful in the future. Before this year I did not even know how to use the autosum button. That is a very useful tool indeed! The unit also helped me to understand how you can relate spreadsheet to everyday life. I know when to use the different formulas as well as how to use them.

Graphing our results was also a very beneficial thing we learned how to do. By graphing your results you can see the data displayed in an easy-to-read way. These graphs can make oral reports more interesting as well as easy to understand. Graphs for the most part add flavor to your results. My mother uses a spreadsheet all the time to do her bookkeeping so I get to see how useful it actually is. I can now understand how she does the bookkeeping and even help her with it. Learning the spreadsheet unit is probably the most useful units we will learn. It helps you understand math a little better also by seeing how it is used outside of school. I think that this unit should definitely be continued to be taught. This unit is very helpful in more ways than one. If not right away sometime in the near future we will all be glad we learned how to use spreadsheet.

C++ programming essays

The following are samples of an essay that students taking the Programming in C++ course wrote. The purpose of the essay was to have students think through the process of writing a program. Click here to see the full set of instructions that students received.

Sample 1

This program I am about to explain (and try to complete) is one imitating the game mastermind. The game is simple but tricky, and must be converted into mathematics in order for it to run in C++. The game starts off with the computer randomly selecting three color pegs. The "colors" are actually numbers, and must be placed in the right position for the player to win. The computer, however, must tell the player when they have a correct peg and/or correct colors in their guess. The computer must also count the number of guesses before the actual code is broken.

In this program, we will have one void function, one int function, and our usual int main. We will also have #include<iostream.h>, #include "a:utility.h", and #include<random.h>. The void will be called GetPegs and will have a heading as follows: void GetPegs (int NumberGuess, int &Firstguess, int &SecondGuess, int & ThirdGuess). The content of this function will enable the computer to receive the guesses of the user, and ampersands were put in front of our variables so the information can be returned. We cout the lines: "Guess:" << NumberGuess<<, "Enter first peg", "Enter second peg", and "Enter third peg." Now, we could just cin the variable names to get the information - but we need to think about error-trapping. We called "a:utility.h" to entitle us to the things that will help us in our program. This file contains an error trap, and will prevent the user from typing in an unacceptable answer. After our cout line, we only need to write: FirstGuess = GetInt(1,5), SecondGuess = GetInt(1,5), and ThirdGuess = GetInt(1,5). This will error trap our returned information.

Our next function is our int TestPegs. The heading to this will look like this: int TestPegs (int FirstGuess, SecondGuess, ThirdGuess, Peg1, Peg2, Peg3). The variable Peg1, Peg2, and Peg3 are the computer-picked pegs which the user must try to guess. The guesses are: FirstGuess, SecondGuess, and ThirdGuess. We start off this function by declaring two new variables: CorrectPegs and CorrectColor. These are both equal to zero, and are the number of correctly guessed pegs and colors chosen by the user. To get the particulars of correct pegs and colors, we must use a series of if statements. The first series of if statements will count the number of correct pegs. If (FirstGuess == Peg1) CorrectPegs ++. If the Guess is equal to the computer-chosen peg, then the computer will count the add that to the total of correct pegs. The same exact format is done for the SecondGuess and Peg2 and the ThirdGuess and Peg3. Now, we must compose a series of if statements which will count the number of correct colors. We can do this by these three if statements: if ((FirstGuess == Peg1) || (FirstGuess == Peg2) || (FirstGuess == Peg3)) CorrectColor++; if ((SecondGuess == Peg1) || (SecondGuess == Peg2) || (SecondGuess == Peg3) CorrectColor++; if ((ThirdGuess == Peg1) || (ThirdGuess == Peg2) || (ThirdGuess == Peg3) CorrectColor++;. And after that you cout a line like: "You have"<<CorrectPegs<<"correct peg(s) and " << CorrectColor<< "correct color(s)" << endl; This set of if statements will allow you to keep track of the correct pegs, and the correct colors. At the end of this function, you must also return the CorrectPegs, or return(CorrectPegs).

The last part of this program is the int main, and it is where it all comes together. Again, in the int main, you must declare all of the variables that you have used in the functions. The program uses the randomize function to allow the computer to randomly pick the unknown pegs of the game. To do this you would type: randomize() int Peg1=random(5)+1; int Peg2=random(5)+1; int Peg3 = random(5)+1; For the final part of this program, we will have a while statement with the CorrectPegs not equal to 3. After that, in curly brackets, we will have NumberGuess ++ (to count the number of guesses), and GetPegs(NumberGuess, FirstGuess, SecondGuess, ThirdGuess); CorrectPegs= TestPegs(FirstGuess, SecondGuess, ThirdGuess, Peg1, Peg2, Peg3);. Then, for our final cout (outside the curly brackets) we will have "You have broken the code in "<<NumberGuess << " guesses."

To make sure this program works, I would first play it through a few times and make sure the desired output is executed. Then, I would purposely put in unacceptable answers to test the error traps. I learned a great deal about the functions and design methods which go into setting up a program like this. I was pretty clear on the functions, void, and return aspects of the program - but I was pretty stumped on converting the actual game in C++ language. It is quite difficult to convert a game into mathematics, because the logic is often hidden and tricky. New, I am more clear on the GetInt function, and whole 'returning' concept is much easier to understand.

Sample 2

When I thought of how I would write a program to play Mastermind in C++, I found myself using most of the topics we have covered in the past. I would have to write a function based program using integers, pointers, if and do while loops, and more.

After writing a heading and including iostream.h and lvp/random.h, I started off simple, sketching out how the int main would look. I declared CorPegs and Guess as ints both equaling zero, then I declared FirstPeg, SecondPeg, and ThirdPeg as ints. These three, ints would represent the guesses the user makes for the identity of each peg. I then made a system to create random values for the three pegs. I called on the randomize function, then defined ints Secret1, Secret2, and Secret3 as random (5)+ 1. This instructed the computer to assign a random value from (1 to 4) + 1 every time the program is run. This generates the "secret" pegs.

I then created a while loop, that asks the user for their guesses and checks them until they are correct. The condition for this loop is: while (CorPegs != 3). Inside the loop itself, there are three lines of code. The first, Guess++, is a sort of counter for how many guesses it takes for the user to find the secret combination. The next one, EnterGuess(Guess, FirstPeg, SecondPeg, ThirdPeg), calls on the EnterGuess() function to take a guess from the user. The final one, CorPegs == GuessCheck(FirstPeg, SecondPeg, ThirdPeg, Secretl, Secret2, Secret3), is a function that checks your guesses against the secret values and finds out how many are correct. As I wrote this loop, I made sure I wrote the ints the same way I had written them the first time, since they wouldn't work if misspelled.

Now that the loop is done, I must write a final statement that tells the user how many guesses it took them to crack the code. This is where Guess comes in. I write cout<<"It took you "<<Guess<<" guesses to crack tile code." Guess added one to itself every time the program ran, so it knows how many guesses the user took in his code breaking process.

Now that the int main is complete, I have to go back and write the functions I called in it. These functions are EnterGuess and CheckGuess. I will start by describing EnterGuess.

The header for EnterGuess is as follows: void EnterGuess(int Guess, int &FirstPeg, int &SecondPeg, int & ThirdPeg). We've already met all these ints and know what they mean, but the peg ints all have &'s in front of them now. These &'s are pointers, and indicate that they are values to be returned. The purpose of this function is, through cin and cout statements, to say which guess the user is on, and to ask him for his guesses as to what the first, second, and third pegs are. As with the last time I entered ints I have declared before, I must be careful and make sure they are written correctly.

Moving on to the next function, the header for EnterGuess is as follows: int CheckGuess(FirstPeg,SecondPeg,ThirdPeg, Secret1, Secret2, Secret3). In this function, I first declare the ints CorPegs and CorColors, and set them both equal to 0. Then I used a series of if statements to check the users guesses against the actual peg values. The first of these was:

if (FirstPeg == Secret1 (Next Line) CorPegs ++. It says that if the user says that the first peg is equal to the same number assigned to Secret1, add one to CorPegs, because that means that a peg is correctly guessed. Two similar if statements followed this one, checking the second and third pegs in the same way. By the way, when tile computer finds that all three of the pegs are correct, CorPegs = 3 and the loop stops.

The next part of the function is another system of if statements that checks how many of the user's guesses are the right color, so the, user can tell if he's on the right track. It is a system of similar if statements, starting with if ((FirstPeg==:Secret l) || (SecondPeg==Secret2) || (FirstPeg ==Secret 3)) CorrectColor++, and followed by two more, for the second and third pegs. What. these statements do is check each of the user's guesses against all of the secret values. If one of the guesses is the same value as any one of the three secret values, the user has a color right, an CorrectColor adds one to itself

Each time the computer checks all the answers, a message tells the user how many colors and pegs he got correct. It does this by saying "You got" << CorPegs << " pegs right and " << CorColor << " colors right."

And the program a is now complete I would of course go back now and check my logic and spelling in all of my functions to catch all my glaring errors, and make sure the program makes sense. I could then enter my program on a computer to check and see if it works or not. The most obvious indication of whether or not the program works or not is if I get errors. However, there could also be subtle, errors in the program that don't stop the program from running, but do stop it from doing what I want it to do. I can spot these buy looking at things such as Guess, CorPeg and CorColor. If Guess tells me I'm on guess number 5 when I'm actually on guess 2, chances are something's wrong. Also, CorPeg and CorColor should definitely be between 1 and 3, and if I have some Pegs right I should definitely have some colors correct also.

Having completed the program, a problem I noticed in this program is that when I entered a number that wasn't between one and five, there was an error. A possible way to make this program better would be include a line or two of code that corrected this.

Upon completing this program I find that I have learned a few things. Mainly, I have learned that it really is possible to plot out your thoughts on paper before writing a program on the computer, and that it actually helps. I also learned however, how to use certain commands, such as functions, pointers, and random more completely , I knew basically how to use them before, but I never fully comprehended how they worked. Now I do.

Sample 3

Rarely does one ponder on how a computer program, such as the game Mastermind, is created, but the detailed process of programming is easily completed through the usage of different options in the C++ language. By organizing complex thoughts and integrating C++ techniques, a complicated program such as Mastermind can be written and run with efficiency.

Deciding which functions were necessary in programming was my first step. I decided upon two functions other that "int main", the first being the void function I named GetGuesses and the second being the int function I called SolveGuesses.

The first function, GetGuesses, is used for asking the user for one of five possible colors for each of the three pegs. Parameters for this function are the guess number (GuessNum) and each of the pegs guessed (GuessFirst, GuessSecond, GuessThird) with an ampersand before them to return each one to the main function. To receive the user's guesses, the function GetInt can be called with default parameters 1 and 5 so that the user knows not to enter unacceptable guesses. It's then necessary to add the "utility.h" stream to the beginning of the program.

The second and more complicated function, SolveGuesses, must solve the majority of the thought process. The three peg guesses are again used as parameters, along with the actual pegs the user must guess (FirstPeg, SecondPeg, ThirdPeg). The body of this function sets two variables, possible called CorrectPegs and correct colors, to zero so they can be added to as necessary in a following series of statements. To calculate how many correct pegs the user has entered, three if statements are written in which one is added to the CorrectPegs variable if the user's guess is equal to the actual peg. For example, if GuessFirst is equal to FirstPeg, CorrectPegs become one rather than zero, and so on. Three more if statements are formed to figure the number of colors the user has guessed. If a guess is equal to either of the three correct pegs colors, one is added to the CorrectColors variable. Should GuessSecond, for example, be equal to either the FirstPeg, SecondPeg, or ThirdPeg, one is added to CorrectColors. When these statements are completed, the SolveGuesses function then prints how many correct pegs and correct colors the user has, returning the CorrectPegs variable to the int main to be used in a later loop. Both function, GetGuesses and SolveGuesses, must now be used in the main to carry out the game of Mastermind.

In the int main, the program must be completed by not only pulling in both functions in a while loop, but by also having the computer choose the actual pegs to be guessed. Variables CorrectPegs, GuessNum, GuessFirst, GuessSecond, and GuessThird are declared as ints, the former two being set equal to zero. The randomize function is then called, making it necessary to add the "lvp/random.h" stream to the beginning of the program. The randomizing is then used by declaring FirstPeg, SecondPeg, and ThirdPeg equal to random multiplied by five, the number of possible colors, and added to one. To pull together and actuate the program, a while loop is created.

The while loop should run only if CorrectPegs, which has just been set equal to zero, is three. The loop must then add one to GuessNum to make the user aware of how many times he or she has guessed. Both GetGuesses and SolveGuesses are called, the latter being set equal to CorrectPegs. Because the CorrectPegs of the SolveGuesses was returned in the function, the number of pegs correctly guessed will now be equal to the CorrectPegs of the int main. If all three pegs were guessed, the game has been won and the loop is complete. Otherwise, the loop will continue until CorrectPegs is equal to three. The final step of the main function is to inform the user how many times it took to break the code. The game has then been won and the program is complete.

To test the program, different variables can be used to ensure that the game will run smoothly for all users. The first and most obvious variables are ones below one or above five, testing the GetInt function. The program can also be checked by using all on one color or no same color to make sure no technical error was made in the SolveGuesses function. After the first series of checking, the came can again be proofed by taking the information given, how many pegs are correct and how many colors are correct, and creating new colors. The two series of guesses should then be compared and checked to guarantee that the CorrectPegs and CorrectColors variables are accurately working. By using varying data sets, the program can be safeguarded and perfected from the smallest of errors.

When I was given this problem, the first thoughts of trepidation entering my mind were of how complicated the program seemed and how difficult it would be to describe the thinking process. It was necessary to use most every skill I've learned thus for in programming, from creating different functions to calling different streams, but I found a somewhat-simple solution. The program has showed me how far I've come in a few brief months as far as the C++ language is concerned. I came into the class not even knowing what the language was, and I'm now creating programs I never imagined I could complete.

Career Day documents

The following items are products of the Career Day project that my students helped with:

A copy of the initial interest survey given to students:

HOMEROOM: ______

CAREER DAY SURVEY

The Upper School faculty is planning to organize a Career Exploration day in April/May. In order to plan a successful day we need to know what careers you would like to hear about. Please check the FOUR OR FIVE career lectures that you would be interested in attending. If there is a career you are interested in that does not appear on this survey please just write it down at the bottom of your paper. This is an information gathering tool, after we have definite commitments from speakers you will have a chance to choose three speakers from the list.
 
1 Accountant 18 Medical Doctor
2 Actor/Actress 19 Medical Researcher
3 Architect 20 Medical Secretary
4 Armed Services 21 Model
5 Banker 22 Musician
6 Computer Programmer/Analyst 23 Newspaper Reportor
7 Dentist 24 Nurse
8 Disc Jockey 25 Paralegal
9 Engineer, chemical 26 Paramedic
10 Engineer, electrical 27 Pilot/ Air Traffic Controller
11 Engineer, mechanical 28 Psychologist/ Social Worker
12 FBI agent 29 Physical Therapist
13 Fireman 30 Policeman
14 Graphic Artist 31 Radiologist
15 Lawyer 32 Small Business Owner
16 Marine Biologist 33 Teacher
17 Marketing / Advertising 34 Veterinarian
 

A copy of the data base designed to keep track of the presenters:

A copy of the data base designed to keep track of students and their speaker choices:

A copy of the mail-merged thank you letter sent to the presenters:

«Title» «First Name» «Last Name»

«Address»

«City/State/Zip»

Dear «Title» «Last Name»,

I just wanted to thank you again for taking the time, a very precious commodity, to come and speak at our Career Day. The many positive comments and thoughtful discussions that I (and other teachers) shared with students yesterday afternoon were proof positive of the success of your efforts. You brought something to them that we could not. Jesse Jackson said that "Your child needs your presence more than your presents." Our children appreciated your presence yesterday.

With sincere thanks,

'The Name Book' sample screens

The following are sample screens from "The Name Book" project that students complete in Microsoft PowerPoint:

Sample 1

Sample 2

Sample 3