Wednesday, January 31, 2018

Go Programming Language

After C and Rust, it's time to talk about Go programming language.



What is Go Programming Language

Go programming language is an open source programming language made and developed by Google. This language is designed to build simple, fast and reliable software.

Go is very different than many other other programming language. This language is a statically-typed language derived for C, adding garbage collection, type safety, and a large standard library.

Go was initially created by Robert Griesemer, Rob Pike, and Ken Thompson in 2007. It was release in November 2009.

Why using Go?

In Go, compile times are fast. The best thing in Go is that it doesn't suffer from continuous language changes. Go was initially born from frustrating languages in the environment, so Go is fabulous with its simplicity. In addition, Go support concurrency; in other word it enables any programmer to use the CPU horsepower efficiently. Even if your processor has just 1 core, concurrency's design enables you to use that one core efficiently.

Another feature I really like about Go is interfaces. Interfaces enable loosely coupled or decoupled components. Meaning that a part of your code can just rely on an interface type without caring about who implements the interface. Briefly, Go best works with web servers, caches, and distributed system.

The last feature I want to talk about in Go is its tooling. Gofmt is a tool used to format and indent the code. Go run is another tool used to compile and run the code at the same time. Go get is used by the programmer to download any library for GitHub and copies the path of the library so it can be easily imported inside the project. An important tool is Godoc used to parse the go source code into HTML or plain text format. There are more tools you can check it  here https://golang.org/cmd/go/

Disadvantages of Go

Go still has low level features such as pointer arithmetic. Errors in go aren't that easy to handle and to learn. Additionally, Go doesn't support function overloading. Furthermore, the packages distributed with Go are pretty useful but you'll miss UI toolkit inside.


Future of Go

Go has a really bright future, especially with its popularity. Go is used in all the companies around the world, and is crazy hot in China. With its support of concurrency, the high possibility of using go to develop with mobile, the use of maps and slices, the easy way to learn and master this language, and the supersonic speeds, the number of go's users will certainly increase. If you have some time to learn go in one video please and the video below to your list.



Keywords in C

Definition

In each language, there is a bunch of words that can't be used by the user. These words are reserved words and are not available for redefinition or overloading. Now, here is a list of the reserved words in C.



As you can see, there are 32 different keywords in C programming language. But what are they used to?

Keywords Description

auto: this keyword isn't that important; variables declared within the functions are automatic by default. In this case, they are reserved each time the function is called.


break: this keyword is usually used to jump out of any kind of loops (for, while, do-while,switch).

case: switch, case and default come with each other. switch command is used to take the value of the variable inside of it, and enter the case depending on it. For example:
switch (c){
   case 1: ... break;
   case 2: ... break;
   default:...
} In this example if the input value of c is 1 the cursor will directly enter case 1, perform the tasks and go out of the switch statement cause by break keyword. If the value was 2, the cursor go inside case 2 and then breaks out. Now in the last step, if the input value doesn't match any of the cases the cursor will step inside default, execute what inside and go out of switch.

char, int, floatdouble are data types used for the same order: character type variable, integer variable, decimal number with single precision, and decimal number with double precision floating number.

const: this keyword is used to declare a constant variable (a variable where the value don't change).

continue: it's used to skip certain statement inside the loop.

for, while, do-while are different types of loops. When I say loop, it means that they are used to do the same process many times.

if, else: are both used for conditions: if the condition meets the requirement inside () after if the cursor enters it. If not, the cursor will directly move inside the else block.

enum: is used to declare many variable with the same type.

extern: is used to indicate that a variable or function are defined elsewhere, usually in a separate source code module.

goto: this keyword is used to transfer the cursor from a place to another.

short, long, signed, unsigned: are types modifier to alter the meaning of a base type to a new type.


register: this will store the variable directly in a CPU register.

return: this keyword is used to go out of a function, especially in some special cases where you don't need to continue the function.

sizeof: it gives the value of a variable in bytes.

static: this will help the variable's value to be changed even outside the scope of a function.

struct: this keyword is used to create a new data type that contains different types of data. The variable name after the struct will become the new data type where the attributes inside can be easily accessed using point.

typedef: is used to explicitly associate a type with an identifier. 

union: work the same as struct but all the types inside of it will occupy the same location in memory.

volatile: it's used for the variables that can be changed anytime. It's the opposite of const. In this case, the compiler will always read from memory.

If will try to cover as much as possible all the keywords in C programs in my next blogs so it becomes easier to understand.

You can also find some programs examples inside this book: http://amzn.to/2Fu2Bvc 



Tuesday, January 30, 2018

Popular Major: Business Management & Administration

Whatever your career is, you were a student one day don't forget that. Before choosing the major, we did our best to find the highest rated job availability when we finished our education. One of the most popular major, the business administration and management.


Why choosing this major?

If you're planning to be a good manager or supervisor; I think this will be the best choice. With this major, you'll be trained to build your own company from the early beginning. In addition, you'll understand each product, its popularity, and where to target it.You'll also learn to design your own product in case you want to sell it in the near future. 
After this, moving to the production process is very important: estimating the number of products you should produce, how to work with people, and finally making the right decisions for company development.
This will include organizing the right people by giving them specific tasks, managing business assets, and making decisions that drive the business to meet its goals in the fastest way.
Finally, to be a successful business administrator you must make sure to implement internal organization inside your business so it can adapt to any external change using one of the following schools: Fayolism OR Taylorism .

Schools of business adminitration

Fayolism and Taylorism are two schools of Business administration. Each school has its own way of management; Fayolism includes planning at first in order to schedule the actions of the company in the future. Once you put a plan, you should organize your resources and make sure that people are available to give them specific tasks. The third point in this school is commanding, where the manager should lead his employees to fulfill the plans. Of course such a manager has a high capability in coordination while working together to reach the goals. And lastly, the organization reviews its performance.


Taylorism main idea was to break each action, job and task onto small and simple segments that can be easily analyzed and taught. This will minimize skill requirements and job learning time without forgetting that it produces maximum efficiency.

Median Annual Salary

Referring to https://www.allbusinessschools.com/business-administration/salary/ here is a list of the median salaries of popular career in business administration:


Monday, January 29, 2018

Need a new Laptop?

Are you searching for a good laptop with high performance and with a good price? You think that with a low cost laptop you can't do all the tasks you want? Now check this out !!

Acer Aspire E 15 E5-575-33BM

Acer Aspire would be the perfect solution for all of your problems. With 350$ you can get a great deal. Acer Aspire has an Intel Core i3-7100U 7th generation. In addition, it has 4GB DDR4, 1TB HDD, Intel HD Graphics 620 with windows 10 Inside. With a processing CPU speed of 2.4 GHZ and FHD screen, I think you couldn't find a better product in any place. I should also mention that to expand the RAM or the HDD, you can easily get access by taking out just three screws. So, with just few hundreds of dollars, you can upgrade your RAM and install your SSD easily, especially that there are slots for it. 

If you like to know more about the computer components:
https://philippebalech.blogspot.com/2018/01/computer-science.html

Conclusion

Finding that budget laptop with a good performance, browsing, gaming and other daily things isn't that hard. With 2,884 customers reviews, I think you should not hesitate in buying it.


Sunday, January 28, 2018

Variables in C/C++

In the last blog about C language, you were shown how to output Hello World !! on your screen. For this blog, I'm going to talk about the variables in C.

Variable Definition

A variable is a container to store data inside. Variable are divided into two categories: basic data type, and derived data type. So how it works? A variable is a name you give to put inside the RAM; the place it takes inside the volatile memory depends on the data types that I will talk about. For each data type, a range of values can be stored within the data type. For example char (a data type) has a value range from -128 to 127.

How to write the name of the variable

The name of the variable can be composed of letter, digits, and the underscore "_". The variable must have the following order: it can't start with a number, it should not contain a space.
The variable must begin either with either a character or an underscore. Uppercase and lowercase letters are distinct because C is case-sensitive. Let's take examples on variables in C: a, A, first_variable, a1b1, etc. But it can't be 1a or a b (a space b).

Variable types

As I said each data type has a range of values. Let's see what are the data types and the values for each type.


Difference between data types

char is used for a single character.
int are whole numbers that can have both positive and negative values without decimal i.e. 0, -5, 10.
unsigned int is only used for positive numbers.
float is used for numbers with a fractional part (decimal numbers).
double is a double precision floating point numbers.
long double is that data type that contains 19 decimals place.
N.B: void is used with function and represents the absence of data type.

It's very important to note that I have only mentioned basic data types. Derived data types contains pointers, functions, array, classes, union, and structure.

C++ program example



Fifth Major: Petroleum-Engineering

If you do a simple search for the highest paid major in college you'll easily find petroleum-engineering in the top of the list. With an early career pay of 94,600$ for a bachelor, I think it will be a good choice. In the following you'll have a general idea about this major.


Definition

Petroleum engineering is that branch of engineering that involves the development and exploitation of crude oil and natural gas fields as well as the technical analysis and forecasting of their future performance.

Petroleum engineering overlaps with many engineering disciplines such as civil, chemical and mechanical. Like every branch in engineering, to be a successful engineer you should have a strong knowledge in math, physics, science skills, and creative problem-solving abilities. In order to start your career as a petroleum engineer, need to take two exams offered by the National Council of Examiners for Engineering and Surveying. Now what do petroleum engineers do?


Petroleum Engineers duties

As I said before the exploitation of crude oil and natural gas is the main part in this major. For this reason, petroleum engineers should design and develop methods to extract them from deposits below the Earth's surface in a first place. How they do this?

Petroleum engineers explore the environment where they study the geological and geophysical information to determine what kind of equipments they need.
After locating the new reservoir they will extract from, they design equipments, tools, and machines so they can extract oil products.


Another thing they should do, is to make drilling and extracting plans to pump out the hydrocarbons in the most efficient way, and to recover them. To control all the machines responsible of the procedure, petroleum engineers should operate softwares.
When the machines start working, the engineer is responsible of the maintenance of drilling and pumping equipment on the site.
Additionally, petroleum engineers must make reports to evaluate the production of wells through surveys, testing and analysis. After ending the process, petroleum engineers supervise the safe removal of drilling equipments. A single engineer can't do all these tasks of course; the following are examples of types of petroleum engineers.


Completion engineers


Completion engineers design and monitor the installation of cost-effective well completions. He must direct and monitor the completion and evaluation of well testing. He must also coordinate the installation, maintenance and operation of mining and oil field equipments.

Reservoir engineers


Reservoir engineers are those who estimate reserves for property evaluation and development planning. They carry out reservoir stimulation studies to optimize recoveries. Another task, reservoir engineers estimate the size of a reservoir and determine how much this reservoir can reserve oil and gas.

Drilling engineers


A drilling engineer manages the safe and efficient drilling of wells to produce oil and gas. He's also responsible of collecting and analyzing data relating to output, daily production and extraction. He will calculate the cost of heavy machinery and the construction of platforms and other structure in addition.

Production engineers


A production engineer's job involves managing the boundaries between the well and the reservoir. They are also asked to make modifications to maximize the efficiency and oil and gas recovery.

Conclusion

To be a petroleum engineer isn't that easy; not only the work itself is difficult but working in locations were the climate is harsh demands lots of efforts. Don't forget you have many tasks, especially in communicating between all kinds of engineers to have the best income. Now here's an interview with a petroleum engineer to get under the surface of his occupation.


Saturday, January 27, 2018

Rust Programming Language

After one day of publishing my blog keeping up with C language, a discussion was made about that Rust Programming language is recently getting over C programming language in most universities. For that reason, I did my researches about Rust programming language and I will give a general idea about it.

What is Rust?


Rust is a programming language that focuses on three essential things: safety, speed, and concurrency. This language was sponsored by Mozilla research, and started in 2006 by a Mozilla employee named Graydon Hoare.
Rust uses LLVM, a library that is used to construct, optimize and produce intermediate and/or machine code on its back end. Rust first appears in 2010.

Syntactically Rust is very similar to C++ with blocks of code like using if, else while and for. I should also mention that instead of using switch like in C, programmer uses match keyword.

Advantages of using Rust

Rust prevents segmentation faults and guarantees thread safety. Additionally, Rust gives programmer memory safety without needing a garbage collector. Instead of using it, Rust uses borrow checker to ensure checking pointers and verify them at compile time. In other word, the error message that pops out when using C by the garbage collector will not shows up in Rust, the program will simply compile. This will prevent dangling pointers and other forms of undefined behavior.

When I say dangling pointers, I mean pointers that do not point on at a valid object of the appropriate type. This type of pointers shows up when deleting an object (using destructor); in this case the object will be deleted without changing the value of the pointer that points on it. In this case (in C++) the pointer will still point on the location where the object was (deallocated memory).
Undefined behavior example: indexing an array out of bound, a value other than 0, 1, true, false in bool, etc.

In addition, Rust will guarantee concurrent code is free of data races catching any misuse of mutexes  or other synchronization primitives at compile time.




Disadvantages of using Rust

Compared to C language, Rust often produces larger binaries and less efficient code. Furthermore, rust doesn't have a standard way to access database (as JDBC for java), so reusing project created for MySQL with sqlite isn't an easy task. stdlib is really minimal in Rust, two different rust applications will vary more then lets say two java applications. To end with, Rust is leaky; Rust's scope-based memory management makes recursion leak memory.

Conclusion

Each language has its pros and cons. Rust is developing so fast, especially that it's a modern language so writing all the headers file that you find inside other language is almost impossible. Below a video about how rust developed from 2010 till 2015.


Friday, January 26, 2018

Fourth Major-Comic Art

Our major for today is totally different and weird: it's called Comic art. What does it mean? What are the related courses to it?

Definition

Comic art is the creation of stylized or simplified drawings for the purpose of telling a story, making a point, or making people laugh. In this major, students are taught to gain command of line, color, and composition, as well as character development. A good example on comic art is comic books. A comic book is a magazine made up of a series of comic strips. These comic strip themes offer opportunities for jokes, self-contained messages, political humors, different realities, and educational tidbits of history and historical facts. Below you'll find a video on how to draw spider man in comic book style.



Courses related to Comic Art


Here is a list of the courses a student take while studying comic art: History of Comic Art, Comic Media and Concepts, Comic Book Publishing: Print and web and Comic Storytelling.

Qualifications you need to be a comic artist


The most important skill you need is artistic ability and a natural talent for drawing, followed closely by the ability to conceptualize. You should also have creativity, imagination and interpersonal skills especially while creating new characters. For the comic book artist, he should know how to draw the human body accurately.
Artists must also be able to write stories that make readers want to continue reading when making self-published comic in particular.
 

List of some comic arts





 

Keeping up with C language

Start your first Program

To start writing any program in C you should pass through many steps. The first step is to write your code on any platform that works with C language. Well I suggest visual studio. You can also find several other applications like Eclipse, Netbeans, Code::Blocks, and much more.
For me, working with visual studio for C, and with Netbeans for Java, python, and others was the best. The following link will help you choose any application you like: 
https://www.quora.com/Which-software-is-used-to-run-C-C++


All programming languages depends upon compiler and IDE to give results. So what are the stages that C program passes through before showing results.

Stages of Compiling a C program


The first stage is the preprocessing stage. To write any code the first step you need is to include some header files inside your code. For now, I will use => #include <iostream>. As its name includes, the compiler will call the header file; iostream in our case. This header file is used will let you use cout or cin. Yeah, I know it sounds weird, but trust me by following the steps you'll make your first program. Well, the first program for us now is to output Hello world on screen. Huh, this is the very first program for any programmer.

Every program starts from main. So after the include section you should include int main() in any C program. If not, your program will not give any result. The code would be like this:


After writing the code, it's time to move for the next stage called compilation. In this phase the preprocessed code is translated to assembly language in order to target the processor architect.
The assembly language will translate the assembly instructions to machine code; this phase is called assembly.

The object code generated in the assembly stage is composed of machine instructions that the processor understands but some pieces of the program are out of order or missing. To produce an executable program, the existing pieces have to be rearranged and the missing ones filled in. This process is called linking. Source: https://www.calleerlandsson.com/the-four-stages-of-compiling-a-c-program/#linking



Explanation


Inside the video, a new header file was included (stdio.h). Remember this header file are already defined and can be used easily. The second thing that differs from the first program is printf instead of cout, but both of the are used for the same reason.
Obviously, the reason was to show the sentence inside the double quotes on your black window.
It's also important to know that using name std is used with #include <iostream>. 
Congratulation !! Your have successfully compiled you first program !!

To know more about C/C++ please don't hesitate to buy the book in the gadget. You'll find there many programs where you can start anywhere and any time and you'll see output for each one of them.

IMPORTANT

Make sure to buy your free kindle book now.


Thursday, January 25, 2018

Third Major-Social Worker

Hello friends, I want to thank you for all your feedbacks sent to my email (philippebalech@hotmail.com). I received an email asking me to list the social worker major inside my blog. Miss Elise Eid is a social worker for three years now, so I asked her to send a summary about her major. And this is what I received.


Who's a social worker?


According to Miss Eid, a social worker is concerned with helping individuals, families, groups and communities to face all their psycho-social issues such as poverty, violence, learning difficulties, trisomy and much more…
In addition to helping them to develop their skills and their ability to use their own resources “don’t give me a fish but teach me how to fish”.

What does a social worker do?

Firstly, he should identify people who need help, then prepare an assessment about their needs, situations and strengths to work on developing them. He must also know their goals, in addition to their beliefs and principles.
Secondly, he prepares plans with the clients to improve their well-being, so they can adjust to changes and challenges in their lives such as illness, divorce, physical issues… After that, he refers the clients to the appropriate communities and schools.
Finally, after working according to the plan, the social worker must follow up with clients to ensure that their situations have improved. And the most important step is the evaluation of the services provided to ensure that they are affective, so they can modify, adjust or change the conditions of the plan.

Social work with individuals


Social work with individuals is one of the main parts of a generalist approach to social work practice. This part of social work focuses on working on the individual skills so they can help themselves and face all the changes on their lives.

Now what about a family social worker?


Family social workers provide services to families that need help in fixing problems that interfere with family harmony. Typically, families that need this kind of help have severe problems that they can’t solve by themselves such as financial problems, unhealthy relationships, medical problems, stress, etc... A family social worker focuses on the one who’s most facing these problems and their impact on the family, so the social worker can help all the family members through this member and ensure good relations in the family.
By making plans and helping families utilize services available to them, family social workers will often have the satisfaction of witnessing these families get back on the right track.

Social work with groups



Social work groups are therapeutic groups with two or more patients. They create a protective environment in which individuals have space to confront and share some of the issues they face such as  cancer, visual impairment , aging, etc. After finding common issues, patients are addressed in a group setting. These groups will teach patients how to connect with each other and to learn techniques to establish a group mood that is supportive and understanding.
In Addition, groups are educational as well; they might teach patients about a certain condition or a situation like addiction, diabetes, drugs… through awareness sessions.
Furthermore, a group social worker must encourage patients to ask questions and establish a supportive, nonjudgmental environment that is mutually beneficial to all participants.


Social work with environment


The environmental social work assists humanity to create and maintain a biodiversity planetary ecosystem. Social work values, skills and knowledge can be adapted to promote social change, helping people to respond to the environmental degradation.

Conclusion


In a world filled with injustice, incredibly complex, and pressing challenges, we need people who are committed to making a difference in the lives of others. For these reasons, social workers step in.

Today’s social workers are concerned with the complex relationship between private personal troubles, and public issues. At the end, social workers try to discover the main cause behind the case to solve it while progressing.

Second major- Biomedical Engineering

Biomedical Engineering

The first major I started talking about was computer science, that I will continue talking about in the next blogs.
For the current one, I will talk about a major that combines engineering principles and techniques onto the medical techniques. This major is called biomedical engineering where the bioengineers work with doctors, therapists, and researches in order to develop equipments to solve clinical problems.

Importance of Biomedical Engineering

Biomedical Engineering is such an important major; the reason is that the health issues in the world are unsolved, the cost of health care is growing crazy, and controlling these prices is almost impossible. The easiest way to get over spending all the money on health care, is by creating some tools by bioengineers like : digital tools, software platforms, and hospital instruments.



Furthermore, biomedical engineering has different careers; a common career for this kind of engineering is making artificial limbs. These are for people who have lost their limbs or need to have an amputated (cut of a limb). So first of all engineers will design the structure to be similar to a human limb. To maintain a good quality in life for the person that uses it, the mechanical engineer aspect of this major should interfere.


Additionally, Biomedical engineering attaches electrode somewhere where the limb was removed to read the electronics signals when someone want to fist for example. Now once that person fist, electronics signals coming from his hand will proceed to a device that would tell the artificial arm to make a fist also. This aspect is called electronic engineering and programming aspect of the major.




For me, the most important part in biomedical engineering is the tissue engineering.

What's the tissue engineering?

The whole idea of tissue engineering is to form different types of tissues in the lab and maintain a long-term functionality. After creating these tissues it will be introduced to the body in order to replace or repair any damaged tissues. This may involves skin, muscles, or bone tissue. It can also involve the regeneration of an organ such as the heart, kidney or the Liver.


Nowadays, the organ donors can't keep up with demand. Because of that, organ replacement has become a major goal especially with all the wars around us. For all these reason, tissue engineers tries to imitate what nature does to create organs; this experiment involves engineering a kidney instead of using artificial scaffolds.
To do this, tissue engineers take a particular real tissue and carry out all the cells from it and leave only the collagen behind the scaffold. After this, all cells were put back on the scaffold and let the organ regenerate itself using the same architecture. Once the procedure succeeded, the tissue can be set in the body with the right environment.

Scaffolds : are used to support organs that may have been damaged after injury or disease.

Biomedical Engineer Salary

For those who are wondering about the salary that a biomedical engineer can make => the average salary is 63,500$ per year depending on the national average. This salary will differ by location. 
For the first five to ten years in this position, pay increases steeply, but any additional experience does not have a big effect on pay. 


Wednesday, January 24, 2018

Programming Languages

To do a software application defined in the last blog, you should use any programming language.

What are programming languages?

A programming language is a set of commands, and other syntax. The mother of all languages is C programming language. It was developed by Prof. Dennis Ritchie at AT&T Bell labs in 1972-1973. A new language appeared then in 1990 called Java by James Gosling. Each language from C to python created in the 1989 by Guido van Rossum has its distinct features.



Before getting started with C programming language, let's categorize the languages. There are two types of programming languages: low-level and high-level.
  1. Low-level are also known as machine language like assembly language.
  2. Higher-level language contains over 2000 computer languages.
Assembly language is designed to be easily translated by users into machine languages. Before getting started with C language, let's get a general idea about it. C programming language is a general-purpose programming language used for wide range of applications. C programming language is a highly rated language because of its efficiency. 

Why learning C?

Start learning java and C++ you will immediately move away from learning the fundamentals of programming; java and other languages are based on predefined functions that a user just call them and use them inside his program. In contrast, in C language you can just call some libraries, and you must define each function you need to use inside the program. 

C will also give direct access to the basic elements of the computers. It will also gives you access directly to the memory of the CPU by pointers, this isn't the case for other languages. 3D games? Even 3 dimensions games use C as their core. When you learn to program in C you'll gain an understanding of register, stack, heap and memory mapped IO mean.

C is not an object oriented programming language so you don't get distracted with some advanced topics like inheritance and polymorphism. The last thing about C language is that almost all high-level programming languages can interface with C programming easily. It's very important to note that C language is a case sensitive which means lowercase and uppercase letters are treated differently.

To end with, C language is general purpose language and can efficiently work on enterprise applications, games, graphics, and applications requiring calculations etc. Additionally, C implements algorithms and data structures swiftly, facilitating faster computations in programs. 

Computer Science-Software

What is a software?

I mentioned in the last blog some important hardware parts of the computer. But these parts need a software to give them tasks to do. The software will make sure that the computer will boot up and that all the physical components of any PC performs the operations that the CPU generates. A software can be a simple application created by a programmer, or a system software. Now, what's the difference between them?


Definition of systems software


Systems software are the programs that are dedicated in managing the computer itself such as the operating system, file management utilities and disk operating systems (DOS). Common desktop operating systems include Windows, OS X and Linux. The operating system will give the ability for the user to manage his files and folders. It also has the ability to facilitate the execution, and to allocate memory for any installed software application program.

Definition of application software


Applications software are simply end-user programs that are designed to do a specific, educational and business function. Each application has a good interface so the users can easily understand how the application work, and has a friendly interface to output the results. Microsoft is the best common application software used by you to write like in word, to do some calculations like in excel and to design some projects like in power point. Application software can also be simple like calculator.


Application software includes Internet Browsers as well. A web browser is an application especially designed to locate, search and display content found on the Internet. Browsers like Internet explorer, Google Chrome, Mozilla Firefox, are just few of many you can choose from.



Conclusion

In our daily life we may face some important problems that can't be solved without a professional application. These GUI applications (Graphical User Interface), are created by certain group of developers once requested to manipulate some data and give the best results out from it. What languages do they use to create such an applications? And where to start from?
In the next few blogs, I will start explaining how, and I will cover a new major for those who are still searching for the best major.

Tuesday, January 23, 2018

Computer Science

Computer Science System:

A computer system is mainly formed of two main parts: hardware and software.
Computer hardware is any physical device that can be found on your PC. Let's take some of them: the keyboard, the monitor, the mouse, the CPU, RAM, ROM, HDD, and the BUS system. The most hardware component is the motherboard that was made up to control the computer. However, software is the invisible part of the computer. In order to run a computer, Operating System will be loaded on the hard disk drive to give the user the ability to access all the abilities inside the PC.


Definition of CPU

The Central Processing Unit is the brain of the computer. It performs most of the processing inside the computer. The CPU is formed of two main parts:
  1. Control Unit: it handles all the processor control signals. It directs all input and output flow on the monitor.
  2. Arithmetic Logic Unit: handles arithmetic and logical operations.





Definition of RAM

RAM is the abbreviation of Random Access Unit. It's a type of data storage used in computers, especially to handle some programs. RAM is a volatile memory because once the computer was turned off all the data in it will be cleared.

You may find DDR3 RAM inside the modern PCs. DDR is an advanced version of SDRAM. It can transfer data twice as fast as a regular SDRAM chip because of the faster clock rate inside. So each version of DDR has a higher clock speed than the old one. DDR3 provides 6400 MB/s, DDR2 provides 3200 MB/s, and DDR RAM will provide 1600 MB/s of Bandwidth. 

It's very important to note that the motherboard must also be upgraded to handle the new versions of RAM. Recent AMD motherboards are also changing over to DDR3.


Definition of ROM

ROM is the abbreviation of Read Only Memory. It's a built-in memory containing data that can only be read. Data inside will be maintained even if the computer power is turned off. In addition, ROM is mostly used for firmware update. BIOS is a good example of ROM. What does it mean? BIOS means Basic Input/Output System. 





Definition of HDD

HDD is the abbreviation of Hard Disk Drive. It's the main memory of any PC, because all your folders and files will be physically stored on it. Modern PCs contain several terabytes of data. Now this is how it goes; each terabyte contain 1000 gigabytes of data. HDDs are not volatile because they don't need electrical power to maintain their data.

SSD is a solid state drive. Unlike HDD, SSD doesn't have any moving part, which help the user to access the data faster. But the main problem is that SSDs are more expensive than HDDs;  You can buy a 130$ SSD and a 70$ HDD for the same size. This price will differ with the capacity inside.






Definition of BUS System

A computer bus is used to transfer data between components of a computer system. The bus is also known as local bus, address bus. For example, the bus helps the CPU to give the order to the monitor to show the output from the keyboard. The bus system is mainly formed of wires where each wire contains a bit of information that can be addressed.



About me

Who am I?


I'm not sure where to start from. Am I a writer, a programmer, or a soldier?

Three years ago, I was that guy who was planning to enter military and fight for my country like no one else did. I was that guy who don't have any plan in mind, the only thing that I wanted is to be a soldier and hold a weapon. Entering military wasn't an easy thing; I did my best, but unfortunately I was rejected in a country where there is no place for education. To take any position you must have a strong relation with politicians.

Well, the first year after graduating from school was the hardest, especially that I didn't know where to start from. Should I go with physics? Hem, I don't think so. I did my researches for some majors, reading the definition for each major wasn't enough to choose. I went to the faculty of Law and Political and Administrative Sciences; inside you should memorize many laws and know how to deal with each case. For the second time I found myself lost in that kind of studies.

After several researches, I ended up registering as a Computer Science student where I unleashed my passion. Being a computer science student requires working with softwares like building applications, human computer interaction, programming languages, software engineering, etc. Before I entered this domain I didn't know that I'm going to learn all of this, the only thing I needed to understand is how a robot work automatically. In other word, as I mentioned before, day by day robots will replace humans. So not to learn how to be a programmer and take my place in the real world?




Introduction to the blog

What is my blog about?

Have you ever asked yourself how the others get living?

In this world, we have many majors; you can be a writer, an architect, a doctor, a teacher.

Additionally, you can be a technician, a developer, a freelancer, an engineer, and the list will never end. Not to forget, a teacher can teach math, science, certain language, physics, etc.

OH MAN !! I need a decade to cover all the majors in this world, just the current ones. Believe it or not there are more than 100 majors for a new undergraduate student to choose.

So let's face it, finding the major that fits you well is a hard thing especially with that huge number of majors. Not forgetting that the world is updating every second; many researches are launched each day and many majors keep showing up.

For me, having a knowledge in all electronics stuff was a pleasure. Well, have you witnessed that our environment is automated now. What do I mean by automated?
In this century, we have noticed that advances science and technology pushed the limits of human existence. 

Giving citizenship to a smart robot isn't a normal thing right? In an attempt to promote artificial intelligence in the country, Saudi Arabia gives citizenship to a robot named Sophia for the first time ever. Sophia is a real example of how artificial intelligence and robot will make machines more human-like in the near future and will take the place of human being.

The first question that comes to minds is how a robot can act like human? Technically, a robot is a combination of structure and programming. Each robot has an agent function where each incoming input is manipulated through a table where he chooses how to act. After considering the input from different kinds of sensors, the output will be shown when acting through contributors (giving orders to motors, talking, hands, etc.)

To understand how the robot acts humanly you should know the code content compiled on the robot. After asking some students and making researches, I found that the best major is computer science. Such a major will help you learn programming from A to Z.

For you my friends, I'm asking each one of you to take a look  back to his major. Do you think that you chose the best one for you? Hem, I think that after following up with the up coming blogs you'll change your mind.

In the following blogs, I will talk about myself. Where do I start from, what I learned in University, how to implement a robot since I have some experience in it. This could be a good example for whom interested in registering as computer science student.

In conclusion, choosing the best major for each person is something very hard in that much of majors all around the world. So giving a good orientation for each student and explaining all kinds of fields is a solution.