Computer Science

Greedy Algorithm and Dynamic Programming

Greedy Algorithm and Dynamic Programming

In an algorithm design there is no one 'silver bullet' that is a cure for all computation problems. Different problems require the use of different kinds of techniques. A good programmer uses all these techniques based on the type of problem. In this blog post, I am going to cover 2 fundamental algorithm design principles: greedy algorithms and dynamic programming

Divide and Conquer Algorithms

Divide and Conquer Algorithms

A very popular algorithmic paradigm, a typical Divide and Conquer algorithm solves a problem using following three steps:

  • Divide: Break the given problem into subproblems of same type.

  • Conquer: Recursively solve these subproblems

  • Combine: Appropriately combine the answers

The 5 Fundamental Running Times in Computer Science

The 5 Fundamental Running Times in Computer Science

As you see, you should make a habit of thinking about the time complexity of algorithms as you design them. Asymptotic analysis is a powerful tool, but use it wisely. Sometimes optimizing runtime may negatively impact readability or coding time. Whether you like it or not, an effective engineer knows how to strike the right balance between runtime, space, implementation time, maintainability, and readability.

The 5 Deep Learning Frameworks Every Serious Machine Learner Should Be Familiar With

The 5 Deep Learning Frameworks Every Serious Machine Learner Should Be Familiar With

In this post, I want to introduce to you the 5 frameworks that are the workhorses of deep learning development. They make it easier for data scientists and engineers to build deep learning solutions for complex problems and perform tasks of greater sophistication.

12 Useful Things to Know about Machine Learning

12 Useful Things to Know about Machine Learning

Machine learning algorithms can figure out how to perform important tasks by generalizing from examples. This is often feasible and cost-effective where manual programming is not. As more data becomes available, more ambitious problems can be tackled. As a result, machine learning is widely used in computer sincere and other fields. However, developing successful machine learning applications requires a substantial amount of “black art” that is hard to find in textbooks.

A Tour of The Top 10 Algorithms for Machine Learning Newbies

A Tour of The Top 10 Algorithms for Machine Learning Newbies

For machine learning newbies who are eager to understand the basics of machine learning, here is a quick tour of the top 10 machine learning algorithms used by data scientists that I compiled.

The 10 Operating System Concepts Software Developers Need to Remember

The 10 Operating System Concepts Software Developers Need to Remember

Do you speak binary? Can you comprehend machine code? If I gave you a sheet full of 1s and 0s could you tell me what it means/does? Your operating system functions as that translator in your PC. It converts those 1s and 0s, yes/no, on/off values into a readable language that you will understand.

If curious, check out this long post I wrote on the 10 most important concepts about Operating System. You'll understand how your computer works in a much more detailed way.

The 4-Layer Internet Model Network Engineers Need to Know

The 4-Layer Internet Model Network Engineers Need to Know

Network engineers are responsible for implementing, maintaining, supporting, developing and, in some cases, designing communication networks within an organization or between organizations. Their goal is to ensure the integrity of high availability network infrastructure to provide maximum performance for their users. Having a fundamental understanding of concepts such as TCP/IP is absolutely required if you want to become one.

The 10 Algorithms Machine Learning Engineers Need to Know

The 10 Algorithms Machine Learning Engineers Need to Know

It is no doubt that the sub-field of machine learning / artificial intelligence has increasingly gained more popularity in the past couple of years. As Big Data is the hottest trend in the tech industry at the moment, machine learning is incredibly powerful to make predictions or calculated suggestions based on large amounts of data.