
48 Classes - 4 Hours, 2 Days per Week for 6 Months
Course Description
Hands-on programming course designed for C++ and Java languages. Requires previous programming experience and understanding of basic Java language structure. Previous C programming experience is a plus. Covers the fundamentals and advanced features of the C++ language, supporting the Object Oriented Programming paradigm.
The second part of the course covers specialized Java 2 platform topics: the Java Swing API, JDBC and networking.
|
Course Schedule
|
| |
| Week One - Week Two |
| 1-4. |
Introduction to C++ |
|
- |
C++ as a better C |
|
- |
programming paradigms supported by C++ |
|
- |
procedural Programming |
|
- |
variables, arithmetic |
|
- |
tests, loops |
|
- |
pointers and arrays |
|
- |
modular programming |
|
- |
use of header files |
|
- |
separate compilation |
|
- |
namespaces |
|
- |
data abstraction |
|
- |
modules defining types |
|
- |
user defined types |
|
- |
concrete types |
|
- |
abstract types |
|
- |
virtual functions |
|
- |
object oriented programming |
|
- |
inheritance and class hierarchies |
|
- |
generic programming |
|
- |
class templates |
|
- |
function templates |
| |
|
|
| Week Three |
| 5. |
Variables and constants |
|
- |
fundamental data types |
|
- |
variable scope |
|
- |
variable and constant declarations |
| 6. |
Expressions and statements |
|
- |
iteration statements (while, do-while, for) |
|
- |
conditional statements (if-else, switch) |
|
- |
logical and arithmetic operators |
|
- |
arrays |
| |
|
|
| Week Four |
| 7. |
Functions |
|
- |
function declaration and definition |
|
- |
argument passing |
|
- |
function overloading |
|
- |
default arguments |
| 8. |
Basic classes |
|
- |
evolution of classes from C-style structures |
|
- |
members, constructors, destructors |
|
- |
access restrictions |
|
- |
static members |
|
- |
default constructor |
| |
|
|
| Week Five |
| 9. |
Programming |
|
- |
writing programs using simple user defined types |
| 10. |
Pointers and references |
|
- |
pointers and arrays |
|
- |
pointers and functions |
|
- |
constant pointers and pointers to constant variables |
|
- |
pointers and argument passing |
|
- |
reference vs. pointers |
| |
|
|
| Week Six |
| 11. |
Advanced functions |
|
- |
overloaded member functions |
|
- |
overloaded operators |
|
- |
inline functions |
|
- |
friend functions |
| 12. |
Inheritance |
|
- |
virtual functions |
|
- |
derived classes |
|
- |
class hierarchies |
| |
|
|
| Week Seven |
| 13. |
Programming |
|
- |
writing programs using inheritance and derived classes |
| 14. |
Polymorphism |
|
- |
multiple inheritance |
|
- |
pure virtual functions |
|
- |
abstract classes |
|
- |
protected members |
| |
|
|
| Week Eight |
| 15. |
Programming |
|
- |
writing simple object oriented programs |
| 16. |
Exception and Error Handling |
|
- |
comparison to the C-style exception handling |
|
- |
create simple exception-throwing programs |
|
- |
use of class hierarchies to treat exceptions |
| |
|
|
| Week Nine |
| 17. |
Templates |
|
- |
class templates |
|
- |
function templates |
|
- |
templates and derivations |
| 18. |
Advanced classes |
|
- |
free store management |
|
- |
static member variables and functions |
|
- |
copy constructor and copy assignment |
|
- |
temporary objects |
| |
|
|
| Week Ten |
| 19. |
Programming |
|
- |
write Object Oriented programs using the advanced features of C++ |
| 20. |
Organization of large programs |
|
- |
C-style header files based organization |
|
- |
use of class abstraction mechanisms |
|
- |
use of namespaces |
|
- |
combination of various paradigms |
| |
|
|
| Week Eleven |
| 21. |
Standard library: containers and integrators |
|
- |
vector, list, stack, queue, map templates |
| 22. |
Standard library: algorithms |
|
- |
sorting and searching |
|
- |
C-style algorithms |
| |
|
|
| Week Twelve |
| 23. |
Standard library: strings and streams |
|
- |
string operations |
|
- |
C-style strings |
|
- |
stream I/O |
|
- |
comparison to C-style I/O |
| 24. |
Programming |
|
- |
writing C++ programs using the standard library |
| |
|
|
| Week Thirteen |
| 25. |
Introduction to Java as an object-oriented language |
|
- |
programming paradigms supported by Java |
|
- |
procedural programming |
|
- |
variables, data types |
|
- |
arithmetic and logical operators |
|
- |
control flow statements |
|
- |
modular programming and data abstraction |
|
- |
the class as a module |
|
- |
object oriented programming |
|
- |
use of inheritance and class hierarchies |
|
- |
main points of difference from C++ |
|
- |
presence of a garbage collection mechanism |
|
- |
absence of pointers |
|
- |
interfaces instead of C++ abstract classes |
|
- |
easier, cleaner and safer programming, with a certain speed overhead |
|
- |
the platform independence |
| 26. |
Threads in Java |
|
- |
creating threads |
|
- |
synchronization |
|
- |
wait & notify |
|
- |
deadlocks |
|
- |
suspending threads |
|
- |
interrupting threads |
|
- |
the runnable interface |
| |
|
|
| Week Fourteen |
| 27. |
Writing Applets |
|
- |
the first “Hello world!” applet |
|
- |
the init(), start(), stop(), destroy() methods |
|
- |
drawing and event handling |
| 28. |
Writing Applets |
|
- |
adding UI components |
|
- |
applet security problems |
|
- |
the <APPLET> tag |
|
- |
applet parameters |
|
- |
communication with other applets |
| |
|
|
| Week Fifteen |
| 29. |
Introduction to the Java Swing API |
|
- |
the evolution of the Java GUI platform |
|
- |
anatomy of a swing based program |
|
- |
swing components |
|
- |
switch |
|
- |
the containment hierarchy |
|
- |
layout management and borders |
|
- |
models |
|
- |
look and feel |
|
- |
event handling |
| 30. |
Other Swing features |
|
- |
using actions |
|
- |
using borders |
|
- |
using icons |
|
- |
using threads |
|
- |
using timers |
| |
|
|
| Week Sixteen |
| 31. |
Using Swing components |
|
- |
the JComponents class |
|
- |
the top-level containers |
|
- |
frames |
|
- |
dialogs |
|
- |
applets |
|
- |
atomic components |
|
- |
buttons |
|
- |
checkboxes |
|
|
radio buttons |
| 32. |
Using Swing components |
|
- |
atomic components |
|
- |
color choosers |
|
- |
combo boxes |
|
- |
file choosers |
|
- |
labels |
|
- |
lists |
| |
|
|
| Week Seventeen |
| 33. |
Using Swing components |
|
- |
atomic components |
|
- |
menus |
|
- |
sliders |
|
- |
tables |
|
- |
text components |
|
- |
text fields |
|
- |
editor panes |
|
- |
text panes |
|
- |
using tool tips |
|
- |
using trees |
| 34. |
Using Swing components |
|
- |
intermediate swing containers |
|
- |
panels |
|
- |
scroll panes |
|
- |
split panes |
|
- |
tabbed panes |
|
- |
tool bars |
|
- |
internal frames |
|
- |
layered panes |
|
- |
root panes |
| |
|
|
| Week Eighteen |
| 35. |
Layout management |
|
- |
general rules of using layout managers |
|
- |
border layout |
|
- |
card layout |
|
- |
flow layout |
|
- |
grid layout |
| 36. |
Layout management |
|
- |
box layout |
|
- |
spring layout |
|
- |
grid bag layout |
|
- |
creating a custom layout manager |
|
- |
working without a layout manager (absolute positioning) |
| |
|
|
| Week Nineteen |
| 37. |
Event Handling |
|
- |
simple event-handling examples |
|
- |
introduction to event listener writing |
|
- |
implementing listeners for commonly handled events |
|
- |
action listener |
|
- |
caret listener |
|
- |
component listener |
|
- |
container listener |
|
- |
document listener |
|
- |
focus listener |
|
- |
internal frame listener |
| 38. |
Event Handling |
|
- |
implementing listeners for common events |
|
- |
item listener |
|
- |
key listener |
|
- |
list data listener |
|
- |
list selection listener |
|
- |
mouse listener |
|
- |
mouse-motion listener |
|
- |
table model listener |
| |
|
|
| Week Twenty |
| 39. |
Event Handling |
|
- |
implementing Listeners for common events |
|
- |
tree expansion listener |
|
- |
tree model listener |
|
- |
tree selection listener |
|
- |
tree-will-expand listener |
|
- |
undoable edit listener |
|
- |
window listener |
| 40. |
Working with Graphics |
|
- |
how painting works |
|
- |
the coordinate system |
|
- |
the graphics object |
|
- |
the swing painting methods |
| |
|
|
| Week Twenty One |
| 41. |
Using Graphics primitives |
|
- |
painting shapes |
|
- |
working with Text |
|
- |
the FontMetrics class |
| 42. |
Using Images |
|
- |
loading images |
|
- |
tracking image loading |
|
- |
the MediaTracker class and ImageObserver interface |
|
- |
the MemoryImageSource class |
|
- |
displaying images |
| |
|
|
| Week Twenty Two |
| 43. |
Performing animation |
|
- |
creating an animation loop with timer |
|
- |
moving an image across the screen |
|
- |
displaying a sequence of images |
|
- |
improving the appearance and performance of image animation |
| 44. |
Introduction to JDBC |
|
- |
connecting to the database |
|
- |
creating tables |
|
- |
executing SQL statements |
|
- |
retrieving data |
| |
|
|
| Week Twenty Three |
| 45. |
JDBC |
|
- |
using prepared statements |
|
- |
using joins |
|
- |
using transactions |
|
- |
retrieving exceptions |
|
- |
retrieving warnings |
| 46. |
JDBC - new features in Java 2 Platform |
|
- |
updating result sets |
|
- |
batch updates |
|
- |
scrollable result sets |
| |
|
|
| Week Twenty Four |
| 47. |
Networking in Java |
|
- |
sockets and streams |
|
- |
URLs, URLConnections |
|
- |
content handlers |
| 48. |
Programming |
|
- |
writing of client-server programs by use of the java.net.* package |
| |
|
|

|