This is a long page. You may want to open the Table of Contents above!
Material on this Site
Title | Tag | Tools |
---|---|---|
Conditional Statement | info1-script, java | |
While Loop | info1-script, java | |
Info1 Script | info1-script, mermaid | |
Notes on Sketchnotes | sketchnotes | |
BlueJ Trick - Save your Object Bench using Test Fixtures | bluej | |
ClockDisplay Example: Reflections and Improvements | bluej, karaclock | |
JUnit in BlueJ | bluej, junit, testing |
Kara
- Worksheet 1
- Worksheet 2
- Testareas for manual walkthroughs
- Kara Sourcecode for the Worksheets:https://github.com/htw-imi-info1/kara
- Solutions: https://github.com/htw-imi-info1/kara/tree/public-solution
- Kara Tutorial (if you need more introduction to Kara)
- Greenfoot Tutorial - YouTube (if you want to learn more about Greenfoot, not needed for this class)
Textbook
We will be using the Textbook Objects First with Java - A Practical Introduction using BlueJ, Pearson Education, 2016, 6th edition by David Barnes and Michael Kölling.
There is a German translation available: Barnes, David J., Kölling, Michael: Java lernen mit BlueJ. Pearson, 2017, 6. Auflage. Pearson Book Page.
There are copies available in the library, and you can also obtain an older edition - examples and chapter order vary, but the general content is mostly the same except of the new chapter on lambdas and streams. More material and info on the chapter order can be found on the book’s web page: https://www.bluej.org/objects-first/
The autors have recorded videos for most lectures (currently, up to chapter 8): Complete Video Playlist, the Older Video Notes contain all chapters of the older edition, with previous edition chapter numbers, without lambdas.
Textbook Videos
Chapter 01 - Objects and Classes Objects, Classes, Methods, BlueJ, Parameters, Compiler | Video Part 1 , 2 |
Greenfoot and thus Greenfoot Kara as well builds on top of BlueJ; this videos shows working with Objects and Classes in Greenfoot: Greenfoot Tutorial Teil 1 - Grundbegriffe Klasse und Objekt, Parameter - YouTube
Chapter 02 - Understanding Class Definitions - Class Definitions, Fields, Constructors, Methods, Parameters, Assignment, Getters and Setter, Printing to the command line, Conditional, Local Variables, Expressions | Video Part 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 |
Chapter 03 - Object Interaction - Abstraction, Modularization, Object Interaction, Object Creation, Object and Class Diagrams, Primitive Types, Object Types, Multiple Constructors, Debugger | Video Part 1 , 2 |
Chapter 04 - Grouping Objects Collections, Generics, for-each, While Loops, More Loops, Iterators, Arrays, For Loops | Video Part 1 , 2 , 3 , 4 , 5 |
Chapter 05 - Functional Processing of Collections (Advanced) Lambda Functions, Filter, Map, Reduce | Video Part 1 , 2 |
Chapter 06 - More-Sophisticated Behavior - Library Classes, Reading Class Documentation, Random, Packages, (Hash)Maps, Public vs. Private, Interfaces, Class Variables, Writing Class Documentation | Video Part 1 , 2 , 3 |
Chapter 07 - Fixed-Size Collections Arrays | Video Part 1 , 2 |
Chapter 08 - Designing Classes - Designing Classes, Coupling, Cohesion, Refactoring, Using the main method | Video Part 1 , 2 , 3 , 4 |
Chapter 09 - Well-Behaved Objects - Modularization, Interfaces, Debugging, Walkthroughs, Testing and Interfaces, Unit Testing, Test Automation | Video Part 1 , 2 , 3 |
Chapter 10 - Improving Structure with Inheritance - Inheritance, Subtyping, Polymorphism, Protected, Casting, Polymorphism, Static vs. dynamic typing, Overriding, Object equality | Video Part 1 , 2 , 3 |
Chapter 11 - More about Inheritance - Abstract Classes, Interfaces | Video Part 1 , 2 , 3 |
Chapter 12 - Further Abstraction Techniques - Abstract Classes, Abstract Methods, Multiple inheritance, Interfaces | Video Part 1 , 2 |
Chapter 13 - Building Graphical User Interfaces - Graphical User Interfaces | Video |
Chapter 14 - Handling Errors - Handling Errors, Exceptions, Assertions, File-based IO, Files, Command Line | |
Other Material
On this Website
Title | Tag | Tools |
---|---|---|
Conditional Statement | info1-script, java | |
While Loop | info1-script, java | |
Info1 Script | info1-script, mermaid | |
Notes on Sketchnotes | sketchnotes | |
BlueJ Trick - Save your Object Bench using Test Fixtures | bluej | |
ClockDisplay Example: Reflections and Improvements | bluej, karaclock | |
JUnit in BlueJ | bluej, junit, testing |
Java Tutorials
There are many Java Tutorials out there on the web on the topics we cover. Many will prove useful, however, do use them as practice to gauge the quality and applicability of your findings before relying on them.
A comprehensive resource for the Java language are the Tutorials by Sun/now Oracle; especially the Trail “Learning the Java Language”. This is definitely way more than you (probably ever) want to work through; but if you want to lookup and more thouroughly understand a certain topic, it is worth
Terms Crosswords - Rather old, you need to install an Applet Runner in your browser for them to work, like e.g. this one for Chrome - https://cse.taylor.edu/~sbrandle/bluej/
Artificial Intelligence(s)
ChatGPT has proven to be quite good at many programming tasks, and you will most likely succeed by trying to have ChatGPT answer the questions and generate probable solutions to the programming assignments.
Please do not waste my time trying to give feedback on generated answers. Don’t waste your time having to listen to that feedback because you need to pretend that it was your answer.
You may, and should however, use ChatGPT (and also plain googling) to help whenever you are stuck. If you do so, document that you were doing so by referring to it as a source, and check the validity of the answer. In fact, I am very much interested in learning through your reports in which way ChatGPT proved to be useful to you.