Syllabus
Home ] Up ]

 

Course

Principles of Software Design (CSIS 250-01)

  Credit Hours

3.0

  Semester

Spring 2005

  Time

10:00 AM - 10:50 PM

  Days

MWF

  Location

Kelce 215

Instructor

Kailash Chandra

  Office

Room 223D Kelce

  Office Phone

235-4539

  E-Mail Address

kchandra_at_pittstate_dot_edu

  Office Hours

MWF: 8:00AM-10:00AM, 10:50AM-11:00AM, 12:50PM-1:00PM, 1:50PM-2:50PM

Course Description

Development of discipline in programming using structured programming, algorithm design, testing, and development of basic algorithms used in computing.  Emphasis will be given on contemporary language usage to support significant program development.

Prerequisite(s)

CSIS 240.

Course Objectives

§          Understand the goals of software developer.

§          Understand basic software development steps.

§          Practice using C++.

Text

Visual C++.NET: How to Program by Harvey M. Deitel and Paul J. Deitel; ISBN: 013108920X; Publisher: Prentice Hall; Copyright: 2004.

This book will be used as a reference book.

Suggested Readings

§          C++ How To Program by Dietel & Dietel, Prentice Hall, 4th Edition, 2002.

§          C++ Program Design: An Introduction to Programming and Object-Oriented Design, James P. Cohoon and Jack W. Davidson, IRWIN, 1997.

§          Problem Solving, Abstraction, and Design Using C++, Frank L. Friedman and Elliot B. Koffman, Addison Wesley, 1997

§          A First Book of C++: From Here to There, Gary Bronson, West Publishing Company, 1995.

§          An Introduction to Computing, Joel Adams, Sanford Leestma, and Larry Nyhoff, C++: Prentice Hall, 1995.

§          Borland C++ Programmer’s Reference, James W. McCord, Que Corporation, 1991.

§          C++ How to Program, H. M. Deitel and P. J. Deitel, Prentice Hall, 1994.

§          C++ Primer, Stanley B. Lippman, Addison Wesley, 2nd Edition, 1992.

§          Computing Fundamentals with C++, Rick Mercer, Franklin, Beedle & Associates Incorporated, 1995.

§          Learning C++: A Hands-On Approach, Eric Nagler, West Publishing Company, 1993.

§          Learning C++, Neil Grahm, McGraw-Hill, 1991.

§          Learning C++, Tom Swan, SAMS, 1991.

§          Master C++, Rex Woolard, Robert Lafore, and Harry Henderson, Waite Group Press, 1992.

§          Mastering C++, Herbert Schildt, Glencoe, 1994.

§          Object-Oriented Programming in C++, Richard Johnsonbaugh and Martin Kalin, Prentice Hall, 1995.

§          Object-Oriented Programming in Turbo C++, Robert Lafore, Waite Group Press, 1991.

§          Object-Oriented Programming Using C++, Ira Pohl, Benjamin/Cummings Publishing Company, 1993.

§          Programming in C++, Stephen C. Dewhurst and Kathy T. Stark, Prentice Hall, 1989.

§          Teach Yourself C++, Herbert Schildt, Osborne McGraw-Hill, 1992.

§          Technical C++, Andrew C. Staugaard, Jr., Prentice-Hall Career and Technology, 1994.

§          The Advanced C++ Book, M. T. Skinner, Silicon Press, 1992.

§          The C++ Primer A Gentle Introduction to C++, M. T. Skinner, Silicon Press, 1992.

§          The C++ Programming Language, Bjarne Stroustrup, 2nd Edition, 1991.

§          The Waite Group’s C++ Programming, John Thomas Berry, SAMS, 1992.

§          The Waite Group’s Turbo C++ Bible, Nabajyoti Barkakati, SAMS, 1990.

§          Turbo C++ Version 3.00 User’s Guide, Borland Corporation, 1992.

§          Turbo C++, Greg Voss and Paul Chui, Osborne McGraw-Hill, 1990.

§          Algorithms, Programming, Pascal, Barbara L Santi, Lydia Mann, and Fred Zlotnick, Wadsworth Publishing, 1987.

§          Fundamentals of Data Structures in Pascal, Horowitz, Ellis and Sartaj Sahni, Computer Science Press, Second Edition, 1987.

§          Fundamentals of Data Structures, Horowitz, Ellis and Sartaj Sahni, Computer Science Press, 1976.

§          Introduction to Computer Science: Programming, Problem Solving, and Data Structures, Douglas W. Nance and Thomas L. Naps, West Publishing, Second Edition, 1992.

§          Introduction to Data Structures with Pascal, Thomas L. Naps and Bhagat Singh, West Publishing, 1986.

§          Software Development in Pascal, Sartaj Sahni, The Camelot Publishing Company, Second Edition, 1989.

§          Structures and Abstractions, William I Salmon, Irwin, 1992.

§          The Art of Computer Programming—Fundamental Algorithms, Donald E. Knuth, Addison‑Wesley Publishing Company, Second Edition, 1973.

Grading

10% of the final grade will depend on class participation and attendance,

40% of the final grade will depend on programming projects (1215),

10% on a final project presented to the class, and

40% on three exams including the final. 

Out of 100 points possible in the course 90 points are required for an A, 80 for a B, 70 for a C, and 60 for a D.

Topics to be Covered

An Overview of C++

Classes and Data Abstraction

A Closer Look at Classes

Arrays, Pointers, and References

Operator Overloading

Inheritance

Virtual Functions

C++ I/O System

Templates

Exception Handling

File Processing

Data Structures

Software Development

Action Diagrams

Specification

Design

Modularization

Aesthetic Programs

Defensive Programming

Stepwise Refinement

Program Correctness

Testing

Performance Analysis

Policy

Late assignments will not be accepted.

It is expected that the student meets his/her classes and it is the responsibility of the students to inform the instructor of reasons, for extended absences.

The instructor reserves the right to alter the sequence of topics and to substitute other topics for those listed.

Academic misconduct or dishonesty is inconsistent with membership in an academic community.  Please refer to University Catalog for details.

Students seeking assistance with academic program because of handicap should contact Teresa R. Massa, Director of Equal Opportunity, (telephone 235-4189).  Students with learning disabilities should contact Dr. Jamie Wood, Department of Psychology and Counseling, College of Education Building (telephone 235-4193).  Please inform the instructor if you have a handicap or a disability that the instructor needs to know about.