You will soon receive in an email a personalized assignment that tells you the nature of the "Empirical Data" you are to produce with a Pascal program for HW3. 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. (HW4 will be about reporting the data you generate in HW3.)
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 way over a million.) You can also write a program that generates data, and 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 to report about that data. This report is done as HW4, and will be a PowerPoint presentation. That presentation should include figures, tables, and/or illustrations to help the reader understand your data. The report will indicate how you obtained the data and what you think the data means. The report does not have to be particularly long, but it should be thorough. This report will be your last homework assignment, HW4, the next and last homework assignment in CSC 540.
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 millerHW3.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. In the next homework assignment, you will have to provide a possible explanation for any anomalies you find in your data and you'll explain how the data answers the question from your assignment. You should be thinking about how you will be explaining these things while you are generating your data; the questions may help guide how you set up your program.
For most of you, the description of your assignment will include some suggestions about how many times you should repeat your experiments. This requirement supersedes any such suggestions: you MUST generate at least 40 data points for your HW4 assignment. You are certainly free to generate and present more than 40, but you must do at least 40.
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 a person running your program (like 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. Your 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:
Grading Questions for HW3
Is this program the student's own original work? (If not, stop grading.)
Does the program compile successfully using the Free Pascal or Larzarus IDE 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 for giving an interesting HW4 report?