Skip Navigation Links

Programming Languages Curriculum

|C|C++|C#|Java Technologies|Python|Perl|Ruby|

Adobe Acrobat Reader icon (147.11 KB) View, Download, or Print Catalog as a PDF.

C

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++

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.

C#

C# Programming
This thorough and comprehensive course is a practical introduction to programming in C# utilizing the services provided by .NET. An important thrust of the course is to teach C# programming from an object-oriented perspective. It is often difficult for programmers trained originally in a procedural language to start "thinking in objects." This course introduces object oriented concepts early, and C# is developed in a way that leverages its object-orientation.

Java Technologies

Java Programming
Java is a complete programming language which can be used to write applets that enhance existing Web pages, or embedded Web based applications. Through lecture and hands on labs, this course introduces students to all aspects of this high level programming language.
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 course introduces Java developers to the Java Message Serivce (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 disculled and demonstrated. WebLogic Server is used as the JMS Provider for examples and programming exercises.
SWING
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.
Jakarta Struts
This advanced course shows JSP and servlet programmers how to build "Model-2" Web applications using the Jakarta Struts project from Apache. Students learn the Struts architecture and see how it captures a great deal of pre-existing best practice in Web application development. They build applications from scratch using the Struts 1.1 code base, advancing through actions and action mappings, form beans, and request forwarding. They use relational data at the model layer and learn to configure JDBC data sources under Struts. Throughout, the course emphasizes the great facility in Struts of using XML declarations to replace boilerplate Java coding. The course then shifts from these controller techniques to a focus on presentation. Students learn to use various libraries of custom JSP tags: the JSP Standard Tag Library (which supersedes a number of Struts tags), Struts HTML tags for form-building and validation, and the Tiles library for robust and reusable page layouts. Two chapters near the end of the course treat issues of effective Struts development: one focuses on "under the hood" coding techniques and one on best practices at a design level. By the end of the course, students are building complex, internationalized Web applications that validate user input, handle error conditions gracefully, and make best use and reuse of control and presentation logic through actions, form beans, validators, business and persistence JavaBeans, and Tiles.
Introduction to Spring Framework
This course introduces the Spring Framework, the leading full-stack framework for Java EE applications. Topics covered include the Spring containers, dependency injection, data validation, aspect-oriented programming, the JDBC template, the Hibernate template, and declarative transaction management. A Web application is also presented to illustrate use of the Spring Web MVC framework.
EJB3 and Hibernate
This training course provides students with the knowledge needed to use the Hibernate Object/Relational Mapping (ORM) framework to implement the persistence layer of J2EE applications.

Python

Python I
This course leads the student from the basics of writing and running Python scripts to more advanced features such as file operations, regular expressions, working with binary data, and using the extensive functionality of Python modules. Extra emphasis is placed on features unique to Python, such as tuples, array slices, and output formatting. This is a hands-on programming class. All concepts are reinforced by informal practice during the lecture followed by graduated lab exercises. Python Programming is a practical introduction to a working programming language, not an academic overview of syntax and grammar. Students will immediately be able to use Python to complete tasks in the real world.
Python II: Applied Python
Once students have mastered the basics of Python, it's time to move on to applying Python to daily programming needs. This course picks up where Python I left off, covering some topics in more detail, and adding new ones. For instance, regular expressions and classes are covered extensively, with network programming (e.g. FTP, Web client and server), graphical programming, database access, and other areas of general need.

Perl

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 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

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 such as CGI, client/server, and network programming.