Section MW8
Class Meeting: 08:00 - 09:15am, Monday and Wednesday
Classroom: Room 130 Ingersoll Hall Extension (IA-130)
Section MW2
Class Meeting: 02:15 - 03:30pm, Monday and Wednesday
Classroom: Room 130 Ingersoll Hall Extension (IA-130)
Course Schedule
Topics: Discuss the policy of the class; provide an overview of the class; form student teams; introduce toolkit for the class including setting up Git, Github, JDK, Eclipse, and Eclipse project setup.
Lecture Notes
Assignment
Reading
Resources
Topics: Introduce the concept of the Java technology; review a few concepts (class, object, and package) in Objected-Oriented Programming in the context of the Java programing language; introduce a brief history of the Java programming language; write and compile a simple Java program; review the concept of class and object, discuss Java class and object; command-line arguments; text-based application interface.
Lecture Notes
Assignment
Reading
Resources
Topics: Review briefly some flow control concepts and OOP concepts; discuss Java primitive data types and reference types; review the main method and the command line arguments; provide an introduction to Java garbage collector.
Remark: Additional discussion on flow control is in C05
Lecture Notes
Assignment
Reading
Resources
Topics: Discuss Java methods and arguments, and reference variables as method arguments; find answers online to problems; and introduce Eclipse and Maven.
Lecture Notes
Assignment
Reading
Resources
Topics: Discuss flow controls, i.e., selection and iteration in Java
Lecture Notes
Assignment
Reading
Conversion day: classes to follow a Monday schedule, which means, we have a class today, a Tuesday.
Topics: Introduce the Java library; use Java API documentation; use 3rd party Java libraries; discuss arrays and lists in the context of data structures; discuss lists in the context of Java Collections API.
Lecture Notes
Assignment
Reading
Resources
Topics: Introduce concept of software validation and verification; discuss testing and JUnit, a unit test framework for Java; discuss examples of JUnit tests; and discuss roadmap of class projects and the project 1 assignment.
Lecture Notes
Assignment
Reading
Resources
Topics: Review concept of inheritance and polymorphism; discuss Java inheritance and polymorphism
Lecture Notes
Assignment
Reading
Topics: Review concept of abstract classes; discuss Java interfaces and abstract classes.
Lecture Notes
Assignment
Reading
Resources
Topics: Discuss program data, memory management in JVM, Java constructors and Java Garbage Collector
Lecture Notes
Assignment
Reading
Resources
Topics: Discuss user interfaces; contrast text-based user interface and graphical user inerface; discuss GUI and GUI applications; discuss event-driven programming; provide a first exposure to Java FX for desktop applications.
Lecture Notes
Assignment
Reading
Resources
Topics: Discuss JavaFX Scene graph, event processing, and build-in UI components including layouts and controls.
Lecture Notes
Assignment
Reading
Topics: Conduct project activities in team; and provide a brief recap for the midterm exam
Lecture Notes
Assignment
Topics: Midterm Examination
Topics: The College canceled the class due to the inclement weather.
Topics: Introduce observer pattern; discuss concurrency in JavaFX; introduce Java threads and JavaFX tasks; discuss application of observer pattern in JavaFX in the context of JavaFX concurrency and tasks; and discuss JavaFX properties and bindings in the context of the observer pattern.
Lecture Notes
Assignment
Reading
Resources
Topics: Styling JavaFX with CSS; FXML; Model-View-Controller architecture style; discuss exception and error handling in Java.
Lecture Notes
Assignment
Reading
Resources
Topics: File system trees, traversal of file system trees, path, file, I/O streams (byte stream, character stream, data stream, object stream), File I/O with streams, formatted and unformatted I/O, character encoding and character set, locatel and formatted I/O, buffered and unbuffed I/O, sequential and random access.
Lecture Notes
Assignment
Reading
Resources
Topics Introduce networking fundamentals including OSI model and TCP/IP model, characteristics of communicational channels, networking application architecture, Berkeley sockets with TCP, and object serialization.
Lecture Notes
Assignment
Reading
Resources
Topics: Discuss concepts of unicast, broadcast, and multicast; discuss user datagram and datagram sockets; discuss datagram sockets for unicast, broadcast, and multicast.
Lecture Notes
Assignment
Reading
Resources
Topics Introduce to asynchronous I/O and concurrency; discuss Java Threads and asynchronuous I/O and their application in networking and GUI applications.
Assignment
Reading
Resources
Topics: Introduce and review a few design patterns including static factory method, factory pattern, builder pattern, and observer pattern; discuss design patterns in Java API
Lecture Notes
Assignment
Resources
Topics: Introduce Web application and architecture; review client/server architecture; discuss multi-tier application architecture; discuss and review XML, HTML, and CSS; and introduce JavaScript and libraries and framework.
Resources
Topics: Discuss URI, URN, and URL; discuss HTTP; experiment with URL and HTTP; programming with simple Web services.
Assignment
Topics: Discuss passing data and parsing returns for the Web; Introduce the Spring Framework; discuss the evoluation of Web applications and development; discuss Spring MVC.
Assignment
Topics: Discuss Spring Web Controller; discuss simple data store;
Assignment
Topics: Discuss UI testing, and Web applications testing.
Resources
Topics: Final review; Q&a.