A* Search Algorithm

As I mentioned in my last post, I read the article “A* search: what’s in a name?” by James W. Davis and Jeff Hachtel. If interested, you may find the article in Communications of the ACM, December 2019, Vol. 63 No. 1, Pages 36-37. The article deals with the name of a search algorithm that was originally published in 1968 by Peter Hart, Nils Nilsson and Bertram Raphael of Stanford Research Institute.

My interest was not much about the name but to be able to experiment and understand the algorithm. There are so many algorithms in Computer Science that adding one more to my list is always welcomed. I do not plan on memorizing the algorithm but if the time comes when I might need to search a graph, I will have one more choice in my toolkit. Continue reading “A* Search Algorithm”

How to Create a Great Team Culture

This morning I woke up and put my cell phone on the tile ledge surrounding the Jacuzzi tub in the bathroom of my bedroom.  The ledge is 22 inches in height. My Samsung Galaxy 8+ had on an “i-Blason Samsung Galaxy S8+ Plus case, [Ares] Full-Body Rugged Clear Bumper Case with Built-in Screen Protector for Samsung Galaxy S8+ Plus 2017 Release (Black)” cover. It fell and hit the floor. The screen cracked on one corner. Not sure what was the purpose of the protector. I will be replacing my cell phone in the near future with a Google Pixel 3a XL. Continue reading “How to Create a Great Team Culture”

Dedication, Drive, Excellence and Passion

For the past few years my wife and I decided to stop wasting time watching TV. It seems like the content of programs is quite weak and depending on the time the show is aired, the number of commercials increases to the point that a half hour program is aired in one hour. We used to make fun of commercials from cable networks that boasted the feature of being able to watch a program while simultaneously recording other three shows. Continue reading “Dedication, Drive, Excellence and Passion”

Test Driven Development – TDD

I was about to continue the design and implementation of the single link queue using C++ and decided to write this blog to illustrate the TDD process that I follow when developing code. The initial architecture and design phases have already passed. I am now facing the design, implementation and testing of some methods that could be used around the implementation of dequeue (remove) the next element in a FIFO (First In First Out) fashion.

Please note that I am using C++ and the Visual Studio 2013 IDE running on a Windows 10 platform. Continue reading “Test Driven Development – TDD”

The Feynman Technique

I would like to open this post by mentioning that it is classified under the Computer Science category. In actuality, the technique applies to any time an individual wishes to learn something new, improve your understanding of a subject / topic or to prepare for an exam.

To give the technique validity, we first need to know who Richard Feynman was. Continue reading “The Feynman Technique”

SOLID

In computer science, SOLID (Single-responsibility principle, Open-closed principle, Liskov substitution principle, Interface-segregation principle and Dependency-inversion principle) is a mnemonic acronym introduced by Michael Feathers for the “first five principles” named by Robert C. Martin in 2003 that stands for five basic principles of object-oriented programming and design. Continue reading “SOLID”

Unit Testing

apple_pieI will provide additional details on this question towards the end of this blog entry. That said; write a piece of code that would perform the following task:

Using a counter from 0 to 50 print the word “Apple” when the counter is divisible by 3. Print the word “Pie” when the counter is divisible by 7. Print the words “Apple Pie” when the counter is divisible by 3 and 7. Continue reading “Unit Testing”

Coding Exercise

cubeEarlier this week I was talking with a colleague about sites that are becoming quite popular with software developers (e.g., HackerRank https://www.hackerrank.com). The format is quite similar between sites. A problem is described. You need to write correct code to solve it.

All have a window in which you can write the necessary code. Most of the constraints for the problem are described. The better sites provide some sample data sets to test your solution. Continue reading “Coding Exercise”

Top Dozen Qualities

software_developmentThis past week I read a couple articles about what hiring managers are looking for. Having co-owned and managed a software development business for over a decade and worked for small, medium and large size companies, encouraged me to write this post. Continue reading “Top Dozen Qualities”