Babes-Bolyai University of Cluj-Napoca
Faculty of Mathematics and Computer Science
Study Cycle: Master
SUBJECT

Code	Subject	
MID1022	Simulation Languages	

Section	Sem.	Hours: C+S+L	Category	Type	
Modeling and Simulation  - in English	2	2+1+0	speciality	compulsory	

Teaching Staff in Charge	Prof. POP Horia Florin, Ph.D., hfpop@cs.ubbcluj.ro	
Aims	The students will gain basic concepts of simulation modeling analysis; will learn different specific simulation languages and environments useful in the modeling and simulation of specific problems. The students will be able to: recognize mathematical parameters as if they were physical variables and vice-versa; be able to follow general mathematical concepts of derivation scientific result and possess the mathematical skill to link those concepts; be able to understand the relevance of the mathematical results to real world applications; have the ability to use computational tools for finding graphical, numerical, statistical and analytic solutions to problems; have the ability to use systems simulations appropriate to real world practice; be able to identify input, output, and operating variables as appropriate in various units; be able to identify technical relationships between the input, output and variables and use the relationships to predict mutual changes. 	
Content	Part I. Theory of Computer Simluation
1. Introduction to Simulation
. Definition and types of simulation 
. Reasons for simulation
. Simulation applications
. Simulation models
. Validation
. Verification
. Revision
2. Models and Studies
. Overview of simulation
. Purposes and methods of simulation studies
. Methodology of model development 
. Identification of  types of simulation studies
3. Elements of Simulation
. Entities
. Resources
. Other objects and properties of simulated systems 
. Source models
. Queuing systems
. Servers
4. Simulation Software Design
. A short comparative study of the major software methods of setting u simulation models
. Commercial simulation packages
. Commercial simulation languages
. C++ and C# programming
5. Basic Simulation Models
. Use of a commercial simulation package 
. Modeling basic business processes
. Setting simulation goals
. Designing a process model
. Building a simulation
. Analyzing simulation results
. Methodology 
6. Resource Modeling
. Resource handling in a commercial simulation package 
. Resources as simulation components
. Methods of dealing with resource downtime
. Methodology for developing resource models 
Part. II. Simulation using OMNeT++
7. Overview of OMNeT++
. Modeling concepts
. Programming the algorithms
. Using OMNeT++
. Building and running simulations
8. The NED Language
. NED overview
. The import directive
. Channel definitions
. Simple module definitions
. Compound module definitions
. Network definitions
. Expressions
. Parameterized compound modules
. Large networks
. XML binding for NED files
9. Simple Modules
. Simulation concepts
. Packet transmission modeling
. Defining simple module types
. Adding functionality to cSimpleModule
. Finite State Machines in OMNeT++
. Sending and receiving messages
. Accessing module parameters
. Accessing gates and connections
. Walking the module hierarchy
. Direct method calls between modules
. Dynamic module creation
10. Messages
. Messages and packets
. Message definitions
11. The Simulation Library
. Class library conventions
. Logging from modules
. Simulation time conversion
. Generating random 
. Container classes 
. The parameter class: cPar 
. Routing support: cTopology 
. Statistics and distribution estimation 
. Recording simulation results
. Watches and snapshots
. Deriving new classes 
. Object ownership management
12. Building and Running Simulations
. Overview
. Building using Unix and gcc 
. Building using Windows and Microsoft Visual C++
. User interfaces
. The configuration file: omnetpp.ini
. Dynamic NED loading
. Setting module parameters in omnetpp.ini
. Configuring output vectors
. Configuring the random number generators
. Cmdenv: the command-line interface
. Tkenv: the graphical user interface
. Repeating or iterating simulation runs
. Multiple Replications in Parallel 
. Typical issues
13. Analyzing Simulation Results
. Output vectors
. Scalar statistics
. Analysis and visualization tools
14. Parallel Distributed Simulation
. Introduction to Parallel Discrete Event Simulation
. Assessing available parallelism in a simulation model
. Parallel distributed simulation support in OMNeT++
Part III. Other simulation languages and tools
. Process-oriented simulation. The HSL language
. Object-oriented discrete event simulation in C++: C++Sim
. Object-oriented discrete event simulation in Java: JavaSim
. Object-oriented discrete event simulation in Java: DesmoJ	
Bibliography	[1] Banks, Carson, Nelson & Nicol, "Discrete Event System Simulation, Prentice Hall, 2001
[2] A. Law & D. Kelton, Simulation Modeling and Analysis, Mc Graw Hill, 3rd ed., 1999.
[3] Raymond P. Jefferis III , Simulation of Business Processes, Widener University, 2006 [4] * * *, OMNeT++, User Manual (electronic format)
[5] D.P. Sanderson, R. Sharma, R. Rozin, S. Treu, The Hierarchical Simulation Language HSL; a Versatile Tool for Process-Oriented Simulation, ACM Transactions on Modeling and Computer Simulation, 1 (2), 1991, 113-153
[6] * * *, Object-oriented discrete event simulation in C++: C++Sim User Guide [7] * * *, Object-oriented discrete event simulation in Java: JavaSim User Guide
[8] * * *,  Desmo-J, A Framework for Discrete-Event Modelling and Simulation, http://asi-www.informatik.uni-hamburg.de/themen/sim/forschung/Simulation/Desmo-J/index.html
	
Assessment	The activity ends with a written final exam (grade E). The seminar homework on computer simulation will be graded (grade S). Students will prepare a software project that will have to illustrate the use of simulation languages to solve a specific task (grade P). The overall students@ activity during the semester will be also considered (grade A).  The final grade is the weighted mean of the five grades mentioned above. The final grade = 40%E + 30%S + 20%P + 10%A. Successful passing of the exam is conditioned by the final grade that has to be at least 5. 

All university official rules with respect to students@ attendance of academic activities, as well as to cheating and plagiarism, are valid and enforced. Successful passing of the exam is conditioned by grade E to be at least 5.

The webpage of the course is http://www.cs.ubbcluj.ro/~hfpop/ls