Programming Language Training Services SYS-ED SYSED Computer Education Professionals
Programming LanguagesTraining Services
Submit Programming Languages Questions Contact You SYS-ED/M - Mobile Devices

Programming Language Training Services Advanced search
Knowledge Base Enrollment Web Browser Viewing - MS Edge

Programming Languages

Maintenance, Repurposing, and Cloud Programming
Programming Languages Leading Software Companies SOA: Service Oriented Architecture
Cloud Computing Programming Language Training by SYS-ED Distance-learning Service
Structured Programming Methodologies Specialized Application Development Programming Languages Training Programs

Courseware for Teaching - Programming Languages Training
Courseware for Teaching

Cloud Programming - 2018
Programming Languages
Schedule
Java
Programming
.NET Programming
Schedule
Cost
Analysis

ASP.NET, C#, SharePoint, SQL Server, VB.NET, Visual Basic, Visual C++ registered trademarks of Microsoft Corporation.

Java is a registered trademark of Sun Microsystems / Oracle Corporation.
Open Source Software GSA Submission

Sitemap
Sitemap

Application Modernization - Challenges and Decisions

Programming Languages

Strategic and tactical utilization of data processing and now information technology is to a significant degree defined by programming languages. With each generation of computer hardware and advancements in operating systems and system software, the architecture, design, and coding of computer programming has provided new capabilities. The state and structure of programming languages, SDKs, APIís, development platforms, and methods of deployment has been evolving and changing.

  Procedural Arrow-to Structured Methodology  
Procedural Programming Arrow-to Non Procedural Programming
  Mainframe Languages Arrow-to Client/Server  
  Structured Techniques Arrow-to Object Oriented Analysis and Design  
  Proprietary Languages/Platforms Arrow-to Open Source Software  
  Client/Server Arrow-to Web 2.0 and RIA Technologies  

What was considered in the 1960ís and 1970ís to be a full featured language either has been updated or replaced with a better development framework and language. As the first generation of system analysts, application designers, and computer programmers reach retirement age, the maintenance and documentation of applications coded in a variety of languages, will have to be managed by personnel unfamiliar with the original design and programming methodologies. Or the older code will have to be phased out and replaced by applications written with new languages and development platforms. The design, coding, and utilization of a programming language is specific to the application's business logic. The choices and decisions in terms of migration, upgrading, and new development are challenging: technology, budget, and availability of skilled personnel and staffing. Planning for new systems is complicated by the installed base of procedural and client/server code: COBOL, Assembler, PL/1, Fortran, C, C++, Visual Basic, and Visual C++. The average Fortune 100 company maintains 35 million lines of legacy code; organizations are looking to leverage this code portfolio. 1

These applications still function and are being utilized; but do not readily meet the emerging enterprise and web enablement standards. The consensus among executives and technologists is that there is no single uniform or best programming language or development platform. However, software development continues to move towards the reuse of legacy code to handle the complexities of software development. Increasingly, object oriented programming is being used to repurpose the existing code by organizing the system into objects through information hiding, encapsulation, polymorphism, and other techniques.


Leading Software Companies

IBM, Computer Associates, Compuware, SAS Institute, and Information Builders have retrofitted and adapted their programming languages, development platforms, and APIs to client system software environments to meet advancements in hardware and web enablement software. Microsoft and Sun Microsystems expended considerable resources in developing and promoting their respective web development platforms: proprietary .NET and open source Java. In 2009, Oracle Corporation acquired BEA WebLogic and Sun Microsystems' Java, Solaris, and MySQL and a large number of other companies. It now is an end-to-end service provider and direct competitor with IBM. The challenge facing Oracle has been assembling the pieces and making them work together.

Open source software has both financial and technical support from the commercial software and hardware companies. The reality is that new application development and maintaining an programming infrastructure will be multi-vendor and in all likelihood include open source software. Red Hat, Inc. is the leading open source software company. In many situations, Red Hat software and subscription services can be used in conjunction or in place of commercial software and provide cost reduction and flexibility.


SOA: Service Oriented Architecture

SOA is a strategic framework of information technology systems inside and outside of an organization which are exposed and access well-defined services. Information bound services may be further abstracted to process layers and composite applications. SOA allows system changes using a configuration layer rather than redeveloping systems.

The primary benefits of an SOA include:

  • Reuse of services and behaviors without a significant amount of recoding or integration.

  • Enabling of application functionality and remote behavior without having to port the code.

  • The ability to change business processes on existing services and information flows to support changing operations.

  • Real-time points of information monitoring and service for identifying processes to be changed and adjusted.

  • Extended reach to expose certain enterprise processes to external entities for inter-enterprise collaboration or shared processes.

Reusability is a valuable asset. In SOA, it is reuse of bound services and information. A common set of services among enterprise applications significantly reduces the need for redundant application services. The relationship between cloud computing and SOA is providing IT resources that can be leveraged on demand; this includes resources that host data, services, and processes. The ability to extend SOA outside of the enterprise firewall to cloud computing providers facilitates performance and reduces costs. SOA is an approach that deals with the proper formation of systems using mechanisms that work well together internal and external to the enterprise. Interfaces and architectures are required to take advantage of cloud computing resources. SOA provides architectural discipline with guiding principles and a process/orchestration layer to change major business processes without changes to all systems. It is a loosely coupled architecture. 3


Cloud Computing: Platform, Framework, and Languages

Cloud programming continues to gain acceptance in delivering IT services. The cloud offers advantages compared to traditional on-premises data center services. Price/performance hardware, open standards, modular platforms, and software tools have been driving the growth. Connecting cloud services is being used for managing information technology assets. The leading open source platforms are OpenStack: IaaS: Infrastructure as a Service and Cloud Foundry: PaaS: Platform as a Service. There is variation in their use and implementation. The OpenStack platform is being extended with open source projects and commercial subscription services.

A development platform is a set of component software and tools used for a corresponding host runtime environment consisting of the hardware, operating system, and libraries. Software frameworks are specialized types of a development platformís libraries and tools that provide selective functionality. An application framework is a type of software framework for creating application programs that can perform related tasks together. A development platform provides for the creation, hosting, and use of applications. Development and application frameworks allow for the efficient creation of applications with standardized quality and reuse. Application frameworks are driving the growth and evolution of cloud application development. There also are new approaches for supporting application migration. DevOps technologies are being integrated for continuous testing and deployment of cloud-based applications to meet business requirements. A bridge to non-cloud and legacy setup is an industry problem. Container-based computing will accelerate application development; however, there will be additional issues in security.

The Java platform and language is used by AWS: Amazon Web Services, Google, IBM, Oracle, and new cloud entrants. The JRE: Java Runtime Environment includes the JVM: Java Virtual Machine which isolates the developer from the details of the underlying operating system and hardware. Other leading application frameworks and languages are Apache Struts, Node.js, PHP, Python, and Ruby on Rails.

  • Apache Struts is an open source web application framework for developing Java EE web applications. It extends the Java Servlet API by adopting a MVC: model-view-controller architecture. Formerly known as Jakarta Struts, it was donated to the ASF:Apache Software Foundation in 2000 and became a top-level Apache project in 2005.

  • Node.js is a JavaScript runtime built on the Google Chrome's V8 JavaScript engine. Node.js uses an event-driven non-blocking I/O model. There are over 125,000 modules on npm, growing on average by 228 modules per day.2

  • PHP is a scripting language designed for web development to produce dynamic web pages. Its code is embedded into the HTML source document and interpreted by a web server with a PHP processor module generating the web page document.

  • Python is a high-level language with a large standard library which supports multiple programming languages - object oriented, imperative, and functional. It features a dynamic type system and automatic memory management. Python is the basis for Googleís AppEngine PaaS cloud service. Commonly used in scripting, Python provides code readability.

  • Ruby on Rails is a dynamic object oriented programming language that combines Perl syntax with Smalltalk-like features. It is based on Perl, Smalltalk, Eiffel, Ada, and Lisp.

MS Azure cloud is based upon Microsoft's proprietary .NET platform; support is provided for Linux-variants, open source application frameworks and languages. MS Azure provides both IaaS and PaaS for building, deploying, and managing applications in Microsoft data centers. It also is used on-premises and with hybrid clouds.

AWS has dominated the public cloud space by applying economies of scale and a comprehensive services delivered remotely from its data centers. Amazon uses both a RESTful and a SOAP API and has been a leader in developing new web services. In addition to OpenStack and Cloud Foundry, AWS works with any application framework. Applications running on AWS can execute in an OpenStack cloud or on-premises data center.


Programming Language Training by SYS-ED

Since 1980, SYS-EDís staff have been designing, coding, debugging, and maintaining applications with programming languages in the IBM mainframe environment. We are experienced with machine and procedural programming languages: Assembler Language, C, COBOL, Fortran, and PL/1. We are recognized experts in teaching industry standard content and the multi-platform skillset for repurposing the investment in mainframe system software and legacy programming languages. Our system consultant instructors specialize in examining, analyzing, and interpreting a client's code base and teaching the structured techniques and methodologies required for maintenance programming, migrating code, and applying service oriented architecture on different platforms: mainframe, client/server and web development, and cloud.

Courses are offered through the SYS-ED schedule or as an integrated training program. Tailored course offerings can be conducted on-site in a classroom or presented using a web-based delivery medium. In addition to pre and post course validation assessment, a record of completed assignments can be kept. At the client discretion there also can be a grading system. Upon completion of a course, students are welcome to ask questions which come up back on the job.

The courseware utilized in SYS-ED instructor-led programming courses is highly respected. It extends the source vendor documentation and incorporates a purposeful examination of the program logic and sample programs. With the intermixing and hybrid implementations of open source software and commercial development platforms, reference material is fundamental to effective learning. The Computer Education Techniques knowledge base researches and validates the accuracy of information in the public domain. Content is added selectively to SYS-ED course handouts and training aids.

The legacy programming languages courseware is being expanded into a learning center format where it can be reviewed and used in an advertising free environment. As part of presenting an instructor-led programming language course at the client location, courseware is evaluated and organized for use in a web-based infrastructure and delivery medium.

Few consulting or software companies, let alone training vendors, have been conducting programming languages courses longer or better than SYS-ED.


Professional Training Services

Alternative to the IT Training Provided by the Software Companies

Alternative to the Training
by the Software Companies

Classroom Instruction
Experience

Programming Language Training Services
SYS-ED Schedule and Content Delivery Selection

Content Delivery Selection

     
College and Academic Institutions Banking and Financial Services Healthcare Providers
IBM Mainframe IBM WebSphere MS .NET
MS Programming Languages Oracle Platform XML Platform
Public Sector - Application Development Programming Languages Training Programs

Courseware for Teaching

SYS-ED's courseware library consists of student handouts, textbook extensions, training aids, documented walkthroughs, and industry-specific exercises. Modular content can be combined from multiple handouts; subject matter can be researched using the course search engine. Courseware is updated prior to use. SYS-ED's long term strategy is to have its courseware recognized as a NRV: Nationally Recognized Vendor.

IBM Mainframe Environment
Mainframe Legacy Programming Languages
CICS Transaction Server Programming
DB2 Application Development
IMS Application Development
IBM MQ: (WebSphere MQ)
Distance-learning Training Service
Web Development Platform
Web Development and Internet Programming
Java Development Platform and Language
Microsoft Application Development
IBM WebSphere and Open Source
XML Platform
Courseware Distance-learning Training Service Teaching Models


SYS-ED offers a subset of its mainframe courses in a web-based learning format. The distance-learning training service is an extension of the SYS-ED schedule, inclusive of courseware and training aids. A distance-learning course is lecture, review questions, examples, workshops, and website support services.

Distance-learning Service

Enrollment is requires a consultation with the manager sending the employee for the training. The prospective trainee needs to be qualified for the course and service transmission to the client location tested: bandwidth, firewall, base operating system, software requirements, web browser, and set-up of hands-on machine exercises. SYS-ED reserves the right to deny enrollment in its courses.

SYS-ED has been conducting courses in the public domain since 1980; however, there have been changes in the laws and regulations governing computer training in the state of New York. The schedule on our websites reflects a projected time frame for licensure with the New York State Department of Education - Bureau of Proprietary School Supervision and submission and approval of curriculum.


Structured Programming Methodologies

Effective system analysis requires a holistic and integrative understanding of enterprise information technology hardware and software infrastructure and inventory of applications. In order to successfully develop and maintain software systems in a competitive and rapidly changing business environment, it will be necessary to design interactivity among enterprise applications and smaller subsystems.

      Procedural Programming    
 
               
      Structured Analysis   Structured Design    
     
    Object Oriented Programming      
 
                 
    Object Oriented Analysis   Object Oriented Design   Object Oriented UML  
       

Database Modeling
         
Prototyping
         
Software Design
         
Implementation
       
  Software Testing and Implementation     Software Testing Methods  
           

The assumption is that the replacement of a system or application will build upon, improve, and interface with existing systems. A new computer system will require sufficient detail to accurately model the behavior of the current system. For the system analyst, the implication is that a system which has been optimized to a specific CPU, programming language, and database can be complex and expensive for utilization on a system that runs on a different CPU or with a different database management system.

Cost effective application modernization requires insight into business applications to identify embedded business rules, restructure and remove dead code, and understand the impacts for code changes. It also must address dimensions of architectural challenges; this includes fragmented business processes, workflows, data, and tightly coupled application architectures.

The SYS-ED staff has a multi-disciplinary skillset in commercial and hybrid open source operating environments. Our system consultant instructorsí average 30 years experience with mainframe, client/server, web programming, and development frameworks. SYS-ED recognizes and differentiates between industry standard content and specialized training. For the latter, the recommendation is to review the inventory of client applications and then have the client select or designate the examples, sample programs, and exercises.


Methodologies - Insights for Coding

These are the methodologies and development pardigms, that SYS-ED staff have worked with in conjunction with application development projects.

Structured analysis techniques were developed in the late 1970's by Yourdon, Demarco, Gane, and Sarson for applying a systematic approach to systems analysis. Its use of data flow diagrams and data modeling fostered the use of implementation-independent graphical notation for documentation.

Structured design is a systematic approach to program design developed in the 1970's by Constantine and Yourdon which included the use of graphical notation for effective documentation, communication, and coding guidelines.

Structured programming techniques impose a logical structure on the writing of a program. Large routines are broken down into smaller, modular routines. The use of the GOTO statement is discouraged. Certain programming statements are indented to make loops and other program logic easier to maintain and document. It also utilized structured walkthroughs.

Object oriented analysis and design is a software engineering paradigm which models a system as a group of interacting objects. Each object represents data element in the system being modeled and is characterized by its class, state, and behavior. Models can be created to capture the static structure, dynamic behavior, and run-time deployment of collaborating objects. OOA: Object oriented analysis applies object-modeling techniques to analyze the functional requirements for a system. OOD: Object oriented design elaborates the analysis models to produce implementation specifications.

An object oriented system is composed of objects. The behavior of the system results from the collaboration of those objects. The implementation of message sending varies depending on the architecture of the system being modeled, and the location of the objects being communicated with.

Workshops can incorporate an on the job training component in which we teach and provide insights on the original design and methodologies.


Specialized Application Development

Subject matter from these courses can be selected by the client organization for inclusion in programming language, system software, and application develpment training.

Structured Analysis and Design Courses
Structured Analysis Structured Methods Structured Design Java: Structured Programming
Structured Analysis and Design Structured COBOL Software Inspections and Structured Walkthroughs Structured Programming Techniques

Mainframe

CICS Transaction Server CICS Transaction Server and IBM MQ SAS Programming - Business Intelligence
Programming Languages - Legacy IBM MQ z/OS JCL to PC Batch Files

Object Analysis and Design Courses
Object Technology - Introduction Use Cases: User Requirements Documentation Object Oriented Analysis and Design Object Oriented Design Patterns
UML: Business Modeling UML: Object Oriented Analysis and Design UML - Introduction Object Oriented Design

Web Development and Internet Programming

Java - IBM Rational Plaform Java Lightweight Frameworks JEE and Web Services
JEE Connector Architecture Microsoft .NET Oracle and IBM: Web Server Development Platforms

Mobile Platform Programming

Google Android Facebook Programming Twitter Programming
Mobile Device Programming Mobile Database Apple - IPhone and IPad

Programming Languages Training Programs

SYS-ED training programs have been developed in response to requests by Fortune 1000 companies, government municipalities, and healthcare providers for training specific to their information technology infrastructure and operational objectives. Integrated training programs range from 2 to 8 weeks in duration. Programs can be delivered by a subject matter expert in a classroom or in a distance-learning format over the Internet. 

Legacy Programming Languages

Assembler Language COBOL Language PL/1 Language


Web Development and Internet Programming

C++ Java Language IBM - DB2 and Java Language
IBM - Rational Developer - Java Microsoft Development Platform Oracle Application Development

Programming Languages Training

Programming Languages Courses
SYS-ED's programming language courses are tough, but they're worth it. Our programming language training is used by Fortune 1000 companies, government municipalities, healthcare providers, software houses, and consulting companies to meet their staffing requirements and acquire specialized skillsets. 4

Courseware
SYS-ED's programming language courseware consists of sample programs, exercises, case studies, and training aids for use in commercial and open source software development platforms: IBM mainframe, client/server, Java, .NET, and hybrid platforms.

Teaching is Our Business
Most computer training companies are divisions of large software companies or consulting companies. Not SYS-ED. Our only goal is to provide programming language training for motivated business and IT professionals. This independence allows us to concentrate on teaching.

Our Teachers Know How to Teach
SYS-ED instructors combine teaching skills with programming experience: methodologies, design, coding, debugging, and optimization. After a course, they are available to answer questions.

Enrollment - SYS-ED Programming Languages Courses are Not for Everyone
No one is allowed to enroll in a SYS-ED programming languages course without a consultation with our Director of Education. We review the operational objectives and project specifications for the organization evaluating whether to send its employee for the training. The employee only is allowed to enroll if they have the background corresponding to the course.

Programming Languages Distance-learning or at Your Office
Programming language courses are provided over the Internet through a distance-learning delivery medium or classroom instruction. Client location courses can include the same workshops, examples, and case studies as through the SYS-ED schedule.


Technology Exchange Websites

SYS-ED's websites compile, organize, and present software specific and established operational categorizations of information technology. They provide a framework for assessing knowledge transfer: web-based training, classroom instruction, courseware, learning paths, and validation assessment.

http://www.programmingbysysed.us/commquests.htm

Sources
Cloud Application Architectures, by George Reese, O'Reilly Media, Inc. First Edition, 2009, ISBN: 978-0-596-15636-7.
Enterprise Cloud Computing: Technology, Architecture, and Applications, by Dr. Gautam Shroff, Cambridge University Press, 2010, ISBN: 1139490915, 9781139490917.
 
Footnote 1:
Robert C. Seacord, et al, Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices, Addison-Wesley, 2003.

Footnote 2:
Mobile Counts: The Node ecosystem is the largest package and fastest growing. Maven Central, Java's package repository, hosts 98,000 modules and is growing at the rate of 98,000 packages per day.

Footnote 3:
"SOA is Important to Cloud Computing". Cloud Computing and SOA Convergence in Your Enterprise, by David A. Linthicum, Addison-Wesley Information Technology Series, Pearson Education, 2009, ISBN 0321670930, 9780321670939.

Footnote 4:
SYS-EDís core programming language curriculum have been submitted to the New York State Department of Education - Bureau of Proprietary School Supervision for technical review and licensing.