Welcome to our course on Object Oriented Programming in Java using data visualization. People come to this course with many different goals -- and we are really excited to work with all of you! Some of you want to be professional software developers, others want to improve your programming skills to implement that cool personal project that you’ve been thinking about, while others of you might not yet know why you’re here and are trying to figure out what this course is all about.
Topics - Variables: Primitive Data Types and Arrays, Operators: Arithmetic, Unary, Relational, Conditional, Bitwise and Bit Shift, Java Wrapper Classes over Primitive Types (String, Integer, Float, etc.), Expressions, Statements and Blocks, Control Flow Statements: if, if-else, switch statements, while loops, do-while loops, for loops (including for each loop introduced in JDK 1.5), branching statements.
Topics - Data Hiding, Abstraction, Inheritance and Encapsulation, Constructors, Class Methods and Access Specifiers, Life Cycle of an Object, Types of Classes: Abstract, Final, Types of Nested & General Classes, Types of Methods: Abstract, Final, Static, Instance Method, Interfaces and When to Use Them, Enum Types, Packages, Java Annotations.
Topics - Polymorphism in Java, Designing call-back methods for event handling, Handling Internationalization, Handling Internationalization with Resource Bundles.
Topics - Exception handling with try-catch-finally constructs, Implementation of custom Exception class, Using Apache Log4j for logging services, Regular expressions using javax.util.regex.
Topics - Classic Data Structures, Sequential Collections, Associative Collections, Sort & Search Algorithms, Generic Classes, Generic Methods, Bounded Type Method Parameters, Wildcards, How generics behave?
Topics- The structure of the I/O Package, Handling text files, Handling binary files, Object persistence with serialization, Introduction to XML, DOM and SAX models: When to use what, Parsing XML with DOM & SAX.
Topics - Introduction to Concurrency and the constructs of concurrent programs, Implementing a Multithreaded Java program, Synchronizing threads, Critical Section and its protection with locks.
Topics - How to connect to databases from Java code? CRUD operations, How to run parameterized stored procedures?, Transaction Management, Batch Processing.
Topics - How It All Started – BSD Sockets, Networking Basics, Understanding java.net, Network Interfaces, Reliable Communication through TCP Sockets, Unicast through Datagram Sockets, Multicast through Multicast Sockets, URL Processing.
Topics - Managing Java Programme Memory, Unit Testing with JUNIT4, Basic “Gang of Four” Design Patterns – Abstract Factory, Factory Method, Observer, Strategy, Singleton, Adapter & State, Project Discussion.