Simulation Theory

CSCI3352-S05



Location and Time - Halsell 340, 2:10-3:25 TR

Professor - Dr. Mark Lewis, Office: HAS 201K, Phone: 999-7022, e-mail: mlewis@trinity.edu. The best way to reach me typically is by e-mail. I check it frequently and try to respond promptly.

Office Hours - 2:30-5:30 M, 10:00-11:30 MW, 11:10-1:10 TR, or by appointment. I'm in my office a lot so you should free to drop by. If you are coming from lower campus you can always call or write a short e-mail to see if I'm in and available at that time. The Monday and Friday times will be "open lab" times where I will be in the lab to help work you through questions on your projects.

Text - "Simulation Model Design and Execution" by Paul A. Fishwick.

Course Description - This course is a basic introduction to computer simulation. We will cover all of the major ypes of computer simulation. In this respect, the course has a broad coverage. This includes declarative modeling, functional modeling, constraint based modeling, spatial modeling, and multi-modeling.

As my previous students can attest, the courses that I teach are aggressive. I have one overriding objective in my courses and that is to make you think. If I make you think new thoughts for most of the semester I will have done well. If I give you new ways to think thoughts (old and new), then I will truly have succeeded. This course is not about busy work, though inevitably a fair bit of work will be required. Exactly how much work you have to put in will often be inversely proportional to how much you think about the work that you should be doing. Writing programs on the scale of most of the assignments for this course requires a significant amount of design and thought to make sure that what you are trying to do will actually accomplish what you want it to and that it will do it correctly. Failure to think nearly always leads to more work for you in the end.

Coding Practices - You are expected to follow certain coding practices for any code that you turn in as work in this course. In this sense I'm fairly lenient. I only require uniform indentation and reasonable documentation. For this class I'm requiring some documentation comments for all classes and methods. I will not help you to debug any code that is not well indented. I don't care exactly how you decide to align brackets or put in white space (though some white space is helpful), but you have to be uniform, and all blocks of code should be indented beyond what the surrounding code had been.

Grades - The grade for this course will be composed of five components. These components and what they entail is discussed below. This table summarizes how much each component contributes to your grade in the course.

Component
Percentage
Assignments (5)
30%
Tests (2)
30%
Project
20%
Quizzes (6 drop 1)
10%
Class Participation
10%

Assignments - In the earlier part of the semester you will be doing five assignments to help cement the concepts that we are discussing. Each will contribute equally to this portion of your grade. Unless otherwise specified, all assignments will be due on the date shown on the course schedule. Late assignments will be deducted 10 points for each day that they are late. After 5 days they will not be accepted. The assignments will consist of a mixture of exercises from the text and programming assignments. Complete descriptions of each assignments will be available on the schedule page.

The work you submit for your assignments should be of your own construction. You should feel free to confer with your fellow students or other people you might know about general questions dealing with the exercises, design of your programs, or about specific syntactic problems. Having other people write code for you, or working from other people's code will be considered cheating and will carry repercussions as dictated by the student handbook. In general, the safest route when you have questions about assignments is to come talk to me. It should be said that this should in no way preclude you from studying the concept of the course with your follow students. Only discussions specific to the assignments are potentially risky.

Tests - There will be two tests during the course of the semester. The first is an in-class midterm exam and the second is the final. Each will count for 15% of your course grade. The lectures page gives the dates for both tests. If you are going to miss a test I MUST be told in advance, even if it is a phone call 5 minutes before class. If you have to take a makeup exam odds are good that it will be at least slightly more difficult than the original.

Project - During the last several weeks of the course, you will switch from doing assignments to doing a project in which you will build a significant simulation of a system of your choosing. This project can be done in small teams, but the role of each team member must be clearly established before the project begins and you will be graded on both how well you do your part as well as how well the project works as a whole.

Shortly after the midterm you will have to get your project ideas approved. At that point you will turn in a half to one page description of your project. You might have noticed that both tests are before the finals period. As part of this project you will be giving presentations on your projects during the final period Saturday, May 7th at 8:30am. This presentation will count for 20% of your project grade. Two days prior to that you will also turn in a 6+ page paper describing the system you simulated, how your model worked, and what you found from the simulation. The paper format should be 12 point font 1.5 spaced. If you are working in a group, each member must write a 6 page writeup on what they did. Make sure to write the paper in terms of what we have discussed during the semester, not in terms that would be appropriate for a lay person. It should help to show me that you learned the material in the course. You will also submit the code to me with a description of how to use it (compiling instructions and inputs for running it, etc.).

Quizzes - There will also be six quizzes given during the course of the semester. These quizzes serve many purposes in this class. First, it gives both you and I information about how well you are understanding the material in the class. Second, and more importantly, they will help you prepare for the exams. The quizzes will be short, 10 minutes, however, they will have questions that are similar in format to what you can expect to see on the tests (only fewer of them). They will be given promptly at the beginning of class to help insure that you arrive on time, and they will often cover material from the reading for that day to help provide you with incentive to actually do the readings. Note that these quizzes do not have a huge impact upon your grade. Because one of them is dropped, there will be no make-up quizzes.

Class Participation - I like you to participate in class. Discussion is typically far more entertaining than listening to me drone on for 75 minutes. It can also be more educational as the people most inclined to understand your confusion and to be able to help you on certain points will be your peers. This part of the grade will actually come from 3 sources. The first is attendance. You can't participate in class if you aren't there. The second is verbal participation during class. I do keep track of this over the course of the semester and it does matter. Third, you can send me links to interesting things that you might happen to find on the web. If I think that they are significant enough, I will link them to the course web page. Each link you send me is worth extra participation points.