Tuesday, December 3, 2013

Scientific Computing: Computational Sciences

The study of Computer Science isn't really the study of the science of computers. Some computer topics include hardware, programming, and algorithms. Some science topics include Physics, Chemistry, and Biology. Although different, computers are used in these science topics in real-life situations. It would make sense to call this Computer Science, the study of usage of computers in different sciences, but it isn't. It can, however, be thought of as computational science, which, again, is "concerned with constructing mathematical models and quantitative analysis techniques and using computers to analyze and solve scientific problems." Some real-life computational sciences include computational physics, chemistry, and biology.

Computational physics is "the study and implementation of numerical algorithms to solve problems in physics for which a quantitative theory already exists." The different theories based on mathematical modeling provide predictions of a system's behavior. Sometimes, the solution is hard to solve by hand, so a computer comes in place by approximating the solution. The numerical approximations are written as large, finite mathematical algorithms; the computer would perform the operations and approximate the solution and error.

Computational chemistry is "a branch of chemistry that uses computer simulation to assist in solving chemical problems." Theoretical chemistry methods are used, along with computer programs, to "calculate the structures and properties of molecules and solids." Sometimes, these problems can't be solved analytically. Computational results are obtained by chemical experiments, which can help predict chemical phenomena.

Computational biology involves "the development and application of data-analytical and theoretical methods, mathematical modeling and computational simulation techniques to the study of biological, behavioral, and social systems." Also known as bioinformatics, it uses biological data to develop algorithms and relations in different biological systems. The use of computers helped biologists store and access large amounts of data. Computational biology has been used in different ways such as sequencing the human genome, creating models of the human brain, and modeling different biological systems.

Computational sciences have helped scientists do many different things. Even though it involves similar ideas and concept, it can be used very differently in different fields.

Scientific Computing: Mathematical Analysis

Math used to be fun. The hardest thing about it was counting up to 100. The numbers also had weird shapes, so that also added to its difficulty. Then, we learned how to combine numbers in different ways: addition, subtraction, multiplication, and division. With these simple operations, you would think that it was all there was. Next thing you know, letters are added with the numbers, which was also known as Algebra. As you progressed through higher math and encountered weird symbols, which are still as unknown to me like the Egyptian Hieroglyphics, eventually, you encounter the highest level of math by the average student: Calculus, which helps enable you to solve real-life situations. After your last Calculus class, you would think there is no more math to learn. Nope. The math after Calculus is basically math problems that you will almost never encounter and use in your daily life. An example would be computational science.

Computational science is "concerned with constructing mathematical models and quantitative analysis techniques and using computers to analyze and solve scientific problems." It involves different theories to approach certain problems. Since math can be tedious to do by hand, computers are used to analyze mathematical models. Programs are made just so models can be studied by inputting different parameters. Some examples of different real-life models used include graph theory and mathematical optimization.

Numerical analysis is a very common method used in computational science. It is "the study of algorithms that use numerical approximation (as opposed to general symbolic manipulations) for the problems of mathematical analysis." Numerical analysis usually involves getting results that are not exact, since it is not always possible. It is more about obtaining approximate solutions. An example would be \sqrt{2}; you would not get an exact number.

Related to computational science, there is also symbolic computation, also known as computer algebra. It is "a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions and other mathematical objects." The solutions are usually exact numbers with expressions that contain variables with no given value. An example would be the equality symbol:  (x+y)^2=x^2+2xy+y^2.

Even though we almost never use higher level math, it is still applied in some fields or in some real-life situations without us even knowing it. Since we are in a computer-related field, it would be a plus if we can understand some simple mathematical models.

Friday, November 29, 2013

Computer Graphics: Create it

computer graphicsA lot of us have doodled or made something before. At a very young age, especially, children let their imagination go wild and do many interesting things. They talk, draw, and build anything that is in their mind. It is amazing because it can be very creative sometimes. Drawing is easy to do, but it is hard to make it look very realistic and appealing to the eye. Now, we can draw on computers; computer graphics is a category. Drawing on computers is harder than drawing manually, but it is worth it because your hard work looks very realistic.

Computer graphics are "graphics created using computers and the representation of image data by a computer specifically with help from specialized graphic hardware and software." It is basically things on the computer that is not text or sound. You use the computer to create and manipulate an image data, making it visually appealing to the audience. Computer graphics are used in many different fields: animation, movies, and video games. In the website Computer Graphics World, you can see different articles and news about computer graphics; it is like an online magazine.

image processing
Related to computer graphics, there is also image processing. It is "any form of signal processing for which the input is an image, such as a photograph or video frame; the output of image processing may be either an image or a set of characteristics or parameters related to the image." The image is treated as "a two-dimensional signal, applying standard signal-processing techniques to it." In other words, it is a way to convert an image into digital form so you can perform, or edit, operations to make it visually appealing or extract information from the image. There are two types of image processing: analog and digital. Analog, or visual techniques, can be used for hard copies such as photographs and printouts. Digital is for manipulation of digital images by using computers.

Computer graphics is a great field for people who like to draw and create animation. It is a big step from manual drawing to computer drawing. For animation, instead of drawing the same picture over and over again on flip paper and flipping it to create a visual story, you can do it with ease on the computer.

Tuesday, November 26, 2013

Communications and Security: Use Protection

There are a lot of ways for people to communicate with each other: sending text messages, writing letters, and talking on the phone. Imagine, for some reason, there was another person reading your text messages, opening and reading your letters, and intercepting your phone calls. You would not feel safe using those methods of communication, since you have just lost your privacy. This is the same for computer communications as well. You would not feel safe if you knew someone else had access to your files, your passwords, and your credit cards. It is important to have basic knowledge of computer communications and securities.

computer networking
In a computer network, which is "a telecommunications network that allows computers to exchange data," the most commonly used network to share and exchange data is the Internet. In these networks, the networked computing devices exchange data to each other through data connections. Computer networking supports many different types of applications such as web browsers, storage servers, printers, and e-mail.

Computer security is "information security as applied to computers and networks." Any related computer equipment would be protected from unauthorized access, unplanned events, and natural disasters. It is important to have an updated firewall, which is "a software or hardware-based network security system that controls the incoming and outgoing network traffic by analyzing the data packets and determining whether they should be allowed through or not, based on applied rule set." Having a security system can protect you from computer viruses and Trojans.

computer encryption
Finally, there is cryptography: "the practice and study of techniques for secure communication in the presence of third parties." Basically, it can help prevent data from being stolen from bad people. If someone were to break into your computer or intercept your messages, then they would not be able to read it because of cryptography. Also, it performs other critical security requirements for data including authentication, repudiation, confidentiality, and integrity.

Now that almost anything can be stolen or intercepted, it is important to have something, like a security guard, to prevent any huge loss. Be safe. Use protection.

Tuesday, November 19, 2013

Artificial Intelligence: It's Alive!

frankenstein brain
Have you ever owned a stuffed animal or anything related? Have you ever wanted it be alive? I know I have. It is probably not possible to have a stuffed animal become alive after a wish like in the movie Ted and it is probably not possible to resurrect the dead using power electrical shocks like in Frankenstein; if it actually were, then someone would have probably done it by now. There are, however, artificial substances and life that scientists and engineers have made. Robots have been built and have had the ability to communicate; Siri, a personal assistant and knowledge navigator application from Apple, is very similar to this idea. This concept is called artificial intelligence, also known as AI, is defined as "the study and design of intelligent agents." It is a branch of computer science that studies and develops intelligent machines and software.

pino the humanoid
A well-known example of artificial intelligence is the general idea of a robot. The almost perfect artificial intelligent robot would have a well-created human thought process; basically, a machine with the intellectual abilities of a human. Like humans, it would have the ability to learn, to reason, to speak, and to think. The closest thing created around this idea is Kitano's PINO, also known as the humanoid robot. It has taught itself how to walk! Isn't that cool?

Now this wasn't easy to achieve. Computers have the ability to solve problems, but it can only solve problems it was programmed to solve. It doesn't have any analytical ability like the chess computer. AI robots would have to gather input, store its data, and run different possible actions and predict the best outcome for the situation.

The field of artificial intelligence is amazing. The feeling of making something behave like a human is unreal, as if it can only happen in movies. After this, maybe we can make Ted real and resurrect Frankenstein!

Friday, November 15, 2013

History of Computer Science: The Human Computer

binary number
We get our names from our parents. When something new is discovered, it is usually people who name the new object or event. Being in a technological era, computers are used a lot of industries and in homes. As important as it is, have you ever wondered where the word "computer" got its name? It is actually quite interesting. In fact, if you think about it, the word "computer" is very similar to the word "compute," which means to "to determine by calculation; calculate."

Let's start from an earlier time before computers ever came to be. There was a man, Gottfried Wilhelm Leibnitz, who developed logic into a binary system that we know of today; it was more of a mathematical system than an English system. Like the Boolean, started by George Boole, it is the same as something being true and something being false. The 1 represented true and the 0 represented false. This idea was used in real work situations. For example, it was used in punch cards that workers used to sign in and sign out of their work shift during the industrial revolution.

human computer
Soon after, before computers became electronic, computers were actually clerks that performed computations. Many of these computers were women at the time. Many of these women having a math degree, they worked in different areas such as in government and in research facilities. More mechanical devices were made, and computers were then known as computing machines that did the job of a human computer. These computers performed much faster than human computers. Throughout time, mechanical computers became were the analog kind, then the digital kind, and now the computer architecture it is today.

Computer programming and computer scientists could not have existed if there were no computer to use in the first place. The computer, from human to machine, is definitely an important part of computer science history.

Sunday, November 10, 2013

History of Computer Science: The Really Early Days

abacus
Have you ever seen something or heard something and thought to yourself: "I wonder how they made that" or "How did that ever get started?" I have. Looking at the current technology that we have available right now, I have wondered about a lot of things such as when the first computer was built, how the Internet became what it is, and how the computer language started. Being in the computer science field, how it all started has also crossed my mind.

Computer science is defined as "the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information."

When we study computer science, we deal with a lot of computations and algorithms. In fact, one of the origins of computer science were tools that were used to help in computations such as the abacus, which were used by the Sumerians. The mechanical analog computer was also a part of the revolutionary progress of computer science.

As mathematical computations increased, machines were built to help these computations; mechanical devices were built to help factor integers. As more theory and questions were asked, more and more devices were built to help figure out the answers such as the Turning machine.

Calculations needed for war helped give birth to one of the first electronic digital computers. With the help of IBM, the Mark I electromechanical computer helped calculate ballistics in World War II.

In the 1960's, computer science became its own field.The first computer science department was formed at Purdue University in 1962. Operating systems were also starting to become more advanced. Fred Brooks, at IBM, designed System/360, "a line of different computers with the same architecture and instruction set, from small machine to top-of-the-line." Edsger Dijkstra, at Eindhoven, designed the THE multiprogramming system. At the end of the decade, ARPAnet, a precursor to today's Internet, began to be constructed.


Starting from a simple device like the abacus to an electronic device like the digital computer, who would have thought that this would lead to the development of computer science.

Monday, November 4, 2013

File Sharing: Let Me Give You a Copy

cyanide & happiness sharing comic
I remember back in elementary school, having English as a second language, I learned a new word and concept: sharing. I kept some toy blocks to myself and I was told to share. I also had some crayons that belonged to the teacher's that I had to share. Being so young back then, I had always wondered why I had to share items with other people. I just could not understand why I couldn't have all of these things to myself. Of course, I have outgrown that phase, and I now share things with almost no hesitation. Sharing is basically dividing what you have and giving it to others; it can also mean giving another person a copy of what you have on the computer via online or storage such as a hard drive, or file sharing.

File sharing is "the practice of distributing or providing access to digitally stored information, such as computer programs, multimedia (audio, images and video), documents or electronic books." The ability to share has gone from sharing to the people around you to sharing to the world wide web. There are many ways to share files: hard drives, e-mail, and file sharing websites.

Sharing files is only a click away. If someone wanted to put a file online so others or himself can access on another device, then he can put it on file sharing websites. Some common websites used to share include MediaFire and DropBox. There are also peer-to-peer (P2P) file sharing programs such as LimeWire and Vuze. To define P2P, it  "connects in to a peer-to-peer network to search for shared files on the computers of other users connected to the network." Lastly, there are also BitTorrent methods of sharing. Also known as torrents, this method uses the P2P file sharing method to share large files through the Internet. Many files can be downloaded from torrents such as programs, movies, and games.

 Although there may be legal issues when downloading some files on the Internet, file sharing is practiced by everyone. It is a great way to send/receive copies of many different files. Everyone can get what they want and everyone can be selfish, though I'm not saying you should be selfish!

Tuesday, October 29, 2013

Data Structures: How it Works

data structure
Think about some of the furniture that we have in our living premises. The cabinets in the kitchen store cups and plates, the closet in our rooms stores clothing, and the garage, if you have one, stores vehicles. We put the objects we have into those different compartments because it is easy for us to organize and access them to get what we need. Like a computer, there ways to store and access data that allow us to do what we need to do. These storage are called data structures, which is a way of storing and organizing data in a computer so that it can be used efficiently.

Each data structure helps the programmer handle large amounts of data and structure them in a manageable way. Common uses of data structures, for example, are searching and sorting. Searching allows us to find the data we need in a structure and sorting allows us to organize the data. Having data structures can sometimes allows us to do less work. Some data structures include arrays, linked lists, and binary trees. They all have their own advantages and disadvantages: arrays are good for searching, but not adding data, linked lists are good for adding, but not searching data, and binary trees are good for both searching and adding data.

data memory
Basically, each data structures have their own sets of operations that are performed to access and change data. It is important to have knowledge of different data structures so we know which will be the most advantageous in our programs. Like our household furniture, it would be inconvenient to put our clothing inside kitchen cabinets and plates inside closets.

Tuesday, October 22, 2013

Hacking: Thank Goodness for Rebels

black hat vs white hat
In life, there are always good and bad people. In a classroom, there are always those that follow all the rules and those that rebel and break the rules. Like the shoulder angels and devils, you know, where the angel tells you to do the right thing and the devil tells you to do the wrong thing, you can't have one without the other. In other words, you can't have good without bad; you can't have good hackers without the bad hackers. It is because of the good hackers that there are bad hackers and the other way around.

A hacker is defined as "a person who illegally gains access to and sometimes tampers with information in a computer system." We usually think of hackers as bad, but there are situations when hackers do bad for the greater good. You can compare it to Batman, where he does wrong things because good behavior and following the law isn't enough to accomplish what needs to be done.

People think of hacking as breaking into computers and stealing data and files. While there are hackers that do such things, known as the "Black Hats," there are other hackers that, for example, hack into sites in order to help improve them, known as the "White Hats." Hackers are talented coders, since they are able to do either good or bad to different sites and systems.

Without hackers, we wouldn't have some of the things we use almost everyday today. The desire to explore systems and see how they work made many hackers knowledgeable. Open-sourced programs wouldn't have much improvement without hackers. Steven Jobs built Apple. Mark Zuckerberg founded Facebook. Linus Torvalds created Linux.

Though it is important to not forget about the black hat hackers, if one can stand out and do something that benefits others as a white hat, then they are also hackers. Hacking, like Batman, whether it is good or bad, is up to you to decide.

Tuesday, October 8, 2013

Open Source: Free is Good

open source
There are a lot of things that require money. If we wanted to make something, then we would have to buy the necessary tools. As a college student, I have to save as much money as possible whenever I can so I don't have a lot of debt. The average college student uses the computer almost everyday. They also have to use programs that cost a lot of money such as Microsoft Office and Adobe Photoshop. There are also alternatives to these program that are not just free, but you can also learn from it, alter it, and share it such as LibreOffice and GNU Image Manipulation Program. These types of programs are called "open source" programs.

Open source, by definition, is "a development model promotes universal access via free license to a product's design or blueprint, and universal redistribution of that design or blueprint, including subsequent improvements to it by anyone." It's basically a computer program that has its source code available to the general public that is useable and modifiable.

examples of open/closed source
It's good to have these open source programs because, of course, it's free, and also because many other programmers can modify the code and send it to the creator, which drastically improves the program. It is the same as volunteering to do good in some way to benefit the community.

You don't have to be a programmer to be able to use these open source programs. The more people that use these programs, the better because it allows the developers to know that people actually use the program, other programmers will try to improve it, and it allows others with money issues to do their work.

Open source programs sound too good to be true. Don't worry. It's true.

Wednesday, October 2, 2013

Agile: A Different Way to Manage Teams and Projects

leader and team membersIn some time in our lives, whether at school or at work, we have had to work with more than one person. In general groups like these, there are usually different types of people: the bossy one, the obedient one, and the lazy one. Having a group in the first place is a good place to start, but what everyone does is usually hard to figure out. Without a good plan and leadership, then the bossy one might get too bossy, the obedient one wouldn't know what exactly to do, and the lazy one wouldn't actually do some work. There are methods that are great for managing teams and projects. The broad
term for the many different methods available is agile.

You might have heard of different agile methods such as Unified Process, Scrum, and Dynamic Systems Development Method. Back in the day, people got tired of the failing traditional method of managing development projects, so some of those people got together and came up with four important values, known as the agile manifesto:

manifesto definition1) Individuals and interactions over processes and tools
2) Working software over comprehensive documentation
3) Customer collaboration over contract negotiation
4) Responding to change over following a plan

As they said, in short, "While there is value on the right side, we just value the left side more."

Some of the common key principles of agile include teams have the power to make decisions, requirements change but the time is fixed, and collaboration between the manufacturer and team members is important.

The business world changes as well as the technology. Agile methods tell us to make use of what is available to us, use your time wisely, and start adjusting to the modern world, not the stone age.

Tuesday, September 17, 2013

LinkedIn and Branding: Why it Matters

sharingFacebook is used by millions of people, especially by people who like to share their personal lives with their friends and family. People post statuses about how they feel during the day and post links to share what they have seen. It is nice to be able to update and share your experiences. I have seen pictures of friends going to events and pictures of friends going to parties. The pictures taken can affect how other people see you; it affects your brand. If you saw a picture of a person dressed up for a job interview, you would think the person is working hard to make a living. If you saw a picture of a person drinking and partying, however, you would think the person likes to live in the moment but may not be thinking about the future. Though Facebook may be used for professional networking, since there may be times when you may be tagged in certain events that shouldn't be seen by professionals, there is another social networking website that is used professionally.

Facebook arm wrestling LinkedIn
LinkedIn is used by millions of professionals, especially by people who want to share their brand with other companies. LinkedIn is a great alternative than Facebook because it is easier to share your professional connections and it is easier to share your brand with many other professionals. It is the world's largest professional networking site. Even though you aren't there to meet everyone, everyone can still see your brand and see what you have to offer. It is also nice because you would be more careful about what you post about yourself.


Having a certain brand on a social media site is important. It is the first impression of who you are. By displaying important facts and experiences about yourself, your brand will be wanted.

Monday, September 9, 2013

QR Codes: What are they and Why you should use it

bar code in an alligator's mouth
Do you recognize what that is in the alligator's mouth? If you thought of teeth, that is correct, but what I meant was a bar code. You see the usage of bar codes a lot at stores such as a grocery store and a clothing store. A bar code is made up of vertical lines and spaces. It is considered a one-dimensional code because the information is stored only in its horizontal widths and spaces; the vertical height of the code does not affect the code. Like the bar code, the QR code is scanned for information. It is different because of its shape, how much information can be stored, and how it is usually used.

examples of customized QR codes

Now you have probably seen this square somewhere. At home? Maybe. At the grocery store? Sure. On the label of your drink? Why not. You could have encountered this square at all of those places! This square is actually a matrix and is called a QR code. Unlike the bar code, the QR (quick response) code is made up of small squares and is two-dimensional because it holds information horizontally and vertically. The QR code is used in many ways: advertisement, tracking, social media, and many more. This code benefits many individual brands because it holds a lot more information than the bar code in a compact size.

How come a lot of people do not use this code? The majority of people just simply aren't aware of it. People use their smartphones for messaging, web browsing, and gaming, not for scanning QR codes. QR codes should be known to the people and should also be used more. You can find QR codes almost anywhere, from papers to cups, from boards to billboards, or even from television to websites. These codes don't just tell us the price of something; like a search engine: it can tell us information about the object, it can spread the word about a brand, and it can change the way we interact with millions of people.

Tuesday, September 3, 2013

Social Networking and Security. . . or Lack of When Promoting Your Brand

thumb print of an unique individual
As we slowly approach the 21st century, our advanced technology becomes even more advanced. One obvious invention that many people all over the world use almost everyday is the Internet. The Internet has changed how we live our lives. We are able to message people all over the world, view information with just a click, and even start a digital life. We can start a new profile which provides information about who and what we are, also known as a brand. A brand is the "name, term, design, symbol, or any other feature that identifies one seller's product distinct from those of other sellers." As our daily lives slowly become digital, we have to promote our brand and also be aware of how others view our brand.

There are many social networking sites that allow us to create an account and be involved in the website's community. Some commonly used websites include Facebook, Twitter, and YouTube. With Facebook, we can create public and private profiles for certain audiences to view. The photos and updates we post on our profiles show the audience what kind of brand we have. If our brand gets popular enough, then it will spread through the Internet and many people will know what brand we are. Also, we can get an idea of what people think about our brand with available alert websites such as Google Alerts and Hootsuite.

The security of our profile brands are great, since we can always limit what others can see. Even though some keywords and posts can be monitored, we can see how others view us and build on that if there are any criticisms.

When starting a brand, social networking is a great tool spread the word around.

Thursday, August 29, 2013

Hello World!

hello world





My name is Ryan Lee and I am currently a student at San Jose State University. I would like to welcome everyone to my blog! Please invite your fellow students and professors to join me in this blog! A special thanks to my course instructor, Professor Debra Caires, for making all this possible!

A little about me, I am currently majoring in computer science. I have been exposed to programming languages such as Java, C, and assembly. I am still a beginner in this field, but I am hoping to better my skills with the help of my students and professors. I actually never thought I would be in this field, but after being seeing how the digital world has changed our lives, I also wanted to change everyone's lives.


Programming is great to learn because you can create almost anything you want as long as you have an idea that can change the way we interact with machines and the patience to make it into reality. With enough time and motivation, you can create programs that can change everyone's lives, from phone applications to video game editing. Even small machines in our normal lives such as the microwave is programmed! Learning programming, even a little, is a skill you will not regret.

As computer scientists, when we put our minds together, we can overcome almost every single challenge we face. As a beginning computer scientist, I believe I will be able to satisfy small projects clients may need with enough information and help.

Hope you all enjoy my posts and thanks for visiting!