comp.lang.ada
 help / color / mirror / Atom feed
* Expanding Ada95 courses internationally
@ 1996-02-18  0:00 Kenneth Mays
  0 siblings, 0 replies; only message in thread
From: Kenneth Mays @ 1996-02-18  0:00 UTC (permalink / raw)


Ada95 Object-Oriented Programming: A TQM Hands-On Approach
By Kenneth L. Mays (Email: maysk@wg53.eglin.af.mil)
                           lafreezer@aol.com
                           kmays@msn.com

Purpose:
--------
Focal point of non-profit Ada95 research in tutoring underpriviledged
students on computer programming skills. Career advisement on finding
international jobs in Ada95 programming and development. Expanded to
comp.sys.ada to aid professionals in their use of Ada95 in their
organizations.

Please mail me if you have ideas on how to effectively and efficiently
teach any part of this course. This is an ongoing personal project.
If I do not respond to your email in one week, please mail me at:

Kenneth L. Mays
307 W. Van Matre Ave, Box 5413
Eglin AFB, Florida 32542-5413
Attn: Ada95 Research

My credentials:
---------------
M.S. Human Resource Development/Management
Webster University

M.A.S. Aeronautical Science/Management (1996)
Embry-Ridle Aeronautical University

B.S. Computer Science / Management Information Systems (1995)
University of Maryland

Objective:
----------

1. To analyze requirements and create object-oriented designs

2. To make full use of object-oriented programming in Ada95

3. To develop interface classes to encapsulate external bindings

4. To use good object-oriented programming style

5. To maximize use of extended types and develop generic classes


Benefits of course(s):
----------------------

Production quality Ada95 compilers are becoming available for a wide
variety of computers. Ada95 has become a "programming language of choice"
for creating reliable, large scale embedded systems with long lifetimes.

Ada95 encourages a fundamentally different programming style than Ada83!
The best way to learn these new prorgamming techniques is to gain hands-on
experience under the guidance of an expert instructor. Participants use
in-class workstations throughout the course for extensive use in designing
and testing Ada programs.

The course(s) are valuable for Ada83 and experienced programmers who need
to learn how to exploit Ada95. The course(s) shows how and when to
effectively use Ada95 in an object-oriented software life cycle.

We will expand the course based on the knowledge of the audience. Those
who are system engineers, system analyst, software engineers, and
engineering managers involved in developing hardware and software systems
will also benefit the classes. Advanced classes will pursue indepent 
research and
advanced administration issues.

Standard Ada95 book to use for course(s):
-----------------------------------------

The official book to use is (subject to change):
Title:		Programming in Ada 95
Author:		John Barnes
Publisher:	Addison-Wesley
Pages:		720 (Softcover)
Copyright Date: 1996 (first printed 1995)
ISBN:		0-201-87700-7

Software to use for course(s):
------------------------------

The GNAT Ada compilers are freely distributed. Commercially, Visual Ada95
is a reliable tool for creating Windows applications. Again, this is based
on teacher's knowledge and experience with various compilers and production
tools. The main foucus is on obtaining an Ada95 complaint compiler.

Other places of interest:
Xinotech (www.xinotech.com)
ACM SigAda (www.acm.com)
AdaIC (Virginia) and Washington University in St. Louis (Software Sites) 
Ada-Belgium, Ada-Europe, Ada-Spain, Home of the Brave Ada programmers
Embry-Riddle Aeronautical University (www.db.erau.edu)
Walnut Creek's CDROMs on Ada (www.cdrom.com)

Course overview (modified based on teacher and time permitting):
----------------------------------------------------------------

Introduction and overview:
--------------------------
1. Ada95 original goals
	a. Reliability
	b. Maintainability
	c. Standarization
	d. Support for embedded real-time systems                             

2. Ada83 in retrospect
	a. Successes and failures
	b. Evolution of APSEs and APIs
	c. Modern software trends since 1983
	d. Object-Oriented analysis and design
	e. Iterative program development

3. Ada95 overview
	a. Goals of Ada95
	b. Key features of Ada95

4. Software Engineering overview
	a. Goals of the Software Engineering Institute at Carnegie-Mellon
	b. Software Engineering Project Planning and Development issues
	c. Software Design and System Engineering issues
	d. Validation and Verification of Software
	e. Software User Specification and Requirement issues
	f. Practical Software Testing methods	
	g. Overview of Project management and negotiating skills	
	f. Overview of Software Engineering Projects

Ada95 Fundamentals
------------------
1. Program Structure
	a. Packages and subprograms
	b. Encapsulated data
	c. Separating interfaces & implementation
	d. Limitations of Ada83 packages
	e. Using hierarchical library units
	f. Hiding information with private child units

2. Ada Types
	a. Predefined types - package standard
	b. Using records and arrays
	c. Limitations of subtypes and derived types
	d. Initialization and finalization
	e. Using controlled types

Inheritance
-----------
1. Type extension
	a. Extending record types with further components and subprograms
	b. Type hierarchies
	c. Multiple inheritance

2. Class-wide programming
	a. Polymorphism
	b. Static vs. dynamic binding
	c. Creating abstract types and subprograms
	d. Applying class-wide programming

Object-Oriented Analysis and Design
-----------------------------------
1. Analysis in software engineering (SEI) methodologies and OOP
	a. Total Quality Management and Quality Assurance principles
	b. Finding objects in requirements
	c. Creating scenarios
	d. Using object models
	e. Documenting the analysis

2. Design
	a. Mapping object models into design classes
	b. Using inheritance and the "is-a" test
	c. Documenting classes
	d. Using library classes
	e. Encapsulating external interfaces in classes
	f. Implementing classes in Ada95.

Concurrent programming
----------------------
1. Concurrent programming concepts
	a. Real-time vs. distributed programs
	b. Structuring concurrent programs
	c. Decomposing applications into tasks
	d. Using delays in Ada95

2. Task Communication
	a. Rendezvous
	b. Data-oriented synchronization
	c. Protected types

Building systems with Ada95
---------------------------
1. Generic packages and subprograms
	a. Limitations of Ada83 generic units
	b. Unconstrained generic parameters
	c. Combining generic and class-wide programming
	d. Using generic formal parameters
	e. Managing name spaces

2. Interfacing to external systems
	a. Defining interface classes
	b. Interfacing to foreign code
	c. Hardware interfaces

3. Ada95 evolution and career information
	a. Current Ada95 complaint compilers
	b. Ada95 tools
	c. Ada95 bindings for standard libraries
	d. Ada95 vs C++
	e. Internet resources and support groups
	f. Books on Ada95 programming and development  
	g. Career development and international market for Ada programmers
	
Unix System Administration and Windows 95/NT overview wrap-up
(Independent study projects)
-------------------------------------------------------------
	a. Overview of Unix System and Database Administration
	b. Outlook on client/server and open systems
	c. Integrating Oracle7/Sysbase11/DB2 databases with Ada95
	d. Experience on using Windows 95/NT systems for Ada95 development
	e. Experience on using Unix/X-Window systems for Ada95 development
	f. Overview on Sun Solaris V2.x and SGI IRIX 6.x workstations
	g. Uses of Visual Basic and Borland's Delphi for GUI development
	h. Research in using Ada95 in the Aeronautical/Aviation field
           (research for presentation at the Embry-Riddle Aeronautical
	    University)





^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1996-02-18  0:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-02-18  0:00 Expanding Ada95 courses internationally Kenneth Mays

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox