back to cs201-syllabus
Historic introduction to the Java Object Oriented Programming language. The Java Developers Kit (JDK). Use of the integrated development environment (IDE) Borland JBuilder. Exercises.
More on JBuilder. Creation of a project for a Java application. Exercises.
Structure of a Java Application. The main method. Code indentation prescriptions. String literals. String concatenation. Primitive data types and arithmetic expressions: the int type. Variables, declarations and assignments. Representation of integer numbers. Class-based data types: the class String. Exercises.
Primitive Numerical Data Types: float, double, byte, short, int, long. Arithmetic Operators and Precedence rules. Numeric literals. Arithmetic expressions: promotions, restrictions and casts. Non-numerical data types: char. ASCII code and Unicodes. Exercises.
Verification of Assignment 1. Continuation of lecture 4. Graphic input and output: use of the JOptionPane class. Exercises.
Relational operators. Control statements: if and if-else. Exercises.
Control statements: while and for. Exercises: computation of the factorial of integers.
Verification of Assignment 2. Exercises on the use of conditional and iterative control statements: computation of the gcd using the Euclidean method.
Assignment operators. Shift and bitwise logical operators: masking bits on integer variables. The switch control statement. Exercises on the use of conditional and iterative control statements: computation of the Fibonacci numbers.
Numeric literals. Scientific notation. Constants and the final modifier. The Conditional Operator. Computation of the zeros of a function: Newton's method. Applications: computation of the square root of numbers.
Verification of Assignment 3. Control statements: do-while. Exercises: computation of the cubic root of a number. Use of the methods of the class String to inspect the content of a string.
Formatting of numbers: the classes NumberFormat and DecimalFormat.
Classes and objects. Instance variables and class variables. Instance methods and class methods. The static modifier. Examples: a domestic implementation of the class NumberFormat.
Review. Computation of the cubic root of a number using Newton's method.
Recursion. Euclidean GCD and Fibonacci Numbers revisited. Activation records and recursion trees. Powers of a number.
Practice in the use of recursion, bit-wise and shift operators. Computation of the integer powers of a number using the (recursive) Repeated Squaring Method. Modular Exponentiation. Applications: the RSA cryptosystem and the Diffie-Hellman protocol.
Verification of Assignment 4. Introduction to Arrays.
Arrays of primitive type elements and arrays of objects. Exercises.
Review on arrays. Exercises.
Review on arrays. Exercises.
Basic array algorithms: min, max, sample mean and sample variance. Sorting: the SelectionSort algorithm.
Midterm Examination.
Midterm Examination.
Verification of the Midterm Examination.
Graphic Applets. Drawing geometric shapes.
More on graphic applets. Exercises.
The Timer class. A simple graphic animation: an analog watch (see package online).
More animations: the Locomotiv Applet (see package online).
General review and preparation to the final examination.
Requirements: you can download your project files from your NIS account using SSH in lab.