Tuesday, March 31, 2009

Binary Trees: Not Just in Nature


Computer programming does not only deal with the different programming languages, but it also deals with different data structures. Recently, I was taught about the importance of the tree data structures and how there are so many different kinds of trees. The three different kinds of trees I learned about throughout the past year has been a binary search tree, a heap tree, and a red-black tree. A tree consists of a node, which then goes down and connects to other nodes which are its children, and continues to the last line when the children do not extend to anything else. In a binary tree, the maximum amount of children that a parent noode can have is two, which means that the maximum number of nodes on a level is 2^n. Each type of tree which will be described shortly, has different methods and algorithms to sort, insert, and delete nodes from the tree with different time complexities and their own unique style. For my next post, I will talk about how the trees are different, and which ones appear to be faster.

Saturday, March 28, 2009

Turbo Pascal

This morning when I woke up, I was thinking about what actually got me to choose computer programming as my future profession. I thought all the way back until my freshman year of high school when I decided to take a computer programming class. In that class we learned how to program in Turbo Pascal, which I had a lot of fun doing and then decided that this is what I want to do for the rest of my life.

Turbo Pascal is a very simple language, where a lot of the commands we used were pretty self-explanatory such as Write (to write a sentence) or readln (to read in an input). The first version of the software was in 1983 and is known to be the first popular IDE (or Integrated Development Enviroment). In my opinion, Turbo Pascal is a very good version to learn how to use GUI's (Graphical User Interfaces) and is a good way to ease into Java and C++.

Thursday, March 26, 2009

The Important SQL


Lately I've been searching for a summer internship, and while looking, I've noticed that many companies like the intern to know about SQL. I didn't really know what it was so I decided to look it up. SQL stands for structured query language and it is a database computer language that is designed for management and retrieval of data in a database system. The functions that are included are retrieval, updating, insertion and deletion. The SQL is divided into many different sections such as the Call-Level Interface, Object Language Bindings, Information and Deifnition Schemas, and many more. Another set of key words are the Data Definition Language. The most important functions of the DDL are create, alter, rename, truncate, and drop. Using the SQL is very important when it come to managing and retrieving items and that is why many companies require it.

Thursday, March 19, 2009

Why Linux?


After writing aboput operating systems I was thinking about which operating system would be the best to use. I was looking online for the advantages of the Linux OS and found a lot of them to be interesting. One of the reasons is the stability of Linux, as it can run for years without having to be shutdown and turned off. Another reason why it is better than Windows is the security, because 1) it is very hard to get a virus and 2) if you get a virus alot of people can help you look at the code and see what is wrong becuase it is open source to everyone. Price is also a big positive when it comes to Linux over Microsoft as it is completely free of charge to download, whereas the CD of the Windows Operating system can cost up to $300.00! When it comes to installing software, you can either get the software legally for free, or you can buy the software from microsoft or take the dangerous road and illegally download it. Which one sounds better to do? In terms of safety, legability, effiency, and price, Linux is definitly a very good alterniative to the Microsoft Windows Operating System.

Operating Systems and the Importance of Interrupts

An operating system is the interface between the software of the computer and the actual hardware. It handles the operation of the hardwarwe which makes it easier for a person to write an application program. Examples of the most common operating systems that are used are Microsoft windows, Mac OS, Linux, and Solaris. The busiest part of an operating system is the kernel, which is always running at all times. The kernel loads a program code into memory and then executes the program.

Kernels also handle a computers interrupt which is very important in creating the code for operating systems. If an important method comes up that must be run at a certain time, such as a plane's engine goes down, that code can interrupt whatever is running so that the most important things get run first. Interrupts can save a computer system from failing, as well as saving a car from hitting something else. If a part of code gets interrupted that is called priorty pre-emptive scheduling. If a higher priority function comes into a waiting queue, then it can pre-empt whatever is running at the time in order to maintain safety and effiency.

Sunday, March 15, 2009

Languages of Web Programming: HTML vs. Java

With the way the world is and almost everyone having access to the internet, I decided to look into the different languages of web programming and what theyre advantages are. One of the most known programming languages is HTML. It has limited power, and is only definied as computational power which means that certain tasks will be performed poorly. These tasks include if the server gets overwhelmed with tasks or if it is i highly interactive website. Safety is the biggest issue in HTML, as viruses can arrise from downloading binary source code from conventional programming languages.

An alternate language that you can use other than HTML is Java, which I described as before, is derived from C++ and is constant being upgraded in terms of performance and safety by Sun. There is also the JavaScript language which is netscapes language to interpret HTML. It is very similar to Java but differs because it interprets information instead of compiles code, and also extends HTML while keeping it easy to use.

Thursday, March 12, 2009

Multiprogramming? Pretty good

While searching through peoples blogs today, I found one named Innovashun which describes different technological positives and negatives. I came across one of his posts which the author Rob talks about multiprogramming and how you need it. After thinking about it I can do nothing but agree with his posts. He talks about how many programmers think that C is the only programming language that they need to know and that they are wrong. Every programmer should be able to work in a Linux/Unix enviroment with mulithreaded programming. This is because each process holds its own seperate address which allows different processes not to interrupt each other and therefore you can get the correct data the whole time. Although C is a very good programming language, the way to get the best possible results is by multiprogramming with multiple threads. It is definitly time for as Rob says for people to "start waking up" to multiprogramming and not only focus on programming in C for all their needs such as object orientated programming.