ES 314 Advanced
Programming, Simulation and Modeling
Fall 2012
Instructor: Bala Ravikumar, Department of Engg
Science
116 I,
Darwin Hall, Office
Phone: 664 3335
E-mail: ravi93@gmail.com
Lecture Hours: M W 8 to 9:50 AM
Office Hours:
M 12:30 to 2, T 12 – 1 and by
appointment
Catalog Description of the course:
Lecture: 4
hours; laboratory: 0 hours.
Pointers and dynamic allocation of storage; linked lists; an
introduction to the object oriented programming (OOP) paradigm; classes and
objects; encapsulation; member variables and member functions. Static
arrays, dynamic arrays, stacks and queues, linked lists, hashing. System
modeling techniques and applications such as generation of noise (random
numbers) and correlated signal with different pdfs,
measurement of statistical parameters like moments, queuing systems and system
simulation.
Prerequisite: CS 115:
Goals of the course: To introduce software design for engineering
applications through MATLAB programming, computational modeling of physical
systems and software simulation of simple physical systems.
Specifically, the following topics will be covered:
·
MATLAB programming – iteration, library and user-defined
functions, scripts, structured data and
objects, image and audio files, plotting and visualization, recursion, project
design and development.
·
performing statistical analyses of data.
·
fundamental algorithms for sorting, searching, solving systems of equations
etc.
·
computational modeling - deterministic
as well as stochastic system will be modeled.
·
simulations of physical systems and models.
Text Books:
Introduction to Scientific Computation
and
Programming, Kaplan, Daniel T. , Brooks/Cole-Thomson Learning, 2004.
Insight
through Computing by van Loan and
Daisy Fan. Society for Industrial and Applied
Mathematics, 2010.
Additional materials (on modeling and simulation) will be provided. Specifically, some chapters from Sheldon B. Ross’ Simulation will be used.
Schedule: (tentative
week by week coverage of topics)
Week |
Topic |
|
1 |
course overview |
Ch 1 and 2 of [K] |
2 |
Matlab
programming basics
|
Ch 3 and 4 of [K],
Ch 1 – 4 of [LF] |
3 |
Files and scripts |
Ch 5 of [K] |
4
- 5 |
Functions |
Ch 6 of [K] |
6 |
Control
flow
|
Ch 7 and 8 of [K] |
7
- 8 |
Numerical algorithms and optimization |
Ch 15 of [LF] |
9 |
Search, Recursion and trees |
Ch 10 and 12 of
[K], Ch 9 of [LF] |
10 |
Audio signal processing |
Ch 13 of [K], Ch 13 of [LF] |
11 |
Image processing |
Ch 14 of [K], Ch 12 of [LF]. |
12
- 13 |
Probability, random variables, random
number generation |
Ch 1 – 4 of [R], Ch 6 of [LF]. |
14 |
Discrete event simulation |
Ch 6 of [R] |
Grading:
The
quizzes will be in-class and will be given during most lectures.
Most of the
assignments will involve problem solving and implementing the solution using
MATLAB. There may be a final project chosen by each student individually. Some
of the projects done in the past years include visual simulation of cellular
automaton, printed character recognition, recognizing the genre of music by
signal processing, create a user interface for opening, editing and saving
images, an audio-player through which you can play, edit music etc.
Usually one mid-term is in-class and the other one
is take-home. The in-class mid-term will have two sections – an open-book
section and a closed-book section. For
the open-book part, you can also use the computer to implement and test your Matlab program.
This exam will be in-class and comprehensive. It
will take place at the time scheduled by registrar’s office. The date and time
can be found from the web page: http://www.sonoma.edu/university/classsched/finals_sched.pdf
Online resources:
There are numerous tutorials and notes on MATLAB. Many of them in the
form of video lectures are especially recommended. A major web site is http://www.mathworks.com, the site of the
company that authored the language.
Some other useful links are:
•
http://www.math.utah.edu/lab/ms/matlab/matlab.html
•
http://amath.colorado.edu/computing/Matlab/Tutorial/
•
http://www.math.utah.edu/lab/ms/matlab/matlab.html
Some books on Matlab that you can access from Mathworks web site: