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

                             E-mail:  ravi93@gmail.com

 

    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