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. |
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. |
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,
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., 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), 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. |