Java OOP and Data Structures with Introduction to Secure Coding delivers a comprehensive exploration of Java fundamental Object-Oriented Programming (OOP) design principles, Java Collections Framework which is thoughtfully integrated with the implementation strategies and interpretative insights drawn from the data structure perspective of C++.
Uniquely, the book also introduces Java secure coding standards, a vital aspect often absent in similar texts. Tailored for foundational computer science courses like Computer Science II and III, the book encompasses a wide array of essential topics: arrays, basic and advanced class concepts and applications, inheritance and polymorphism, exceptions, input/output operations, abstract classes and interfaces, inner and anonymous classes, JavaFX, generics, stacks, queues, linked lists, binary trees, sorting algorithms, time complexity analysis, collections, AVL trees, hashing techniques, and graph structures.
Adopting a hands-on methodology, each section features meticulously crafted examples, distinctive knowledge checks for thorough self-assessment through extensive work on the examples, summarized programming points, practical application exercises, and reinforcing quizzes. The inclusion of Java Secure Coding introductory principles, complete with examples, makes this book unique by addressing a crucial technical skill often neglected. To further enhance the learning experience, all book examples, lecture slides, supplemental chapter sections, solutions to knowledge checks, and quizzes are readily available on the book’s supplementary GitHub repository. Additionally, instructional videos for each chapter will be accessible on the book’s dedicated YouTube channel.
Chapter 1: Arrays
Chapter 2: Class: Just the Basics
Chapter 3: Advanced Class Topics
Chapter 4: Examples of Classes from the Java Library
Chapter 5: Inheritance and Polymorphism
Chapter 6: Inheritance: Additional Topics
Chapter 7: Exceptions
Chapter 8: I/O
Chapter 9: Abstraction: Abstract Classes and Interfaces
Chapter 10: Nested Types: Inner and Anonymous Classes
Chapter 11: JavaFX: Developing GUI-Based Applications
Chapter 12: Stack
Chapter 13: Queue
Chapter 14: Generics
Chapter 15: LinkedList
Chapter 16: Binary Trees
Chapter 17: Sorting
Chapter 18: Time Complexity - BIG O
Chapter 19: Collections
Chapter 20: AVL Trees
Chapter 21: Hashing
Chapter 22: Graph
Appendix
Bibliography
Ziping
Liu
Dr. Ziping Liu is a Professor of Computer Science at Southeast Missouri State University, where she has been teaching since 2001. Her research interests span a diverse range of topics, including artificial intelligence and machine learning, secure software design, wireless ad-hoc and sensor network communication and security, distributed and cloud computing, and game development. She has taught courses in machine learning, artificial intelligence, data analytics with Python, cloud computing, full-stack web development with Angular and ASP.NET C#, mobile computing on Android, object-oriented programming and data structures in Java and C++, 2D and 3D game development with C# and Unity/XNA, computer networks, and operating systems, etc. Dr. Liu earned her Ph.D. from Southern Illinois University at Carbondale in 1999 and worked as a software engineer at Motorola from 2000 to 2001.