José M. Garrido
Kennesaw State University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by José M. Garrido.
Archive | 2001
José M. Garrido
level Software level Introduction to Simulation 7
acm southeast regional conference | 2011
José M. Garrido
This tutorial is based on the book with the same title, published by Springer, 2009. The tutorial presents an introduction to object oriented simulation modeling and using the OOSimL simulation language for implementing the simulation models. The emphasis is on early introduction to simulation because simulation is considered an important area in the computing curricula. An overview of relevant object-oriented modeling principles and then an introduction to object-oriented modeling and simulation using the process interaction approach with the new language, OOSimL. In addition to the simulation concepts, a brief exposure is included to developing models with the Eclipse integrated development environment. The simulation language was designed and developed for teaching OO simulation early in undergraduate programs in computing. Object orientation enhances the modeling and implementation of various families of systems. The OOSimL compiler generates Java code and C++ code. This simulation language was designed and developed for teaching OO simulation to students of computing (Computer Science, Software Engineering, and related disciplines). The language supports and promotes standard object-oriented (and software engineering) concepts and principles.
information security curriculum development | 2009
José M. Garrido; Tridib Bandyopadhyay
The value of modeling and simulation for education, training, and testing in information security has been documented in several studies. In this paper, we suggest that it is important not only to include the general use of simulation in various courses of the security curriculum, but also to include the theory and development of simulation models. We describe briefly the general features of simulation models and tools for model development that we are using in computing education. A collection of educational simulation tools have been created in the OOPsim project, for developing discrete-event simulation models. The principal goal of this project is to develop newer simulation tools and approaches for education in computing. The Object Oriented Simulation Language, OOSimL, was recently developed with partial support from an NSF CPATH grant. Two object-oriented simulation models are discussed as typical examples discussed in a simulation course on security: a model of a distributed denial of service (DDoS) and a model of simple firewall system. These models were developed with educational simulation tools created in OOPsim project. We have also developed a course that emphasizes an approach to early introduction to object-oriented discrete-event simulation. The DDoS simulation model is implemented using the OOSimL simulation language. The Firewall simulation model was implemented in Java with the PsimJ2 object oriented simulation package; other models have been implemented in C++ using the Psim3 object oriented simulation package. The simulation tools and model development are very useful for educating and training students and professionals in information security, computer science, software engineering, information technology, and in other related disciplines.
Archive | 2013
José M. Garrido
Introduction to Computational Modeling Using C and Open-Source Tools presents the fundamental principles of computational models from a computer science perspective. It explains how to implement these models using the C programming language. The software tools used in the book include the Gnu Scientific Library (GSL), which is a free software library of C functions, and the versatile, open-source GnuPlot for visualizing the data. All source files, shell scripts, and additional notes are located at science.kennesaw.edu/~jgarrido/comp_models The book first presents an overview of problem solving and the introductory concepts, principles, and development of computational models before covering the programming principles of the C programming language. The author then applies programming principles and basic numerical techniques, such as polynomial evaluation, regression, and other numerical methods, to implement computational models. He also discusses more advanced concepts needed for modeling dynamical systems and explains how to generate numerical solutions. The book concludes with the modeling of linear optimization problems. Emphasizing analytical skill development and problem solving, this book helps you understand how to reason about and conceptualize the problems, generate mathematical formulations, and computationally visualize and solve the problems. It provides you with the foundation to understand more advanced scientific computing, including parallel computing using MPI, grid computing, and other techniques in high-performance computing.
acm southeast regional conference | 2004
José M. Garrido; Kyungsoo Im
PsimJ is a Java-based discrete-event simulation package that supports the process interaction approach to simulation. This paper presents insights of how this simulation tool can help improve the teaching of object-oriented simulation. The simulation tool can also be used to help to understand and visualize a concept or a system. It can also be used to reinforce learned concepts through the design and development of a simulation model. A comparison of MODSIM III and PsimJ is provided as an introduction to show that PsimJ has a comparative set of functionalities to MODSIM III, a once widely used commercial simulation package.
acm southeast regional conference | 2014
José M. Garrido
The Scientific Computation Language (SCL) was designed mainly for developing computational models in education and research. This paper presents the justification for such a language, its relevant features, and a case study of a computational model implemented with the SCL. Development of the SCL language is part of the OOPsim project, which has had partial NSF support (CPATH). One of the goals of this project is to develop tools and approaches for designing and implementing computational models, emphasizing multi-disciplinary teams in the development process. A computational model is a computer implementation of the solution to a (scientific) problem for which a mathematical representation has been formulated. Developing a computational model consists of applying Computer Science concepts, principles and methods. The language syntax is defined at a higher level of abstraction than C, and includes language statements for improving program readability, debugging, maintenance, and correctness. The language design was influenced by Ada, Pascal, Eiffel, Java, C, and C++. The keywords have been added to maintain full compatibility with C. The SCL language translator is an executable program that is implemented as a one-pass language processor that generates C source code. The generated code can be integrated conveniently with any C and/or C++ library, on Linux and Windows (and MacOS). The semantics of SCL is informally defined to be the same C semantics.
acm southeast regional conference | 2013
José M. Garrido
This paper discusses two aspects of developing computational models: the multi-disciplinary nature of conceptualization and practical aspects for implementing computational models. This is part of our approach to devising a framework to develop methods, software tools and help educate scientists and students of computer science, mathematics, and the various science disciplines, in developing computational modeling. A computational model is a computer implementation of the solution to a (scientific) problem for which a mathematical representation has been formulated. Developing a computational model involves formulating the mathematical representation and implementing it by applying Computer Science concepts, principles and methods. Because most computational models today require high-performance computing (HPC), they are implemented in C and Fortran using appropriate numerical/scientific libraries.
Journal of Computing Sciences in Colleges | 2009
José M. Garrido
Software reliability depends on program correctness and robustness and these are extremely important in developing high-quality software. Correctness is also essential when considering aspects of software security. However, experience applying these concepts, associated methods, and supporting software with Eiffel and Java have shown that students find some diffculty learning program correctness and in learning the software tools provided. We have developed an experimental language, OOSimL, that includes an assertion notation similar to that of Eiffel but which has much more flexibility, and that provides the same semantics as Java. The first part of this paper provides an overview of concepts and methods on software reliability then briefly describes our experience in teaching these. The second part introduces the Design by Contract (DBC) using the OOSimL programming language, which we recently developed.
acm southeast regional conference | 2005
José M. Garrido; Amit Jain
Our motivation for the development of a repository for multi-disciplinary computational models is to help scientists and students apply a non-traditional approach to problem solving and to better understand real-world systems and concepts in science and technology. For example, study of different network protocols within a corporate network using one or more models. This will be accomplished by providing infrastructure and support to researchers and developers. The proposed repository will provide a collection of tools and models required by many researchers either to develop a new model or to carry out enhancements to existing models. This is work in progress.
acm southeast regional conference | 2017
José M. Garrido
Software systems with concurrency are very complicated because they consist of many components that run in parallel and there can be a large number of combinations of how the components can interact. Deadlock, livelock, and other behavior can easily get out of control. Timing aspect adds another degree to the complexity. A pragmatic approach is presented for improving the specification and modelling of concurrency and timing by combining the use of the formal specification language Timed Communicating Object Z (TCOZ) and object-oriented simulation with OOSimL. The specification language TCOZ is well-suited for specifying complex systems that include components with their own thread of control. Object-Oriented simulation with OOSimL provides a powerful approach and tool for modeling large and complex systems and is compatible with the CSP semantics of concurrency. The output of the simulation runs provide traces of the timed interactions that can be used for verification with respect to the specification of the system. There is a simple and consisting correspondence from a formal specification to the corresponding simulation modelling. A simple problem is specified with TCOZ and the simulation model implemented with OOSimL is used to carry out simulation runs. This problem consists of three concurrent processes communicating among themselves and with the environment, subject to timing constraints.