Thursday, April 1, 2021

Newbie to Newbie Algorithms and Data Structures

As a newbie myself, I can see how this topic can be a little daunting or even pointless at times. However, understanding how algorithms and data structures work fundamentally will lay the foundation for all of your future work in the information technology field.


All computers depend on fundamental algorithms and data structure, so better understanding

them helps you better understand the machine. The structure of knowledge and the algorithm

function together since they are interdependent. Before designing the actual algorithm, the

choice of proper data structures is needed.


Only for specific data structures can certain algorithmic designs and data structure techniques

be used, while some for some data structures cannot be used. To construct the most effective

structure, in order to optimize the data structure, you must decide which algorithm is most

appropriate for that particular data structure. With that being said, each data system has its

own advantages and disadvantages. In all cases, it's uncommon to have a data structure that is

better for use than another structure. The inferior data structure would finally be forgotten if

this were the case and replaced by the superior data structure. Queue, stack, tree, connected

lists, etc are some general examples of data structures (Dourish, Et al, 2016). It can decide

which data structure should be used for each case based on the necessary usage of the

software, as well as the choice of the developer, as they are not universal algorithms.


The designer needs to follow a design strategy as the design process includes taking the

requirements and developing solutions to the problems. It should function correctly in all

situations when designing a solution plan. The individuals who use the framework are not

aware of the nature of the software that you have implemented. There is therefore a machine

manual that is a detailed guide to how the design was accomplished. Through following one

of the two decomposition methods, top-down or bottom-up, a large program should be

divided into small modules and submodules (Bianconi, Filippucci & Buffi, 2019). Execution

time or storage requirements are other significant factors on which software may be

measured.


References

Dourish, P. (2016). Algorithms and their others: Algorithmic culture in context. Big Data &

Society, 3(2), 2053951716665128.


De Veaux, R. D., Agarwal, M., Averett, M., Baumer, B. S., Bray, A., Bressoud, T. C., ... &

Kim, A. Y. (2017). Curriculum guidelines for undergraduate programs in data

science. Annual Review of Statistics and Its Application, 4, 15-30.


Bianconi, F., Filippucci, M., & Buffi, A. (2019). Automated design and modeling for mass-

customized housing. A web-based design space catalog for timber structures. Automation in

construction, 103, 13-25.

Tuesday, March 9, 2021

JAVA Installation and OOPS

 


JAVA INSTALLATION

JAVA can be installed by following the guidance on its official website. Be sure to download the appropriate software that matches the operating system that you are currently using. The link below will provide you with all the available java JDK applications. 

https://www.oracle.com/java/technologies/javase-downloads.html

OBJECT-ORIENTED DESIGN

Object-oriented design is used to overcome the drawbacks of the procedural programming approach. Before this approach, all programs and principles were not close to real-world applications.

In this approach, we define a state and its behavior. Taking an example of the real world, mobile phone is a state and they have different behaviors. Customers are only interested in its features, applications, and handy look. They are not interested in the working of its internal software or hardware used inside it. So in mobile phones, customers have access to a few functionalities or behaviors, the rest of others are hidden from them.

In a similar manner, we can use object-oriented programming to achieve this task easily. State i.e. mobile phone is taken as a class which has different objects i.e. mobile phone which a particular customer is using. Now class will have different behaviors i.e. data attributes and methods. Now each instance of this class can only access only a few behaviors from all behaviors defined in the class. 

Different principles of object-oriented programming are as follows:-

ENCAPSULATION :

It is a mechanism of wrapping data attributes and methods in a class. Each class can have some variables known as data attributes and functions known as methods to provide all relevant behaviors for that class.

INHERITANCE:

It is a mechanism where one class can inherit few properties from a class and can change its implementation as per its own requirement. For Example, if a car is a class then it has the functionality that every car will have 4 wheels, will drive, and have sitting space. But each model of the car will have a different appearance, mileage, price, etc. Still, those different models will have all the functionalities of a car. So these all models will inherit all properties from the parent class and will then change if required or will add their own new functionalities or behavior.

ABSTRACTION:

It is a mechanism of showing only essential or relevant details to users and ignoring the explanation or irrelevant details from them. It is used to reduce the complexity of a program. It helps to provide only the behavior of a particular state and separates its explanation so that code is understandable and is less complex.

In java, Abstract Classes are used to implement this principle. In abstract classes, it can have abstract methods. Abstract methods only have the function declaration and definition is provided by child classes i.e. which has inherited this class. So its explanation is provided in other classes and the abstract class will only have names of all relevant behaviors required.

DATA HIDING:-

It means to hide data from some part of a component. It is used to achieve encapsulation i.e. private data is not accessible outside class or objects of that class. It is used to achieve the functionality that few behaviors are hidden and few are only accessible to users.

POLYMORPHISM:-

It is the mechanism to process the same functionality or task in different ways as per its usage. For Example:- sum method is used to add 2 numbers and also to add 3 numbers. So the name of functionality is the same i.e. some but is performing different operations.

Saturday, February 27, 2021

OS Theory Concept Map CPT 304

 1) Features of the contemporary OS-

Object-oriented design, systematic multi-processing, microkernel architecture. The OS provides an interface between user and machine. It enables the coordination of hardware components and provides an environment for software applications to function. The OS also displays a structure for data management and monitors the health of system hardware.

                                                        


2) How OS enables the process to share and exchange information-

Process management involves various tasks like creation, scheduling, termination of processes, and a deadlock. The process is a program that is under execution, which is an important part of modern-day operating systems. The OS must allocate resources that enable processes to share and exchange information. It also protects the resources of each process from other methods and allows synchronization among processes.



3) How main memory and virtual memory can solve the issue-

Main memory has its limitations making running programs a little challenging depending on the workload demand. If a user requests to run too many processes, the memory may not be able to execute each process in a hard slot that each process requires. Main memory also is more difficult to manage to cause 'holes' in memory and fragmentation. Virtual memory is controlled by the OS and creates an 'unlimited' sense of memory from the users' point of view. Virtual memory manages what slots in main memory processes occupy and what processes have to wait in a queue.  

                                                      

4)Explain how files, mass storage, and I/O are handled in a modern computer system.

Mass storage refers to various techniques and devices for storing large amounts of data.

Common types of mass storage include the following:

  • solid-state drives (SSD)
  • hard drives
  • external hard drives
  • optical drives
  • tape drives
  • RAID storage
  • USB storage
  • flash memory cards

Today, mass storage is measured in gigabytes (1,024 megabytes) and terabytes(1,024 gigabytes). Older mass storage technology, such as floppy drives, are measured in kilobytes (1,024 bytes), megabytes (1,024 kilobytes),

Mass storage is sometimes called auxiliary storage.

  • Management of I/O devices is a very important part of the operating system - so important and so varied that entire I/O subsystems are devoted to its operation. ( Consider the range of devices on a modern computer, from mice, keyboards, disk drives, display adapters, USB devices, network connections, audio I/O, printers, special devices for the handicapped, and many special-purpose peripherals. )
  • Operating System takes help from device drivers to handle all I/O devices.
  • A computer must have a way of detecting the arrival of any type of input. There are two ways that this can happen, known as polling and interrupts. Both of these techniques allow the processor to deal with events that can happen at any time and that are not related to the process it is currently running.
  • An alternative scheme for dealing with I/O is the interrupt-driven method. An interrupt is a signal to the microprocessor from a device that requires attention.


6.Outline the mechanisms necessary to control the access of programs or users to the resources defined by a computer system.

Considering a computer system having multiple users and concurrent execution of multiple processes, the various processes must be protected from each other's activities.

Protection refers to a mechanism or a way to control the access of programs, processes, or users to the resources defined by a computer system. Following are the major activities of an operating system with respect to protection −

  • The OS ensures that all access to system resources is controlled.
  • The OS ensures that external I/O devices are protected from invalid access attempts.
  • The OS provides authentication features for each user by means of passwords.

Each of these theories is important to understand and expand on in the field of Information Technology because every computer uses some sort of operating system at the kernel level. Understanding the features of an OS allows for a deeper understanding of the solutions to daily fundamental errors. Grasping the concept of how memory is managed will assist with nearly every field in IT there is. These basics are the key to growing in this field. 


Monday, November 2, 2020

How Secure Is Your Network?

 The industry I decided to discuss is the financial industry. The financial industry includes sectors related to the IRS, credit unions, banks, individual retirement, accounting, and payroll. In this industry, every one of these organizations relies on information retention and gathering for operations. A credit union must gather new member information for prospective members, run them through a customer identification process to determine if they can do business with them according to federal laws. They need to then assign account information to that person by creating a profile that will retain their personal information, current monetary balances, history of transactions, etc. Federal law also requires these financial institutions to maintain records of this information to aid in the prevention of money laundering and many other crimes. As millions of people rely on banks and credit unions to keep their assets secure, the roles of information technology increase tremendously. Computers maintain this information more efficiently than humans and they have far fewer errors than humans. If people were to continue to process the high volume of transactions by hand and retain only a paper trail, billions of dollars would be lost in the process. 

With my current experience in financial institutions, I have found that being technically literal is a requirement in the constantly changing industry. I find my learning and relearning several OS and software required for my daily work. I have to troubleshoot a few programs a week or find workarounds for applications as the standard app is going to constant updates. The financial industry would not function properly in these times without the use of computers.  

More Computers At Work!


Computers are seen in every establishment. It is very common that your job can't be completed if your company does issue you a computer. Many industries come into mind when I think about the important technology plays now, but the industry I will focus on is the financial industry. The financial industry includes sectors related to the IRS, credit unions, banks, individual retirement, accounting, and payroll. In this industry, every one of these organizations relies on information retention and gathering for operations. A credit union must gather new member information for prospective members, run them through a customer identification process to determine if they can do business with them according to federal laws. They need to then assign account information to that person by creating a profile that will retain their personal information, current monetary balances, history of transactions, etc. Federal law also requires these financial institutions to maintain records of this information to aid in the prevention of money laundering and many other crimes. As millions of people rely on banks and credit unions to keep their assets secure, the roles of information technology increase tremendously. Computers maintain this information more efficiently than humans and they have far fewer errors than humans. If people were to continue to process the high volume of transactions by hand and retain only a paper trail, billions of dollars would be lost in the process. 

With my current experience in financial institutions, I have found that being technically literal is a requirement in the constantly changing industry. I find my learning and relearning several OS and software required for my daily work. I have to troubleshoot a few programs a week or find workarounds for applications as the standard app is going to constant updates. The financial industry would not function properly in these times without the use of computers.  

Pinging and Tracing. Why are they helpful?

 When trying to access a website, your computer sends packets through routers that eventually gets to your destination site. The destination site then returns the site information you requested back to you through routers. I’ve never pinged or ran a trace command before, so this activity was enlightening. I use a VPN on my devices to have access to streaming services back home, so I have my location set to San Francisco. It is also good to note that the ISP limited the internet speeds on base to 100mb download on base, where I live, versus off base where it is tremendously faster. It took about 143ms to send and receive my packets from google. I decided to ping Canada.ca and gouvernement.fr, respectively, and Frances’ website took 284ms, which Canadas’ timed out. Since gouvernement.fr requires more routers, I figured that it would time considerably while Canada.ca timed out. I did attempt to resolve the issue of why Canada.ca timed out, and I found that I needed to enter the third domain of www to get the website to respond. After doing so, it took that site 173ms to respond to my trace and ping.

Each of these commands is great for testing the speed of your connection and determining issues with your connection. The ping command can help you determine if the destination host is active, which is essential in determining if you have problems with your router or ISP or if the host destination has too much traffic. The tracers/traceroute command also helps with choosing if you have hardware glitches that simple troubleshooting cannot determine.

Ping Testing

Screenshot 2020-10-17 205913.png

Screenshot 2020-10-17 205949 2.png

Tracerts

Google tracert.png

 

france tracert.png

Canada.ca With Third Domain 

Canada .png

Comparison of Daily Used Database Applications

 The main word processing software that I use is Microsoft Office. I have been using this software for many years of my life and I would consider myself experienced with its’ word processor, spreadsheet, and presentation. All the applications have the same layout regarding formatting text. The word processor focuses more on creating and storing formatted text, so it was more useful for me to create my text. Word processor has more ways to format text giving the writer more control on the textual design of their documents such as creating a technical paper. The disadvantage of the word processor is it is difficult to create tables or illustrations to further elaborate on the text in the document. Microsoft spreadsheet Excel is better suited for creating tables from data or simply creating tables to help organize statistics in a document. The assignment that requested that I use a spreadsheet to create a data table and pie chart was effortless due to the formatting capabilities of Excel. I could enter, sorting, calculating the information provided into spreadsheets cells. Spreadsheets would also be best for creating personal or business budgets since data can be controlled easier. The disadvantage of any spreadsheet is that it is not simple to text or illustration documents such as essays or presentations in excel. Using word for the text documents first then transferring it to excel is the best option. Presentations are best created in PowerPoint, Microsoft Office, where text can be formatted into illustrations. Each bullet that I created on the word document made up it’s on slides where I changed the animation of the text, transitions of the slides, design of the slide. Presentations applications can also be best for creating a presentation on an idea pitch to help attract and keep the attention of their audience. The disadvantage of presentation applications is their inability to handle the formatting of data or large text. Both data and text can be created in the presentation application, but the design doesn’t fit well.

Newbie to Newbie Algorithms and Data Structures

As a newbie myself, I can see how this topic can be a little daunting or even pointless at times. However, understanding how algorithms and ...