Luke Sieben - CS100W
A blog for specific technical topics for my CS100W class at San Jose State University.
Tuesday, December 10, 2013
Scientific Computing: Useful tool.
"Wolfram Alpha is an astonishingly powerful piece of software that helps you find nearly any piece of factual information you could want" (read more at: http://www.businessinsider.com/wolfram-alpha-2011-10). It can be used to answer many different types of problems ranging from what temperature the weather is in Timbuktu to your Calculus homework. However, it is still a work in progress as it is not smart enough to answer any questions you ask it because of the enormous difficulty involved in interpreting the text a user enters into it. However, there is no need to be upset when Wolfram Alpha says that it does not understand your question as Wolfram Alpha has an example page: http://www.wolframalpha.com/examples/ for this purpose.
And so if we wanted to find the format we need to use for double integrals problems we can click on the 'Calculus' link beneath the 'Mathematics' text and image. From there we can click on the 'Integrals >>' button. Once there we can do a simple search in our web browser to find the format we need for a double integral problem which is:
int (x^2 y^2 + x y^3) dx dy, x=-2 to 2, y=-2 to 2
which gives us an answer of:
256/9
And then we can compare use Wolfram Alpha to solve one that we did by hand to make sure that we got the right answer in the case that we are working on is in a textbook that only has answers to the odd numbered problems.
Sunday, December 8, 2013
Computer Graphics: How you are helping out.
And to go further into what the above image is, it is "reCAPTCHA [which] is a free CAPTCHA service that helps to digitize books, newspapers and old time radio shows." (read more at: http://www.google.com/recaptcha/learnmore). And what this means is that by solving these CAPTCHAs you are helping out programs in their conversion process of images into text so that all books can be available online in the future so that we do not lose them as in the case of the burning of the Library of Alexandria in which a considerably amount of knowledge was lost due to a lack of additional copies of works.
Sunday, December 1, 2013
Communications and Security: How to make good passwords.
But in reality these kinds of passwords are terrible because they are hard to remember. So you will most likely resort to writing down your password down on a piece of a paper so that you can log on to any of your various accounts. This is bad because if you lose that piece of paper you will lose access to all of your accounts since you can't remember any of them due to all the mixing and matching of letters.
![]() |
| xkcd: Password Strength Comic |
Sunday, November 24, 2013
Artificial Intelligence: The future.
Artificial intelligence has always been something that has fascinated me. Just the very idea that we can "...[simulate] human intelligence processes by machines" (Read more at: http://searchcio.techtarget.com/definition/AI) makes me extremely excited to see what the future will bring. Admittedly I have dabbled in it very briefly by making my own Tic Tac Toe program in which users can play against the computer. However, the computer will always play the very best moves so that it never loses which makes the game boring for the player as people occasionally make mistakes while playing Tic Tac Toe that allow for their opponent to secure the win.
Albeit the artificial intelligence used in voice recognition technology like Siri makes mistakes more often than not. And that makes me doubtful of whether or not we will be able to make artificial intelligence extremely advanced. On the other had, recent advancements like Google's self-driving car has me super excited for what the future will bring us. Because by doing something as complicated as making a program that can drive a car around safely without any human intervention gives me faith in the diligence of Computer Scientists to make new breakthroughs in techniques for constructing artificial intelligence programs.
And then we will finally reach a point where everything will be automated for us in which we can sit back and relax knowing that we won't have to work another day in our life unless we choose to do so, although I can't imagine many of us wanting to work. So instead we will be able to spend our time focused on obtaining happiness by exploring all of the wonderful things life has to offer us.
Sunday, November 17, 2013
History of Computer Science: From my perspective.
The first programming class I took was an Intro to Java course. My teacher started off the course by giving us a brief overview of the history of computer science. And I still remember my teacher talking about how people would have to punch cards by hand in order to make programs which sucked because if you made a single mistake you would have to punch the card all over again.
So thankfully we did not have to do that and could instead focus on the logic of the programs we wrote because 'The Java programming language is a high-level language...' (Read more at: http://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html). And the first program my teacher showed me was a simple Hello World program which is a program that simply prints out 'Hello World!' for a user to read. And the example code intimidated me greatly as there seem to be a lot of text for a relatively simple task. It's code was the following:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
But I got the hang of writing programs in Java after a couple of weeks of doing basic assignments. Two years later, I took a class in C which was very easy to understand because Java based its syntax off of C. But then I got to pointers which are basically things that point to the location of others things which had me scratching my head for a really long time until it finally clicked after spending hours thinking about it. So I was thankful that my first programming course did not require me to know how to work with pointers. And C's version of a simple Hello World program is:
#include <stdio.h>
int main(void)
{
printf("Hello World!");
return 0;
}
After taking a short break, I took a class in Assembly which I found to be really hard as you had to keep track of all of the registers named eax, ebx, ecx, edx, etc in your head. So this class gave me a ton of respect for the people who made high level languages as they make programming more accessible. And it's version of a simple Hello World program is:
INCLUDE Irvine32.inc
.data
prompt BYTE "Hello World!",0
.code
main PROC
mov edx, OFFSET prompt
call writeString
main ENDP
END main
Which is really not that simple at all. And then I started to learn Python which was really easy compared to the other languages, as it's syntax is pretty similar to Java/C. And a simple Hello World program can be written in Python as:
print("Hello World!")
Which I think is super cool because it's so simple compared to the rest of the languages I have learned about.
After taking a short break, I took a class in Assembly which I found to be really hard as you had to keep track of all of the registers named eax, ebx, ecx, edx, etc in your head. So this class gave me a ton of respect for the people who made high level languages as they make programming more accessible. And it's version of a simple Hello World program is:
INCLUDE Irvine32.inc
.data
prompt BYTE "Hello World!",0
.code
main PROC
mov edx, OFFSET prompt
call writeString
main ENDP
END main
Which is really not that simple at all. And then I started to learn Python which was really easy compared to the other languages, as it's syntax is pretty similar to Java/C. And a simple Hello World program can be written in Python as:
print("Hello World!")
Which I think is super cool because it's so simple compared to the rest of the languages I have learned about.
Sunday, November 10, 2013
File Sharing: Its importance.
'...file sharing is the practice of making files available for other individuals to download. It can be as simple as sharing a file for general consumption via My WebSpace or enabling file sharing on your computer’s operating system so that you can access your home computer files at work.' (Read more at: http://www.cio.wisc.edu/security-filesharing.aspx). But the idea that comes up in most people's head as they hear the word 'file sharing' is that people can illegally download free stuff off the internet using a torrent program such as utorrent (Download link: http://www.utorrent.com/downloads). And they are right because with a quick Google search one can easily find pretty much anything online for free and with a couple of clicks be on their merry way to having a copy of the file onto their computer.
And even though that may be the way a vast majority of user's use such programs, file sharing programs should not be frowned upon as they are very useful in distributing legitimate files across the internet to help ease the burden of paying for servers for people to download files from. A good examples of this would be Ubuntu (Download link: http://www.ubuntu.com/download/alternative-downloads) which is a free Operating System that user can use on their computers. Another example of this would be the adult game Katawa Shoujo (Download link: http://www.katawa-shoujo.com/download.php) that was created by various individuals on the internet which utilized file sharing in order to get their game out to the public faster.
Sunday, November 3, 2013
Data Structures: What are they for?
'A data structure is a group of data elements grouped together under one name. These data elements, known as members, can have different types and different lengths.' (Read more at: http://www.cplusplus.com/doc/tutorial/structures/). And what this basically means is that a programmer can create a single object to hold a bunch of different types of things in one place. And a good example of this kind of data structure would be the files you use on your computer as that is something that you interact with in your everyday life. The data structure aspect comes from the way in which your files store all kinds of information about themselves in addition to what you or somebody else put into them, like the date, or title/artist/duration of a music file.
Data structures are also used in another way to help programmers make their lives simpler by hiding away the implementation details. And an example of this could be the way in which your music playing program uses a list data structure to hold all of your music files. And by using this type of data structure the people who write music playing programs can easily add features to allow you to sort your music in a bunch of different ways without worrying about the implementation details about a list by just adjusting the sort function their list data structure uses to be able to sort your songs in alphabetical order by artist or track name, or by the amount of times you played a song so you can easily play your favorite song.
Subscribe to:
Posts (Atom)







