Winter 2005

 

Techniques for high performance and cost measurement. Memory system design including cache and virtual memory. Pipelining. Characteristics of numerical applications and their effects on computer architecture. Special topics can include Vector computers and Multiprocessor architectures.  Textbook is: Computer Architecture A Quantitative Approach, 3/e, by John Hennessy and David Patterson, as well as numerous papers from IEEE journals and magazines (See syllabus for specific list of papers).

Software project management and a variety of process models for integrating these tasks, including the waterfall, incremental, and spiral models, as well as some of the current agile models. Software project cost and schedule estimation and planning, documentation, tracking, risk management, and quality assurance; tools and standards for supporting each of these tasks. Textbook is software Engineering: A Practitioner’s Approach, 6/e, by Roger Pressman.

Introduction to problem solving and programming principles appropriate for scientific and technical applications. Development of step-wise refinement and program decomposition methods. Programming language concepts including iteration, selection, input-output protocols, arrays, structures and subprograms. Programming language used is traditional  C++.  Textbook is: C++ How to Program, by Deitel and Deitel