Programming Language Training Services SYS-ED SYSED Computer Education Professionals
Programming LanguagesTraining Services Bookmark this page
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 Computing - Programming Languages Training Services
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 provide 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. 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 which explains and demonstrates is fundamental to effective learning. Upon completion of a course, students are welcome to ask questions which come up back on the job.

The Computer Education Techniques knowledge base is a service for answering questions, inclusive of the research and validation of the accuracy of information in the public domain. Citation of source documentation and examples are used to provide answers to the questions. 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. At the client discretion, pre and post course validation assessment can be utilized.

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
and 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
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 Superior by Design Distance-learning Training Service Teaching Models and Return on Investment
 
SYS-ED's distance-learning training service is 65% lecture and 35% hands-on machine exercises, with optional validation assessment. Support services are provided through SYS-ED websites.
Distance-learning Service

Enrollment is contingent upon the prospective trainee's having been qualified by our Director of Education to have the appropriate background for the training and review of a checklist of items required for transmission of the service to the client location: bandwidth, firewall, base operating system, software requirements, web browser, and set-up of hands-on machine exercises.

Prior to scheduling a programming course, we recommend evaluating the SYS-ED training service: review the learning paths, read the CFAQs - course frequently asked questions, examine the courseware and training aids, utilize our programming language skillset assessments, and interview our systems consultant/instructor.

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.

Structured_Prg_Methodologies_Top
Structured_Prg_Methodologies_Bottom

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.

Mainframe Methodology Utilization and Value
Structured analysis Techniques 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 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 which 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.
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

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.

Client/Server and Web Development Utilization and Value
Object oriented analysis and design Software engineering paradigm which models a system as a group of interacting objects. Each object represents a 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.

Object oriented systems 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.
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


Specialized Application Development

SYS-ED recognizes and differentiates between industry standard content and educational consultancy. We review the software environment and then have the client select or designate the examples, sample programs, and exercises. At the client discretion, the training can include pre and post course validation assessment.

Mainframe

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

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 Device Programming and Social Media

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 fast-track 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 challenging hands-on programming language training provides a foundation and framework for Fortune 1000 companies, government municipalities, healthcare providers, software houses, and consulting companies to meet their staffing requirements and acquire specialized programming language skillsets.4

Courseware
SYS-ED's programming language courseware is highly respected. We draw upon our extensive library of courseware, sample programs, and case studies to explain, demonstrate, and teach the real-world computer programming. Our programming language curricula include industry standard and consultancy derived content. We have the capability to provide tailored workshops and integrated training programs.

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 world class programming language training for motivated business and IT professionals - no more and no less. Because we're independent, we're free to concentrate on teaching - and since 1980 we have been doing it very well.

Our Teachers Know How to Teach
SYS-ED instructors combine teaching skills with broad practical experience as consultants. Our instructors average 30 years experience in a comprehensive variety of programming languages: mainframe, client/server, and web development. And they know how to teach it. We teach not only "how to", but "why", building a solid foundation in fundamentals and insights into advanced materials. 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 is only allowed to register if they have the background corresponding to the appropriate learning path.

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 on-site at the client location. Client location courses can include the identical workshops, case studies, and hands-on approach as the distance-learning service offered through the SYS-ED course 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, Cambride 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.