Blogs
- Artificial Intelligence
1. How would you define Artificial Intelligence (AI)?
Artificial intelligence is a field of science where we buiild computer that can reason and learn. It encompasses many different disciplines, including computer science, data analytics and statistics, hardware and software engineering. AI is based on machine and deep learning, etc. (Google)
2. AI has existed for nearly 70 years. Why is it experiencing an impressive growth right now?
AI is more popular because it is now more publicly available due to the proliferation of the cloud, the capability to store more data effectively and increasing computing powers.
3. Can you identify three domains or classes of problems where current AI models still face significant challenges?
Common sense and reasoning:
One of the biggest hurdle of AI we are facing to day would be making AI have more reasoning instead of computing the next word it will use.
Data leak:
Because AI is trained upon data that is available on the internet, there are possibilities of data leak. And this has happened to Samsung where their proprietary source was leaked due to their developer using it to fix the code.
Environment:
Training AI models require immense computing which in turn creates so much carbon emission.
4. Can you name at least three application sectors where robots are widely used, and explain why they are employed in those sectors?
Robots are used mainly in production of things where every move is repetitive. Thus it is primarily used in three sectors: manufacturing (Automobile manufacturing), warehouse (package sorting) and agriculture (watering).
5. Do you believe that the convergence of Artificial General Intelligence (AGI) and fully autonomous robotics is imminent and could potentially have a major impact on the world?
I believe that while AGI and autonomous robots could potentially impact the world, one of it’s major drawbacks would be ethical considerations regarding conscience and rights of the robots. But advantages of having AGI would outweight the disadvantages as it helps us be more productive
References:
- Google, Artificial Intelligence
- https://cloud.google.com/learn/what-is-artificial-intelligence
Read More:
- Software Engineering
1. What was the "software crisis" of the 1960s, and how did it lead to the creation of software engineering? What problems did this new discipline aim to solve?
Software crisis is a term used in the early days of computing science for the difficulty of writing useful and efficient computer programs in the required time. The software crisis was due to the rapid increases in computer power and the complexity of the problems that could be tackled. With the increase in the complexity of the software, many software problems arose because existing methods were inadequate. (Wikipedia)
In the wake of the Software crisis, Software Engineering emerged as a new engineering discipline concerned with all aspects of software production that encompassed the theories, concepts, principles, techniques, standards, and tools that could be used for developing high-quality and reliable professional software.
2. What are Agile methods and the Waterfall model in software development, and how are they different?
Agile methodology is a project management framework that breaks projects down into several dynamic phases, commonly known as sprints. The Agile framework is an iterative methodology. After every sprint, teams reflect and look back to see if there was anything that could be improved so they can adjust their strategy for the next sprint (Laoyan, S. 2024).
Waterfall project management is a sequential project management methodology that's divided into distinct phases. Each phase begins only after the previous phase is completed. This article explains the stages of the waterfall methodology and how it can help your team achieve their goals (Laoyan, S. 2024).
Difference:
Agile: continuous improvement based on changing customer needs
Waterfall: linear development with no changing requirement
3. Why does Netflix intentionally shut down its servers randomly, and how does this help their software?
Netflix’s tool called Chaos Monkey, goes around Netflix’s system and distrupts it. By doing it in a controlled environment, it help s their software to be more robust because it avoids disasters that could happen.
4. What is open-source software, and why do big companies like Google, Microsoft, and Amazon contribute to it?
Open-source software is a software with a source code that everyone can inspect it.
Big companies contribute to open source because it lowers their cost as open source software is built upon community.
5. Why can maintaining software sometimes be more costly than building it initially, and how does technical debt contribute to these higher maintenance costs?
One of the main reasons on why maintaining software becomes more costly than building is that the more people use the software the fee gets greater due to many services becoming pay per use.
Also, it becomes more expensive due to code becoming more and more complex as the time goes, due to continuous development.
References:
- The 1960s Software Crisis
- https://piusmwilson.medium.com/the-1960s-software-crisis-27d15f6356ef
- Laoyan, S. 2024, Agile Methodology
- https://asana.com/resources/agile-methodology
- Laoyan, S. 2024, Guide to waterfall methodology: Free template and examples
- https://asana.com/resources/waterfall-project-management-methodology
- Theory of computation
In theoretical computer science and mathematics, the theory of computation is the branch that deals with what problems can be solved on a model of computation, using an algorithm, how efficiently they can be solved or to what degree (e.g., approximate solutions versus precise ones) (Decision Problem, n.d.).
1. What is a deicison problem?
Decision problem is a computational problem that can be posed as a yes–no question of the input values. (Decision Problem, n.d.)
2. What does it mean for a decision problem to be decidable?
A decision problem which can be solved by an algorithm is called decidable. Meaning if it could result in Yes/No or True/False it is decidable (Decision Problem, n.d.).
3. What is the class P? What is the class NP?
NP is the set of decision problems for which the problem instances, where the answer is "yes", have proofs verifiable in polynomial time by a deterministic Turing machine, or alternatively the set of problems that can be solved in polynomial time by a nondeterministic Turing machine. (NP complexity, n.d.)
Decision problem P is said to be complete for a set of decision problems S if P is a member of S and every problem in S can be reduced to P. Complete decision problems are used in computational complexity theory to characterize complexity classes of decision problems. (Decision Problem, n.d.)
4. What is the intuitive meaning of the “P versus NP” question?
The P versus NP problem is a major unsolved problem in theoretical computer science. Informally, it asks whether every problem whose solution can be quickly verified can also be quickly solved.
An answer to the P versus NP question would determine whether problems that can be verified in polynomial time can also be solved in polynomial time. If P ≠ NP, which is widely believed, it would mean that there are problems in NP that are harder to compute than to verify: they could not be solved in polynomial time, but the answer could be verified in polynomial time. (P versus NP Problem, n.d.)
5. If you resolve the P versus NP question, how much richer will you be?
It is one of the seven Millennium Prize Problems selected by the Clay Mathematics Institute, each of which carries a US$1,000,000 prize for the first correct solution. (P versus NP Problem, n.d.)
References:
- Wikipedia. Decision Problem. (n.d.).
- https://en.wikipedia.org/wiki/Decision_problem#:~:text=In%20computability%20theory%20and%20computational,question%20of%20the%20input%20values
- Wikipedia. NP (complexity). (n.d.).
- https://en.wikipedia.org/wiki/NP_(complexity)
- Wikipedia. P versus NP problem. (n.d.).
- https://en.wikipedia.org/wiki/P_versus_NP_problem
- Cloud Computing
1. What is cloud computing?
Simply put, cloud computing is the delivery of computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the internet (“the cloud”) to offer faster innovation, flexible resources, and economies of scale. You typically pay only for cloud services you use, helping you lower your operating costs, run your infrastructure more efficiently, and scale as your business needs change (Microsoft, n.d.).
2. Is cloud computing a new technology per se? In other words, what are the unique technology features of cloud computing, if any?
Cloud computing is a big shift from the traditional way businesses think about IT resources. Here are seven common reasons organizations are turning to cloud computing services: Cost, Speed, Global scale, Productivity, Performance, Reliability, Security (Microsoft, n.d.).
3. What are the three major cloud service models?
Infrastructure as a service (IaaS), platform as a service (Paas), and software as a service (SaaS). They are sometimes called the cloud computing “stack” because they build on top of one another. Knowing what they are and how they’re different makes it easier to accomplish your business goals (Microsoft, n.d.).
4. Name at least 3 real-world domains where the application of cloud computing was (or can be) very enabling and effective.
Some of the real-world applications of cloud computing.
Online Data Storage: Cloud computing allows storing data like files, images, audios, and videos, etc on the cloud storage. The organization need not set physical storage systems to store a huge volume of business data which costs so high nowadays. As they are growing technologically, data generation is also growing with respect to time, and storing that becoming problem. In that situation, Cloud storage is providing this service to store and access data any time as per requirement.
Backup and Recovery: Cloud vendors provide security from their side by storing safe to the data as well as providing a backup facility to the data. They offer various recovery application for retrieving the lost data. In the traditional way backup of data is a very complex problem and also it is very difficult sometimes impossible to recover the lost data. But cloud computing has made backup and recovery applications very easy where there is no fear of running out of backup media or loss of data.
Bigdata Analysis: We know the volume of big data is so high where storing that in traditional data management system for an organization is impossible. But cloud computing has resolved that problem by allowing the organizations to store their large volume of data in cloud storage without worrying about physical storage. Next comes analyzing the raw data and finding out insights or useful information from it is a big challenge as it requires high-quality tools for data analytics. Cloud computing provides the biggest facility to organizations in terms of storing and analyzing big data.(Geeks For Geeks, 2022)
5. What is the economic/business model of cloud computing?
Cloud computing allows businesses to scale their operations up or down as needed, reducing the need for expensive hardware upgrades or investments in new equipment. Cloud computing also eliminates the need for on-site maintenance and support, as all software and hardware is managed by the cloud provider. This can lead to significant cost savings for businesses, as they no longer need to hire dedicated IT staff or invest in expensive software licenses (Asia Business Outlook Team, n.d.).
References:
- Microsoft. What is Cloud Computing. (n.d.).
- https://azure.microsoft.com/en-us/resources/cloud-computing-dictionary/what-is-cloud-computing#:~:text=Simply%20put%2C%20cloud%20computing%20is,resources%2C%20and%20economies%20of%20scale
- Geeks For Geeks. (2022, December 9). Real World Applications of Cloud Computing.
- https://www.geeksforgeeks.org/real-world-applications-of-cloud-computing/
- Asia Business Outlook Team. (n.d.). How Cloud Computing Can Be A Cost-Effective Solution for Businesses
- https://www.asiabusinessoutlook.com/perspective/how-cloud-computing-can-be-a-costeffective-solution-for-businesses-nwid-3032.html#:~:text=Cloud%20computing%20also%20eliminates%20the,invest%20in%20expensive%20software%20licenses
- Programming Languages
1. Why did we move from punch cards to programming languages ? What does that tell you about the purpose of programming languages?
At the start when the concept called programming started, our codes were saved on punched cards which is one of the earliest storage devices preceding floppy disks, magnetic tape and the hard drives. (IBM, The IBM Punched Card, para. 2). So why did we create programming languages? We created programming languages to communicate instructions to a computer. (Wikipedia, History of Programming Languages, para. 8).
2. There are hundreds of different programming languages out there. Why do you think we need so many?
Javascript, Python, C++, C#, C and others. There are many programming languages because they each have different purposes. Some are built to solve other programming language’s problems.
3. What are some drawbacks of a programming language you use? How would you like it to be different? Think of specific examples.
I mostly use Javascript as my everyday programming language. With its latest updates ES15, I believe most of its drawbacks are fixed as I don’t have any issues with it.
3. If you were going to create a new programming language, how would you start? What do you need to define?
I believe that finding an equality between performance and usability would be the best way to create a new programming language. Because, I believe that even though the computer programmes are getting more usable it gets slower over time. If I were to make a new programming language, I won’t sacrifice it’s speed over performance.
References:
- IBM. The IBM Punched Card
- https://www.ibm.com/history/punched-card#:~:text=The%20IBM%20card%20was%20replaced,cards%20needed%20to%20process%20data
- Wikipedia, History of Programming Languages
- https://en.wikipedia.org/wiki/History_of_programming_languages
Read More:
- Two major computer security incidents that have happened in Qatar
1. Qatar National Bank Data Breach in 2016
The Turkish far-right group known as Bozkurt Hackers, according to Kaspersky Lab, has hacked Qatar National Bank’s database server on April 25, 2016. Resulting 1.4GB of customer database being leaked online (Jennifer, 2016).
According to Security researcher Omar Benbouazza the bank was running known vulnerable software such as Servlet 2.4, JSP and Tomcat 4.2.3. And he said that the attacker used one of the most common attacks, a SQL injection to the backend ORACLE database server, using the SQLMap tool. Thus showing that QNB had a very vulnerable backend and protection to it (Kewin, 2016).
2. Coronavirus Contact Tracing App Data Breach
Coronavirus Tracing app that pushed all the people living in Qatar had a major security flaw as it was found by Amnesty International.
Even though we don’t know if people were impacted by such a flaw as it was luckily found by Amnesty International, it would count as a one of the major incidents.
Having more than a million users downloading an app and filling out their information such as their name, qatar Id and other sensitive information, it also had a real time location tracking - meaning if anyone else had the access they could see the location of everyone with their personal information (AFP, 2020).
References:
- Jennifer, A. (2016, April 28). Hackers target Qatar National Bank
- https://www.meed.com/hackers-target-qatar-national-bank/
- Kewin, T. (2016, May 4). Qatar National Bank Hackers Threaten Data Leak From Second Bank
- https://www.securityweek.com/qatar-national-bank-hackers-could-leak-data-second-bank/
- AFP (2020, May 7). Qatar Tracing App Flaw Exposed 1 Mn Users' Data: Amnesty
- https://www.securityweek.com/qatar-tracing-app-flaw-exposed-1-mn-users-data-amnesty/
- Randy Pausch Lecture: Time Management
Randy Pausch was a Professor of Computer Science at Carnegie Mellon University. Known for having had pancreatic cancer he became popular through his lectures.
Watching his lecture about Time Management, I was inspired by him and learned a lot about time management.
Five points he said that I liked in his talk:
- You don’t find time for important things, you make it. And you make it, by electing not to do something else.
- Find your creative time, and defend it ruthlessly. Spent it alone, maybe at home if you have to.
- Find your dead time and do stuff that you don’t need to be at your best.
- Think about best possible outcome when deciding between effective or efficient.
- Time is all we have, and you may find one day, you have less than you think
References:
- Pausch, R. (2008, February 7). Time management
- https://youtu.be/oTugjssqOT0