Records, Concepts and Paradigms. Compilation and Interpretation. JIT compilers. Structure of Computer Programs. Integrated Development Environments (IDEs). Versioning and Versioning Environments. Languages and data types. Conditional and repetitive structures. Functions, Modules and Function Libraries. Recursion. Programming of user interfaces. Input and output of data. Databases interface. Extensions. Debugging, Profiling and Optimization.
- Moacyr Silva, Asla Sá, Alexandre Rademaker, Walter Sande. Class notes.
- Robert Sedgewick and Kevin Wayne. Introduction to Programming in Java: An Interdisciplinary Approach.
- Harvey M. Deitel, Paul J. Deitel. Java: How to Program. Pearson Educational.
- Cay Horstmann and Gary Cornell. Core Java (TM) 2, Volume I. Fundamentals (7th Edition). Core Series.
- David Geary. Graphic Java 2, Volume 2: Swing.
- Kim Topley. Core Swing: Advanced Programming (Paperback)
- Robert Sedgewick. Algorithms in C ++.
- Thomas H.Cormen. Algorithms: theory and practice.