EMPIRICAL DATA: Generating data with a Free Pascal program
HW3 is about generating empirical data using Free Pascal (either using the Free Pascal IDE or the Lazurus system) and the function given by the language for generating pseudo-random numbers. Choose one of the problems in the HW3 folder to work on.
There are many ways to generate empirical data. You can take a survey. You can do research that includes counting things that exist, for example, the number of websites that UIS maintains on its servers. (I'm told that number is now over a million.) You can also write a program that generates data; that's what you will be doing in this assignment.
Exactly what you need to do to generate your empirical data is specific to your individual assignment. However, some rules apply to all of you:
1. The generation and reporting of this data is supposed to be your work and your work alone. You are not allowed to work in teams, and you can't beg or hire help from anyone else to get it done. If you get someone else to do your work for you and you do not give them credit, then you are a plagiarist. If you copy someone else's program, then you are a plagiarist. By now it should be clear that plagiarism is a major no-no.
2. If you incorporate other people's code or ideas into your code, then (just like in a written document) you must give credit to whoever provided that code in your code's comments. If you copy someone else's code and you do NOT give credit, then you have committed plagiarism.
3. Once you have generated your data, you will have may to report about that data in another homework assignment.
4. You must use a Free Pascal program to generate your data for HW3. It is not acceptable to use some other programming language, and not some other implementation of Pascal. If you use something different and I can't compile your Pascal program on my first try, it will cost you points. You may decide to use a different language to develop your program, and then convert it to Pascal. I doubt that this will save you much time and effort, but you may do this if you'd like. However, it is your Free Pascal program that you will hand in and that I will grade.
5. When you hand in HW3, you should hand in the Free Pascal program you used to generate your data. Call the file lastnameHW3.pas, where "lastname" is replaced by your last name. For me, the file would be called vespaHW3.pas. Notice that I do NOT want your data that you generate. I will run your program, and I want your program to generate your data, but for me on my machine.
6. You must use Pascal as the programming language for any software written in this class. The code must be compatible with the Free Pascal compiler. You will have to write a Free Pascal function or procedure on your final exam in CSC 540, so this assignment should be good practice for you. Be sure to include at least one function and one procedure in your HW3 program.
7. Many of your simulations will use BIG numbers, so be careful. Use qword Free Pascal variables instead of integer variables so that your data does not overrun the variables. (longint includes negatives, 0 and positive numbers; qword is 0 and positives only.)
In COURSE DOCUMENTS there are several Pascal examples. You should look at those before doing this assignment. There are plenty of useful ideas in those programs.
Once you have generated your data, try to analyze it. Is the data enough to answer the question(s) from your assignment? Sometimes, you might need to generate more data to prove a hypothesis or demonstrate your point of view. It could be also the case that the data you collected might not meet your expectations.
For most of you, the description of your assignment will include some suggestions about how many times you should repeat your experiments.
You have a while to complete this assignment, but don't delay. Generating, interpreting, and reporting your data will take some time. Tempus fugit! (That's Latin for "time flies!")
If you do input and output from files (and I think it is a very good idea to do so), then be careful about where that file appears. Generally, unless you do something different, files that are generated end up in the same directory where your executable files are created by the Free Pascal compiler or by Lazarus. In your opening comments in your program, be sure to tell the person running your program (me) where any external files necessary for your program should go.
The name and purpose of any files that your program uses is one of the things I will look for in the opening comments of your program. Other information there should include your name, the date, the name of our course, and a coherent explanation of what your program does. The program should include a significant opening comment, and useful internal comments. Constants, user-defined types, procedures and functions should be used as appropriate to make the Free Pascal program easy to read and maintain.
Following this specification is a list of questions that will be used to grade your HW3 assignment:
Questions:
Is this program the student's own original work? (If not, stop grading.)
Does the program compile successfully using the Free Pascal compiler? (If not, stop grading.)
Did the student turn the assignment in on time and according to instructions?
Is the program well documented, including a sufficient opening comment? (That is, are there sufficient and coherent comments, and well structured coding practices?)
Is the program efficient?
Does the program produce reasonable results given the specification?
Did the student generate sufficient data?