Course Notes
Computer Engineering

CSE591 - Scientific Programming

Programming artifacts of Science and Engineering

Resources:

Lectures Code Final Project Fall 2007 Syllabus
File Download ScreenShot Project Upload Instructions

Course Scope:

The Scientific Programming course is concerned with developing program representations of the artifacts of Science and Engineering, e.g., computing solutions of differential and integral equations, evaluating spectra of signals and the way systems modify signals in time and frequency, and building computer representations of interesting systems from earth sciences, biology, and engineering.

This course is intended for advanced undergraduates and beginning graduate students from Engineering and the Scienes. We will provide a gentle review of the required mathematics and programming disciplines, but expect that you will have taken courses in the calculus, differential equations, and introductory programming.

Required Texts, Notes, and Projects:

  1. Introduction to Dynamic Systems Theory, Models, and Applications, David Luenberger
  2. www.ecs.syr.edu/faculty/fawcett/handouts/CSE591
  3. A midterm and four programming projects are required. You may use C++, C#, or Java for the projects.
  4. This project is the target of a take home Midterm Examination that explores quality of documents and code in detail and requires Unit and Qualification testing.
  5. The second project is a large distributed system that is specified, designed, and implemented by the class as a team. The class manages the project as well, with a management structure and formal reviews.

Prerequisites:

CSE687 - Object Oriented Design or CSE681 - Software Modeling and Analysis

Syllabus - Fall 2008:

Syllabus: CSE784 - Software Studio
Lecture Topics Read before class Project
Lecture #1
Mon, Aug 25
Course requirements, class procedures, software product model, development process, requirements specifications, Handouts Notes 1, 2 hand out Pr1 A Spec.
Mon, Sep 01 Labor Day - no classes SPSG skim 1-5
MMM 1, 2
Pr1
Lecture #2
Mon, Sep 8
Software architecture, modules, requirements analysis, help with Pr1 B Spec. Notes 2, 3
SPSG 6-8
MMM 7, 16, 17
Pr1
Lecture #3
Mon, Sep 15
Design Documentation, attributes of a good software design, implementation, and test Notes 4, 5
SPSG 9, 12-16
MMM 11, 13, 19
Pr1
B Spec Due
Lecture #4
Mon, Sep 22
Software development process models: waterfall, spiral, evolutionary programming, extreme programming
Software configuration management
Notes 6
SPSG 3
MMM 3, 4, 14, 16
Pr1
code due
Lecture #5
Mon, Sep 29
Program and Architectural Review Review Project A Spec. Lead by Project Manager and Software Architect
Lecture #6
Mon, Oct 06
Team Status Reports Review Final Project A Spec Pr1
CSpec Due
Lecture #7
Mon, Oct 13
B Specification Review Final Project Arch Concept Doc Lead by Software Architect and Team Leaders
Lecture #8
Mon, Oct 20
Prototype Review Prototype code Lead by Team Leaders
Team Members present
Lecture #9
Mon, Oct 27
Design Review Preliminary C Specs Lead by Team Leaders
Team Members present
Lecture #10
Mon, Nov 03
Design and Implementation team meetings Midterm
Lecture #11
Mon, Nov 10
Preparations for Test Readiness Review Deliver Final B Specs Lead by Test Team Mgr
Lecture #12
Mon, Nov 17
Test Readiness Review Deliver C Specs Lead by Test team leader
Lecture #13
Mon, Nov 24
Final directions, review test procedures
team meetings
Lead by Project Mgr
Lecture #14
Fri, Dec 05
Class Project Qualification Test Lead by Project Manager, Test Team Manager
Mon, Dec 8 Product Handover - no class Deliver Code, CD with Qual Directories Midterm due


Collaboration Server Team - 2007

Remote Software Assistant Team - 2006

Repository Testbed Team - 2005

Project Center Team - 2004

Cloner Team - 2003

Software Foundry Team - 2002