We are heading for the last quarter of a strange and daunting year, a year with so many difficulties and challenges. Yet, whatever may be happening around we need to keep going, keep learning, and keep preparing for whatever the future may bring.
So, what’s on the plate for the Fall?
There are 3 key areas I believe will contribute to the efforts of my students and will improve their skills and experience:
- Algorithmic thinking: Knowledge of the keywords and syntax of a programming language is not enough. We need to train our problem solving muscles frequently. Hence, we will solve a number of challenges every week, we will discuss the different solutions and approaches and will document the details. This way by the end of the year we will solve at least 24 problems. The platform to be used for this activity is: LeetCode.
Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People
- Programming Principles: We usually learn the “what” but not always the “why” things are used in a specific way. This is what we will try to achieve here. In a weekly discussion we plan to cover the basic Object Oriented Programming principles, the SOLID principles for software development, and the most important design patterns. All in a Head First way with hands on examples.
Clean Architecture: A Craftsman’s Guide to Software Structure and Design
Clean Code: A Handbook of Agile Software Craftsmanship
Head First Design Patterns
Head First Object-Oriented Analysis and Design
Head First Software Development
Whatever we do will be documented and the code will be maintained on GitHub. So, besides the progress and skills for each one of the participants we expect to prepare important material for the future.
On to a Problem Solving Fall 2020!