Sonoma State University, Engineering Science Department


ES 314 Advanced Programming Fall 2008


Outline of the course:


This course will provide the background in computer programming and software development skills needed for the remainder of the BS-ES curriculum. The course will cover two broad areas one that includes non-numerical programming and basic data structures. The other includes simulation and modeling. Each unit will be approximately five weeks long. In the last four weeks, we will present some case studies that integrate the topics covered during the first 10 weeks.


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: Programming I. Co-requisites: MATH 345: Probability Theory and ES 220: Electric Circuits, or consent of instructor.



module 1: Data Structures


Instructor: Bala Ravikumar

116 I, Darwin Hall

Office Phone: 664 3335



Goals of the module:


  • Cover some advanced features of C++ such as recursion, classes and pointers.
  • Introduce linear data structures such as arrays, lists, stacks and queues
  • Present applications of these data structures
  • Introduce efficient searching based on hashing
  • Present some basic sorting algorithms


Text Book:


Algorithms, Data Structures and Problem Solving Using C++ by Mark Weiss

Chapters covered:


Parts of chapters 1, 2, 6, 7, 8, 11, 15 and 16

Week 1: arrays, pointers and structures (Chapter 1)

Week 2: image processing, recursion

Weeks 3 and 4: stacks, queues and lists (Chapters 6, 11, 15 and 16)

Week 5: hashing and sorting (Chapters 6 and 8)


Evaluation of the module:


  • One mid-semester test at the end of the unit 40 points


  • Two programming projects 60 points