Introduction to Java NYU CS9053 Section I2
Fall 2023
Wednesdays 6:00 PM – 8:30 PM
Location: Jacobs Room 474
Instructor Dr. Constantine (Dean) Christakos Phone (617) 470-5731 Office Hours Mondays 6pm at https://nyu.zoom.us/j/3882486878
|
Course Overview Java is among the most widely used languages for the programming of large scale software applications as well as on small devices such as cell phones. The objective of this course is to give students a thorough and practical understanding of Core Java concepts including features introduced in Java 8. Apart from teaching the general syntax, this course is geared towards enabling students to understand and implement object oriented programming concepts using Java programming language. There are 14 units in the class. There are 11 lectures on set Java tropics plus 3 additional lectures. I will take suggestions from other students about their interests and what other topics to cover. Past semesters have covered Maven, unit testing, REST APIs, and the Java 8 Stream Framework. Grade Breakdown: Problem Sets: 40% Midterm: 30% Final Project: 30%
The Final Project will be a project of the student’s choosing. They may work in groups of 2-3, but the project must be more substantial. A proposal will be required for the final project which will be reviewed by the teaching staff for approval. Recommended Texts There are various worthwhile texts I will be using as source material. The focus of this class will be Java 8. I recommend the following texts: Introduction to Java, 12th Edition, Y. Daniel Young, Pearson Core Java, Volume I, 11th Edition, Cay S. Horstmann, Pearson (this covers Java 9, 10, and 11, but this will be fine or you can use a previous edition) Java SE8 for Programmers, 3rd Edition, Paul Deitel & Harvey Deitel, Deitel Developer Series These aren’t strictly necessary, as there is also plenty of material online you can study. However, I will be referring to specific chapters in these books. In the syllabus, readings will refer to Horstmann unless otherwise specified. Class Requirements Ÿ Java Development Kit (Java 8.0 or Later) Ÿ An IDE such as Eclipse (Preferred) or NetBeans, etc. or a suitable text editor |
Week |
Subject |
Reading |
September 6th |
History, Importance, Introduction, Basics, JVM, JRE |
Chapter 1-2 |
September 13th |
Procedural Programming, Data Types, Control Statements, Arrays |
Chapter 3 |
September 20th |
Strings, Objects, & Methods |
Chapter 3.6 & 4 |
September 27th |
Inheritance |
Chapter 5 |
October 4th |
IO and Exceptions |
Deitel & Deitel, Chapters 7.5, 11, & 15 Liang, Chapter 12 (12th edition) |
October 11th |
Abstracts, Interfaces, Generics, Functional Java, Lambdas |
Chapter 6.1, Chapter 6.2, Chapter 8 |
October 18th |
GUI/Event Handlings |
Deitel & Deitel Chapter 12 |
October 25th |
Collections |
Chapter 9 & 5.2 |
November 1st |
Concurrency / Multithreading |
Chapter 14 |
November 8th |
Networking |
Horstmann Volume II, Chapter 4 Liang, Chapter 33 |
November 15th |
Databases/JDBC |
Deitel & Deitel, Chapter 21 |
November 22nd |
THANKSGIVING BREAK. NO CLASS. |
|
November 29th |
TBD |
|
December 6th |
TBD |
|
December 13th |
TBD |
|
Week |
Subject |
October 11th |
Midterm, Due October 18th |
Homeworks are due roughly 1 week after the assignments are released. If a homework is not turned in by the due date, it will receive 10% off for each day it is late. However, if you require an extension, please contact me or the TAs, and we can make special arrangements.
Final Project
There will be a final project assigned towards the end of the semester which will be due during finals week. The final project will be a project of the student’s own proposed design. In previous semesters this has involved games, client/server applications, and web applications, among many others. There will be more details later in the semester, which will involve a proposal followed by your submitted implementation.
Academic Honesty
Academic honesty is a serious issue. Students are encouraged to collaborate with classmates to discuss how to solve problems and to look up and search online for solutions or means of implementation of code they’re attempting to write. However, all students must write their OWN code, not use a classmate’s code nor copy online code.
Instances of academic dishonesty (for example, plagiarism from classmates, previous years, or online sites) will result in a 0 for the assignment, exam, or project and a report to academic affairs.