This is my final post in a series dedicated to computer science. Let me start out by saying that this class was extremely beneficial to me. It has given me a very strong foundation in many different fields. I have been looking into a career in computers, and knew that by taking this class, I would most likely make up my mind. I would either be really turned off, or turned on by the technical side of computers. I was turned on completely by it.
My first real challenge was coding in HTML. While I could use it, in the least form of the word, I could not do anything fancy with it, or make it look good. I learned how to do just that, and I was able to make a very decent webpage using only HTML. Then we moved into more of a programming feel and worked with a program called Scratch. In this we learned how to make simple animations. It was a cool little project, and turned out to be quite a lot of work for such a small product. Next on the programming block was creating and programming robots. I have done this plenty of times before, and actually owned the set that they used, so it was old hat to me. Next we moved into 3-D programming, and using a program called Alice, I was able to create little 3-D animations. It was pretty cool to mess around with, but unfortunately I did not have enough time to actually make a finished work.
I am currently using some of the hardware skills I picked up at the beginning of the year. I am in the process of upgrading my old computer. Instead of getting all the different parts and sending it off for someone else to do for a large sum of cash, I decided to do it myself, since I learned how. Should be interesting and I cannot wait to see the final work.
For those of you reading this, trying to decide whether or not to take this class. I would give it a big two thumbs up. I have greatly enjoyed this semester. While it does require work, you feel more accomplished with the work you have done than if you were simply to just sit down and write about the theory behind it all, instead of actually doing it
This week has been all about Virtual Reality. It is a very exciting topic for me, dealing with many video games that I am a fan of. The progression of these virtual reality worlds is amazing if not scary. The actual realism of the worlds and the interaction that you can have with it is mind blowing. As a project for it these next two weeks, I am going to be using a program called Alice to create my own. It should be fairly interesting.
This week we have been studying artificial intelligence. Turing’s test for a truly “intelligent” computer is to place it in a room with a number of humans, and have each converse with one another without knowing who they are conversing with, and see if they can weed out the computer. If the humans can’t tell the difference, it is deemed “intelligent”.
This has sparked a great “race”, as it could be effectively called, to create a machine that is intelligent. Many have tried, none have succeeded. The problem lies with trying to create a machine with common sense. If you ask a person a question, he will determine his answer through simple means. A computer will analyze the question to death, and come back with every possible correlation and weed them out based on relevance determined by an algorithm.
Another major difference in decision making is personal preference. Many people will make their decisions based on their own favorites, whereas a computer has a list of facts, and nothing so vague as a favorite anything.
All this together, if you asked a computer that knew it’s name was Kevin and a man named Kevin their name, They would answer the same, Kevin. (Unless the programmers did their job wrong). If on the other hand, they were asked what their favorite animal is, while Kevin might answer the red panda, the computer would likely turn in the definition of the word animal. (This is an example, the programmers could add an exception and if asked the response could be “red panda” but they would have to account for every single question that they could be asked). In addition to all this, even if there are slight mistakes, humans will automatically fix them, computers can’t. Say the question was written out and misspelled. What is your favrite aminal? A human would look at that and laugh at the mistake, then move on to answer how the question was meant. A computer would turn out an error at the misspelling.
Artificial intelligence is fascinating. And if they are ever able to create a system that accounts for all these flaws, it would be amazing to see how it is done.
This week I spent my time mainly on programming the robot I had built earlier.
During the course of the week I familiarized myself with the programming structure of the mindstorms software. After this, I programmed the robot to draw. I was able to work out drawing lines and curves. But the problem came in connecting these to look right. Eventually I was able to put together a program that had the robot write the word hi, and then reset itself. I might have been able to do a smiley face if the wheels wouldn’t have kept catching on the paper or spinning out. The amount of problems I had with it made it very frustrating.
I spent this week brainstorming my robotics project. I decided upon a drawing robot. The main task in this project then became building it. I created a simple design. It has two wheels attached to motors on the back of the main block, and two sliders out in the front. This allows for much better maneuverability and is my preferred style. The next part to work on then now that I have the frame, is the arm with the utensil. This was a lot harder than I imagined it would be. I ended up attaching it to a motor on one side of the block, then securing it the other side, while still retaining the ability to swing. This set-up allows the utensil to be lifted off or placed on the paper at will. The next challenge is to get the utensil to stay in place to be effective. I overcame this by drilling a hole in a pencil, feeding through one of the pieces, building a box around it for stability, then attaching it to my rig. It works quite well, and I can’t wait to start programming it to draw something.
This week I have been finishing writing a program in Scratch that I started last week. I don’t think I did awful on it for my first try. It was basically just emulating a battle scene using sprites. The hardest part of it in my opinion was the tedious task of trying to get all of the characters to move at all in the way they are supposed to, much less in sync. The most frustrating part was uploading all of the individual sprite pictures and rolling them into something resembling a movie. Quite boring to be blatantly honest. And after all that work, I came away with my project… which was 30 seconds long… here’s the URL http://scratch.mit.edu/projects/Plum95/2117252
This week I have been starting to write a program in scratch. It is a very entertaining program where you can create sprites, add scripts and backgrounds, and introduce user interface to make either a short animated film, or a game. It is quite fun to create sprites by using different familiar characters from either shows or games, creating abnormal scripts for them, and laugh while watching them perform tasks or say things that they were way out of their character. This week I have been familiarizing myself with the interface of the program and learning how to perform various tricks, as well as starting on my own project, next week I will be finishing that project.
Also this week I watched an hour long video by Randy Pausch on virtual worlds. There they presented a host of student’s projects that dealt with this topic. They had a special visor that allowed the user to “see” the world. If he turned his head left, the computer would rotate the image to the left. There were also various other input devices that allowed the guest to interact with the “world”. It was very fascinating to see all the different kinds of technology.
This week I finished my HTML file and uploaded it to a server. Write a page strictly in HTML was both harder and easier than I expected. It was hard in the sense that the codings required special knowledge of codes and the like, but easier in the sense that it was much easier to manipulate and get it to do more of what you want it to than a visual page design program. It was also very fun to let my creative side out a bit. Something that is getting less common as I grow older. This week we also looked at databases. They were very interesting to look at. They seemed to have, with the right technology, an infinite possibility.
Here is the URL http://pstcc11.pstcc.edu/~c1110c07/
This week we have been learning how to code websites in HTML. Coding, although time-consuming, is quite fun. I’m used to creating websites, via a program that allows you to create the site by seeing the page as is, instead of as codes. While that program is easier to just pick up and use, its uses are much more limited than HTML.
The ALS was a cool little program that would read individual commands, translate them into binary, load it into RAM, and go through various other steps in order to carry out the various commands. I found it interesting to see both the practical uses of the 1st gen. (binary) and the 2nd gen. (commands) in the storage and operating of the computer. It was cool to be able to set up a program that would work as a basic calculator. Adding subtracting and multiplying the number. It was also neat to see how to set up a program to follow a series where it would run and continue running until it hit a certain number and then stop. While these are the most basic of functions this can achieve, I see how it connects to very complex programs that would be used to run the computer. This also shows the point that the machine is separate from the function, because it will react in various ways depending on how you program it.