Skip to main content

Posts

Difference between abstract class and interface in OOP

Source: Amit Sethi In Interface: > All variables must be public static final. > No constructors. An interface can not be instantiated using the new operator.   > All methods must be public abstract .  

Asynchronous vs Synchronous execution, what does it really mean?

Image source: youtube When you execute something synchronously, you wait for it to finish before moving on to another task. When you execute something asynchronously, you can move on to another task before it finishes. In Synchronous program execution, your program is executed line by line, one line at a time. Each time a function is called, program execution waits until that function returns before continuing to the next line of code. In solving many engineering problems, the software is designed to split up the overall problem into multiple individual tasks and then execute them asynchronously. For example, In computing, sorting a list is an example. The quicksort routine, for example, splits the list into two lists and sorts each of them by calling itself recursively. Real life example: SYNCHRONOUS You are in a queue to get a movie ticket. You cannot get one until everybody in front of you gets one, and the same applies to the people queued behind you. ASYNCHRONOUS ...

OOP concepts in Java

What is the Class?  The class is a group of similar entities. It is extensible program code for creating objects and to define data types as well as methods. What is Object in OOP? Object refers to a particular instance of a class whereas objects can be a combination of variables, functions and data structures. What are the 4 principles in OOP? Encapsulation, Data Abstraction, Polymorphism and Inheritance. What is Inheritance? Deriving a new class from an existing class and forming them into a hierarchy of classes. What is Encapsulation?   It is used to hiding the implementation details. What is Constructor overloadin?  It is a feature that allows a class to have more than one constructor having different argument lists. What is the difference between method overloading vs method overriding? Why do we need to use Method Overloading? Suppose that you have a class that can use calligraphy to draw various types of data (strings, in...

Interview Questions for Data Scientist Position

What is Machine Learning?  Machine learning is the practice of using algorithms to analyze data, learn from that data and make a determination or prediction about new data. What is Deep Learning? Deep learning (DL) is a sub field of Machine Learning (ML) that uses algorithms inspired by the structure and function of the human brain's neural network called artificial neural network. As a sub field of ML, DL also uses algorithms to analyze data, learn from that data and make a determination or prediction about new data. What is Supervised Learning and Unsupervised Learning?  That learning from data mentioned earlier can happen in two ways: Supervised and Unsupervised. Supervised: Model learns and makes inferences from the data that has been already labeled. Unsupervised: Model learns and makes inferences from unlabeled data. What is Artificial Neural Network (ANN)? ANN are computing systems that are inspired by the human brain's neural network. These networ...

Fix Error: mysqlclient installation problem with Python

This problem usually happens when you try to install mysqlclient using Python 3.7 If you're using python 3.7, there is no way for fixing it. The only way to fix it is to downgrade your python version. Python 3.6 or lower. After re-configuring your python version, run this two commands: $ pip install wheel $ pip install --only-binary :all: mysqlclient

DFS Performance Measurement

Completeness DFS is not complete, to convince yourself consider that our search start expanding the left subtree of the root for so long path (maybe infinite) when different choice near the root could lead to a solution, now suppose that the left subtree of the root has no solution, and it is unbounded, then the search will continue going deep infinitely, in this case , we say that DFS is not complete. Optimality  Consider the scenario that there is more than one goal node, and our search decided to first expand the left subtree of the root where there is a solution at a very deep level of this left subtree , in the same time the right subtree of the root has a solution near the root, here comes the non-optimality of DFS that it is not guaranteed that the first goal to find is the optimal one, so we conclude that DFS is not optimal. Time Complexity Consider a state space that is identical to that of BFS, with branching factor b, and we start the search fro...

Concurrency, Thread

Definition: Concurrency is when two tasks  overlap  in execution. In programming, these situations are encountered: When two processes are assigned to different cores on a machine by the kernel, and both cores execute the process instructions at the same time. When more connections arrive before earlier connections are finished, and need to be handled immediately. More generally, it’s when we need to handle multiple tasks at about the same time. That’s it. That’s all concurrency is.  Parallel  execution is when two tasks  start  at the same time, making it a special case of concurrent execution. 4 levels of  Concurrency: -- Machine Instruction level -- HLL(High-level language) statement level. -- Unit level -- Program level.  There are two types of Concurrency: 1. Physical Concurrency 2. Logical Concurrency Physical Concurrency :   Several program units from the same program literally execute simultaneously on dif...