Skip Navigation Links

Software Development for Non-Programmers
Introduction to Programming has a wealth of knowledge that aspiring programmers need to master before tackling their first programming language. This course consists of topics such as: hardware and software components of a computer system, the CPU, registers, operating systems, processes, number systems, data type formats, conversions among number bases, logic and reasoning, flow charting, pseudo code, control structures, differentiation among programming languages, from machine language to assemblers and compilers, data structures, libraries, networking, web programming, and a host of other topics. After learning the fundamentals, students will be given a chance to show their knowledge by writing some simple to intermediate programs in the C programming language.
C Programming
This course provides students with a comprehensive study of the C programming language. Classroom lectures stress the strengths of C, which provide programmers with the means of writing efficient, maintainable, and portable code. The lectures are supplemented with non-trivial lab exercises.
Advanced C Programming
This course broadens the skills of a C language programmer by introducing sophisticated problem solving techniques including the advanced use of pointers, abstract data types, data structures, portability, and optimization techniques. Skills are reinforced by hands-on laboratory exercises.
C++ Programming
C++ is the object oriented superset of ANSI C. This course provides students with a comprehensive study of the C++ Programming Language. The course stresses the object paradigm including classes, inheritance, virtual functions, and templates in the development of C++ programs. Lab exercises reinforce the lectures.
C++ For Non C Programmers
This course provides students with a comprehensive study of the C++ programming language while teaching those parts of C relevant to C++. Classroom lectures are supplemented with many hands-on exercises, which stress the following C++ topics: data abstraction, class design, operator overloading, inheritance, polymorphism and I/O.
Advanced C++ Programming
This course broadens the skills of a C++ language programmer by examining sophisticated C++ concepts such as templates, exceptions, memory management, advanced inheritance issues, disambiguation of overloaded functions, private and protected inheritance, binary I/O and class libraries.
Java Programming
This course teaches students how to develop Java applications. Topics covered include the Java programming language syntax, OO programming using Java, exception handling, file input/output, threads, collection classes, and networking. Students will develop and test Java applications (typically) using Eclipse. This course is a pre-requisite to all Application Server courses, and speciality Java Technology courses such as Struts, Spring, and Hibernate.
Advanced Java Programming
Advanced Java is a comprehensive study of many advanced Java topics. These include assertions, collection classes, searching and sorting, regular expressions, logging, bit manipulation, serialization, threads, networking with sockets, Remote Method Invocation, and Java Database Connectivity.
Java Message Service (JMS)
This class requires 5 or more students
This course introduces Java developers to the Java Message Service (JMS). Basic messaging concepts and the JMS API programming model are covered along with details of the JMS message format. Tuning mechanisms for improving JMS reliability are discussed and demonstrated. WebLogic Server is used as the JMS Provider for examples and programming exercises.
SWING
This class requires 5 or more students
This 5-day course will introduce Java programmers to the Swing package. The Swing package, extending the AWT, provides efficient and easy-to-use tools for manipulating graphics. Students completing this course will have the ability to create fully-functional, customizable, graphical user interfaces.
Introduction to Spring Framework
This course introduces the Spring Framework, the leading full-stack framework for Java EE applications. Topics covered include the Spring container, dependency injection, data validation, aspect-oriented programming, the JDBC Template, and the Hibernate Template. A Web application is also presented to illustrate the use of the Spring Web MVC design pattern.
Introduction to Hibernate
This course introduces Hibernate, a popular open-source object/relational mapping (ORM) tool that helps Java developers store and access persistent objects. Topics covered include Hibernate configuration, the Hibernate mapping file, inheritance, collections, associations, and the Hibernate Query Language (HQL).
Struts Framework
This class requires 5 or more students
This course shows JSP and Servlet developers how to build web applications using the Apache Struts framework. Students learn to use the Struts architecture to develop web applications using the Model-View-Controller (MVC) design pattern and Struts custom tags to create JSPs and Servlets that adhere to an industry standard.
Tomcat Administration
This class requires 5 or more students
This course is designed to implement a Tomcat Servlet Container. The course covers the installation and configuration of Tomcat as a secure corporate Servlet Container capable of virtual hosting and linking to the Apache Web Server. Advanced features of Valves, Connectors, the JNDI name service, and JDBC connection pooling are also discussed.
JavaServer Faces (JSF)
This class requires 5 or more students
The JavaServer Faces framework is establishing itself as the new standard for the development of web applications. Designed under Sun’s Java Community Process by many of the same people that developer the Jakarta Struts framework, Faces is proving itself to be the next step in the web application evolutionary process. JavaServer Faces, or simply JSF, combines Java Servlets and JavaServer Pages into a server-side implementation of the Model-View-Controller Design Pattern. The JSF framework provides developers with a unified infrastructure upon which Internet applications can be constructed. The course also introduces the developer to the JSF architecture and provides the basis for planning, developing, and deploying Web based applications using the JSF framework. After taking this class, the developer will be able to quickly construct dynamic server-side web pages using JSF and integrate the Web application with many of the other Java2 Enterprise Edition application server methodologies such as Enterprise Java Beans, JavaMail, and SOAP. This class combines lecture with a unifying, hands-on experience, and open discussion that will help the developer quickly understand the benefits of JSF and how to use the framework.
Introduction to Maven 3
This course introduces the latest version of Maven, a popular open-source build automation and software comprehension tool. Core Maven concepts are demonstrated in a series of hands-on lab exercises.
MVN - 201 Development Infrastructure Design
MVN-201 Designing Development Infrastructure covers topics for the advanced Maven user such as advanced multimodule project architecture, enforcing standards with the Enforcer plugin, installing and configuring a repository manager, and installing and configuring a continuous integration server
EJB 3.x Update for EJB 2.x Developers
This class requires 5 or more students
This course is a comprehensive introduction to writing Enterprise JavaBeans (EJB) using the EJB 3.x specification. An overview of EJB3 is provided, followed by hands-on experience with session beans, entity beans, and message-driven beans. Topics also include container-managed relationships (CMR) and the EJB Timer Service. This course can be taught using IBM WebSphere, Oracle WebLogic, or the JBoss application server.
Developing Java Enterprise Applications Using EJB3
This course is a comprehensive introduction to writing Enterprise JavaBeans (EJB) using the EJB 3.x specification. An overview of Java EE technology is provided, followed by hands-on experience with JNDI, JDBC, JMS, session beans, entity beans, and message-driven beans. Topics also include container-managed persistence (CMP), container-managed relationships (CMR), and the EJB Timer Service. This course can be taught using IBM WebSphere, Oracle WebLogic, or the JBoss application server.
Introduction to Python 3
This course introduces the student to the Python language. Upon completion of this class, the student will be able to write non trivial Python programs dealing with a wide variety of subject matter domains. Topics include language components, the IDLE environment, control flow constructs, strings, I/O, collections, classes, modules, and regular expressions. The course is supplemented with many hands on labs using either Linux or Windows.
Advanced Python 3
The course covers a handful of various Python advanced topics including high level dagta structures, network progamming, writing GUI's in Python, and CGI progamming.
Perl Programming
Perl is a scripting language which allows for rapid prototyping of projects formerly done with a programming language or a shell. It incorporates all the functionality of C (including a UNIX system interface), the Shells, grep, sed, and awk. The topics in the course will aid all computer users - from end user to programmer to administrator alike. Many in-class labs support the course material.
Advanced Perl Programming
The course begins with a thorough treatment of packages, modules, and libraries. Next, Perl references are studied. This gives students the necessary background to write object-oriented Perl. Various applications and areas that use object orientation are studied next. These modules include the Tk.pm module for building Graphical User Interfaces, the DBI.pm module, which provides a portable way of querying databases, the CGI.pm module for writing CGI programs, and the Socket.pm module used in client server networking applications. Finally a treatment of XML and Perl is undertaken.
Ruby Programming
This course covers the fundamental components of the Ruby Programming Language. Emphasis is placed on the object oriented aspects of Ruby. Topics include arrays, hashes, regular expressions, io, exceptions, modules, and applications areas.
Groovy Programming
This class requires 5 or more students
Groovy is a dynamic scripting and programming language for the Java platform. It combines the dynamic features of modern scripting languages such as Ruby and Python with familiar Java syntax. To quote one of the Groovy developers: “Groovy is what Java would have been if it had been created in the 21st century.” This course introduces the Java developer to the Groovy language. The course focuses on understanding the internals of how Groovy works in addition to understanding the Groovy language syntax. After taking this course developers will understand the Groovy syntax and be able to leverage existing Java classes within Groovy. This class combines lecture with a unifying, hands-on experience, and open discussion that will help the developer quickly understand the benefits of Groovy and how to use the language.