From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, FREEMAIL_REPLY autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,60cab2642969c80b,start X-Google-Attributes: gid103376,public From: KMays@msn.com (Kenneth Mays) Subject: Expanding Ada95 courses internationally Date: 1996/02/18 Message-ID: <00001a73+00002848@msn.com> X-Deja-AN: 139907787 organization: The Microsoft Network (msn.com) newsgroups: comp.lang.ada Date: 1996-02-18T00:00:00+00:00 List-Id: 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)