This book is my fifth book in my programming puzzles series of books which can be used by prosperous aspirants of Informatics Olympiad (IOI) and International Collegiate Programming Contest (ICPC) who are at the early stage of their goal. Also, this book can be used by middle level High School programming contestants. More than fifty percent of the examples are the ones which appeared in some High School level competitions such as Microsoft Internship examination, Microsoft Interviews, Google Interviews, IOI, COCI (CROATIAN OPEN COMPETITION IN INFORMATICS), Stanford Pro Co, etc., in addition to http://hackerrank.com, http://codegold.stackearth.com, http://projecteuler.com. Remaining solved examples and exercises are of my own designs. Most important objective of this book is to provide repository of plethora of examples (and solutions) to both first level students and teachers who are teaching first level programming course. I do not find any reason to deny my statement that this book content can be introduced as a two credit course soon after completion of conventional first level programming course, especially during their programming related course after 10+2.
Certainly loops are instrumental in building logic involving iterative thinking. Framing nested loop structures is the first level skill set that has to be developed by any one from beginner to expert programmer. This becomes concrete skill set if the students were asked to solve variety of single loop, nested loop based problems. Also, from my experience of teaching more than one hundred thousand students, I have noticed that making the students to trace a piece of code helps them in establishing clarity on the logic which is employed in the code fragment. Since twenty years, I have been practising this approach with my students which I refer to as “trace driven learning” (My books on C and Data Structures, C Programming by S Chand Company enlightens this concept). In order to enrich the readers in their loop building skill set, we have solved about hundred problems involving generation of variety of patterns in character mode.
Evidently, we find majority of programming contests aims to test participants abilities on number theory, combinatorics, data structures, dynamic programming, geometry, and matrices. Especially, middle level high school programming competitions, we certainly found many examples that use concepts of arrays and matrices. We have solved more than hundred programming puzzles that appeared in real competitions including the ones from https://hackerrank.com, http://projecteuler.com .
One of the salient aspects of this book is hosting our solved examples code in a prominent visualization tool, http://pythontutor.com . That is, if the reader visits these hosted examples and run the visualization tool, he will be getting more enlightenment about the logic which we have employed in solving that puzzle. More than ninety percent of solved programming puzzles are hosted in this visualization tool which the readers can play with. Remaining examples could not be hosted because of their size and limitations from the tool.
Example problems solved includes: Rubik cube, chess board checkmate checking, eight queens problem, moving various pawns in both 2-D and 3-D check boards, designing movements in the grid such as spiral movement, raster movement, etc., efficient convolution in the discrete domain, image based examples.
With more than two hundred solved programming puzzles and two hundred exercises (to be solved by readers), this book is a boon both to a student and a teacher who is teaching first level programming course.