We strive to craft maintainable software systems, since evolution of large systems is their most important and longest lifecycle phase. Various software development paradigms, like functional and object-oriented programming, contain wealth of approaches how to attain the previous objective. One of them is the creation and usage of custom data types. This blog peeks into the power of strongly typed programming languages and shows via a simple case study how to devise a flexible application by adorning it with custom data types. For this purpose I will use Java, but the general ideas are language agnostic. Problem Description For teachers the booksite accompanying the book Computer Science: An Interdisciplinary Approach by Robert Sedgewick and Kevin Wayne is an excellent source of educational materials. I will provide here solutions to some exercises that are not published in this book nor on the booksite, at the time of writing this document. The main task is to write a client ...
This blog contains posts mostly from the domains of computer science and systems/software engineering. Each post is written in a self-contained manner with links toward external sources. These should be treated as mandatory reading, as they explain concepts not repeated in posts. Every topic is treated in pragmatic fashion using concrete examples implemented in various mainstream programming languages (like, C++, Python and Java).