| Instructor: | Dr. A. Miner |
|---|---|
| Office: | 233 Atanasoff Hall |
| Office Hours: | MW 16:30 - 17:00, TR 15:00 - 15:30, and by appointment |
| Lecture: | MW 15:10 - 16:30, Sweeney 1160 |
| Text: | Discrete-Event Simulation: A First Course by Park and Leemis; ISBN: 0-13-142917-5 |
| Text Code (C): |
C_source.tar.gz C_source.zip |
| Text Code (Java): |
Java_source.tar.gz Java_source.zip |
The course is an introduction to computational and mathematical techniques (with emphasis on algorithms and implementation) for modeling, simulating, and analyzing the performance of various systems. The types of systems considered are stochastic (i.e., there is some type of random behavior). The primary focus is on systems that are dynamic (the system evolves over time) and discrete-event (the system changes state at discrete time instants). A secondary focus is on static systems that do not evolve over time. Specific topics covered in the course include modeling, random number generation, random variable distributions, statistics, and next-event simulation.
The objective of the course is to provide students with an introduction to the basic principles of discrete-event simulation. The course emphasizes theory, implementation in a high-level programming language, and computation-based experimentation. Upon successful completion of this course, students will have a basic understanding of the basics of discrete-event simulation, including the underlying theory, algorithms, and practical implementations for random number generation, gathering of statistics, next-event and Monte-carlo simulations, and modeling of systems. Students should be able to construct computational models (i.e., computer simulations) of real-world discrete-event systems in a contemporary general-purpose high-level programming language (e.g., C or Java), design and run simulation experiments, and interpret results. Students should be able to identify current areas of research in discrete-event simulation.
If you have a disability that may require some modification of seating, testing, or other class requirements, please obtain a SAAR (Student Academic Accommodation Request) form verifying your disability and specifying the accommodation you will need from the Disability Resources staff and present it to the instructor as soon as possible so that appropriate arrangements may be made.
Students will be expected to have programming experience in a contemporary high-level language, such as C, C++, or Java. The use of dynamic structures (e.g., linked lists, queues, etc.) will be required. Students should also have a working knowledge of algorithm complexity.
Course work will be unpleasant without a strong programming background.
Students should be familiar with single-variable differential and integral calculus, and their discrete math analogs (difference and summation).
Students should have a working knowledge of probability, including random variables, expectation, and conditioning.
Two homework exercises will be assigned for each section of the text, for a total (usually) of four exercises per problem set each week. Problem sets are due by 11:59 pm on their due date, subject to a 10% penalty per day late. Students should submit hardcopy solution summaries (see below) and electronic complete solutions (including source code). Students enrolled in 555 must do all four exercises per set, while students enrolled in 455 must do any three out of four exercises.
Problem sets will represent about 40% of your grade.
There will be a midterm take-home exam, worth about 20% of your grade. This will be due at the precise time specified on the exam, and will not be accepted late without prior permission of the instructor.
There will be a final take-home exam, due at the University-scheduled final exam time, worth about 40% of your grade. This will not be accepted late without prior permission of the instructor.
Solutions to problem sets and exam questions consist of two parts.
Hardcopy (written) solutions should consist of a self-contained explanation of your solution, complete with an overview of mathematical derivations (if necessary), algorithm development (if necessary), with a brief summary of any necessary modifications to the textbook source code. Ideally, this will be the only portion of your solution that I read thoroughly. The other student viewpoint is a guide to the level of explanation expected for written solutions: another student in the class, who didn't know how to do the exercise/question, should be able to read your solution and learn a correct answer, without asking questions. References to material in the text are encouraged (e.g., "from Theorem 1.2.1 we have ..."). Point(s) will be deducted for incomplete or poorly-written solutions. In particular, a complete printout of source code does not satisfy the other student viewpoint.
Solutions may be typeset or neatly hand-written. My personal preference is to use LaTeX as it produces excellent quality with minimal effort, especially for equations. However, content is much more important than style. An example solution is provided below for illustration.
In addition to written solutions, you must submit a complete solution electronically, via WebCT. Think of this as the appendix to your written solution, containing things like source code and raw data as appropriate. I use this if I want to check for discrepencies between your results and mine, skim your source code for common errors, or otherwise double-check the details of your work. My job is easier if you submit your files as separate attachments, rather than a single tarball or zip file. If you wish to submit the hardcopy portion of your solution electronically, this should be attached as a single PDF file.
Students enrolled in Computer Science courses at ISU are expected to maintain the highest standards of academic integrity. Cases of cheating that go undetected and hence unpunished skew the grading curve in a class, thereby lowering the grades for students who do not cheat. Students who cheat rob themselves not only of knowledge and skills that they should have acquired in a course, but also of the experience of learning how to learn, arguably the most valuable benefit of a university education. The reputation of the department, the university, and the value of the degree suffer if employers find the graduates of a program lacking in abilities that successful completion specific courses should guarantee. Most professions, including Computer Science, have codes of ethics or standards to which individuals will be expected to abide by. At the University you practice the integrity that you must demonstrate later.
Suspected cases of academic misconduct will be pursued fully in accordance with ISU policies which require that all suspected cases of academic misconduct be reported to the dean of students. Any student found responsible for academic misconduct will receive a failing grade (F) in the course (even if the student chooses to drop the course). The dean of students may impose additional sanctions (ranging from a disciplinary reprimand to expulsion from the university). You are strongly urged to consult the university's policy on academic dishonesty.
The information included here is intended to help students avoid unintentionally committing academic dishonesty. The primary purpose of problem sets is to clarify and enhance the understanding of the concepts covered in the lectures. Past experience with this course has shown that this is helped by increased interaction among students. Discussion of general concepts and questions concerning the homework and laboratory assignments among students is encouraged. However, each student is expected to work on the solutions individually (except in the case of assignments that are explicitly assigned to teams of students).
When discussing problems with other students, you may:
It is expected that you have independently arrived at solutions that you submit. The following are examples of activities that are PROHIBITED:
[1] The academic honesty policy has been compiled using material adapted from several sources including the past offerings of this course, other computer science courses at Iowa State University, as well as other universities.
Last updated $Date: 2008-09-06 11:17:51 -0500 (Sat, 06 Sep 2008) $