Nick Leuci  ::  University Teaching Summary (evening classes)

 

UCLA, Extended Education, Engineering and Information Systems

 

September 1996 –

June 2003

·  Applied Design Patterns with Java / Rational Rose UML:

This Lab course emphasizes hands on Reuse of UML class diagrams, and Java source classes implemented as the core catalog of Creational, Structural and Behavioral Design Patterns.  It focuses on building new applications by reusing established Design Patterns.

·  Advanced Object-Oriented Programming Using C++:

Object-oriented analysis and design, object modeling and collaboration, class design hierarchies with aggregation and composition, single and multiple inheritance, virtual functions and polymorphism, dynamic memory management, operator overloading and function objects, templates, containers and the STL, homogenous and heterogeneous lists, recognizer types, RTTI, namespaces, error recovery and exception handling.

·  Advanced Object-Oriented Software Engineering Using C++:

Software Engineering using Object-Oriented Analysis (OOA), Design (OOD and Programming (OOP) technologies.  Study of the leading O-O modeling methodologies and notations including Unified Modeling Language (UML), Booch, Jacobson Use Case Analysis, and OMT;  Forward and Reverse Engineering (FRE roundtrips) using a tool based repository, with presentations of major case studies.  Process and Object modeling with class, state, interaction, and messaging diagrams, and cross-functional swimlanes;  Component Based Development with CORBA and COM/DCOM.  Survey of the leading O-O CASE tool vendors.

 

California State University Northridge (CSUN), Department of Computer Science

 

2000 -  2001

 

(one year part-time appointment)

·  Data Structures and Program Design with Java:

Introduction to data structures and the algorithms for them, using Java classes.  Review of composite data types such as dynamic arrays, records, strings, and sets. The role of the abstract data type (ADT) in program design.  Definition, implementation, and application of data structures such as stacks, queues, linked lists, and trees.  Recursion.  Use of time complexity expressions in evaluating algorithms.  Comparative sorts and searches.

·  Advanced Data Structures with C++:

Designing polymorphic ADTs for stacks, queues, and trees, and implementing them with arrays and linked lists.  Using O(n), Ω(n) and Θ(n) to analyze the time complexity and space efficiency of these structures.  Internal sorting comparatively studied using Insertion, Shell, Merge, Quick and Radix sorts.  External sorting (file records) optimized with buffer pools and multiway merging to reduce I/O accesses.  Searching and hashing methods.  File system Indexing using linear, ISAM and tree techniques.  Graph implementations and searches, shortest path problem, and minimum-cost spanning trees.

 

California State University Fullerton (CSUF), Department of Computer Science

 

1996 – 1997

 

(one year part-time appointment)

·  Client/Server Systems Analysis and Design:

Enterprise E-R modeling, RDBMS analysis and design, logical to physical data modeling and normalization, Client-Server architectures, FRE, advanced SQL programming, consistency and referential integrity, transaction processing, two-phase commit, rollback and recovery, concurrency, decision support and data warehouses, distributed databases, and Object-Oriented RDBMS.

·  Computer System Architecture:

Data representations, Boolean logic and switching algebra, logic gates and combinational circuits, flip-flops and sequential circuits, registers and memories, basic instruction cycle and pipeline, functional units, microprogramming, CISC and RISC architectures, bus design and protocols, ALU internals, secondary memories and I/O subsystems.

·  Intel 80x86 Assembly Language Programming:

80x86 architecture, Real, Protected and Virtual Mode programming, assembly-debug process, modular design, device drivers and interrupt handlers, interfacing to C/C++ and Windows.

·  Unix Operating System Workshop:

Unix commands and utilities, shell scripts, processes, file system and streams, administration, multi-threading, multi-tasking and IPC,  pipes, filters and I/O redirection,  remote logins.


Nick Leuci  ::  On-site Industrial Training Programs Developed and Delivered

General Dynamics, Electronic Systems Division,

Thousand Oaks, CA

November 1999 – February 2000

 

·  Object-Oriented Development with Java:

Object-Oriented Analysis and Design using Rational Rose, building Object Models in UML, with Use Cases, Class, State, Sequence, Activity and Collaboration Diagrams.  Roundtrip forward and reverse Object-Oriented Software Engineering for Java Development.  Design Patterns in Java:  Using Creational, Structural and Behavioral Design Patterns for Java Development.

Software design and development using Sun Java 2 Platform JDK and JVM:  language semantics, bytecodes, unicode strings, tokens, data types, class design with encapsulation, operators, control flow, method overloading, subclassing with inheritance, subtyping with interfaces, object references and delegates, exceptions, packages, I/O package, standard utilities, Java Beans (EJB), and JDBC data access.

Using the Java threading model to build multi-threaded applications, including sharing resources and synchronizing threads.  Java networking development using the java.net package for building network applications using tcp/ip sockets.   Java applet and servlet development.

GUI development with AWT Event Delegation Model and Swing, designing and implementing platform independent GUIs with components, events, and listeners (event handlers).  Swing Model-View-Controller Design Pattern GUI development.

 

Unisys Corp., Mission Viejo, CA

January 2000

One Week Onsite Intensive Course

 

·  Java Programming Workshop:

Advanced Software design and development using Sun Java 2 Platform JDK and JVM:   applets, bytecodes, unicode strings, tokens, data types, class design with encapsulation, operators, control flow, method overloading, subclassing with inheritance, subtyping with interfaces, object references and delegates, exceptions, packages, I/O package, standard utilities.  Using the Java threading model to build multi-threaded applications, including sharing resources and synchronizing threads.  Java networking development using the java.net package for building network applications using tcp/ip sockets.  GUI development with AWT Event Delegation Model and Swing, designing and implementing platform independent GUIs with components, events, and listeners (event handlers).

 

Hands On Technology Transfer (HOTT),

Sunnyvale, CA

Spring 1998

One Week Onsite Intensive Course

 

· Fundamentals of Java Programming:

Beginning course for software design and development using Sun JDK / JVM:  Fundamental Java operators, statements, syntax, object constructors and semantics.  Understanding bytecodes, unicode strings, tokens, data types, class design with encapsulation, operators, control flow, overloading, inheritance, interfaces, object references, exceptions, threads, packages, I/O package, standard utilities, Java Beans (EJB), and JDBC data access.  Constructing web pages using HTML and applets developed in Java.