Friday, November 29, 2013

Communication and Security: Protect Yourself!

Securing your computer is like protecting your house. Imagine if someone breaks into your property and steals your belongings. In computer world, you could be hacked into. That is where cyber security comes to your rescue and protects your property. Cyber security (or computer security) is the protection of computing systems and networks for individuals, families, governments, businesses, and educational institutions. Similar to my hacking post, “Hacking: Hackers and Crackers,” your computer would be hacked if cyber security does not exist. In this post, I will enlist the risks that you need to take precaution against and realize that cyber security is important to you. For more information on this topic, you can also go to “Cybersecurity: Everyone’s Responsibility” on www.cisco.com.

Every individual who owns a computer needs to recognize the risks that exist in the cyber world. Taking care of our personal information responsibly is the key to computer security. Below, I will be listing some risks that exist in the cyber world and some actions that we as computer users must take.

Phishing: Fraudsters gain access to our personal and financial information by one wrong click made on our side. Those malicious soliciting emails that we get, which seem to be from reputable sources are actually baits. When we click and open those emails, if we provide our emails, these fraudsters will gain access to our accounts. How should we prevent it? The answer would be to never open messages or attachments from people or sources you do not know.

Spyware: Two key elements one must know about spyware as: 1) They download themselves themselves without permission and 2) they take control of your computer.

Dell provides the following steps for us to protect ourselves from spyware:
    1. “Adjust your browser security settings for your Internet zone”
    2. “Practice your safe web-surfing habits and download cautiously”
    3. “Install and use anti-spyware software”
    4. “Install a firewall with outbound pattern”

Password protection: Create difficult multi-letter, multi-number, and multi-character passwords. Change your passwords regularly and don’t make them easy to guess, such as your name or date of birth.

Social media: Do not compromise your identity or safety by spilling your information on a social media website.

Plan Ahead: Store all of your records on an external hard drive. This will assure safety for your credit and school records, family photos, and business information.

The five steps mentioned above are like a lock to your house or car. As for your computer, you have to either log off or change your password to keep your data safe. Cyber security is always there to keep you from danger in your computer system! Use it!


References

1) “Cybersecurity: Everyone’s Responsibility.” Cisco. 2010. Web. 25 Nov. 2013. <http://www.cisco.com/web/strategy/docs/education/C45-626825-00_Cyber_Security_Responsibility_AAG.pdf>

2) “Cyber Security.” Zen Internet. 2013. Web. 26 Nov. 2013. <http://www.zen.co.uk/blog/cyber-security/>

3) “Prevent Spyware.” Dell. 2013. Web. 27 Nov. 2013. <http://support.dell.com/support/topics/global.aspx/support/security/security_spyware_help?c=us&l=en&s=gen&~mode=popup&DoNotRedirect=y#WhatCanIDotoPreventMyComputerfromGettingInfectedwithSpyware?>

Thursday, November 21, 2013

Artificial Intelligence: The Next Generation Brain

John McCarthy, an American computer scientist, defines artificial intelligence (aka AI) as “the science and engineering of making intelligent machines.” I think what McCarthy really means that it is the goal of building machines that perform normal tasks with the requirement of human intelligence. I must agree with him that we will need to set long-term goals to simulate machines with human intelligence for future generations. Let’s talk about technological machines that were developed by artificial intelligence.

Self-driving cars: Self-driving cars are autonomous vehicles that are designed to drive without a human operator. In the latest generation of automobiles, AI has been developed and used to help the driver in steering the wheel and hitting the brakes to avoid accidents and collisions. For example, in the photo down below illustrates a Google self-driving car. Another feature would be setting your destination in the software and never using your hands on the wheel. Nowadays, AI helps drivers with parallel parking. Set the car on full control and it will calculate the distances between two cars and parallel park itself. This is how AI helps in self-driving cars.


Supercomputers: Supercomputers are highly expensive and powerful for scientific computations. For example, IBM Watson is a room-sized supercomputer which answered all of the questions on “Jeopardy.” This was a stunning revelation for the future of technology.






iPhone Siri: Siri was invented as the artificially intelligent voice control system for iPhone 4S, 5S, etc. For example, when one asks Siri for directions to restaurants/cafes in San Francisco, it immediately provides directions and options for the command it has received. Siri is one of this generation’s AI.

With AI, our world will become more advanced where machines own human intelligence and make our lives easier in the future.


References

 1) Best, Jo. “IBM Watson: How the Jeopardy-Winning Supercomputer was Born, and What It Wants to Do Next." 2013. Web. 21 Nov. 2013. <http://www.techrepublic.com/article/ibm-watson-the-inside-story-of-how-the-jeopardy-winning-supercomputer-was-born-and-what-it-wants-to-do-next/>

 2) Epstein, Zach. “Google Self-Driving Cars.” BGR. 2013 Aug. 23. Web. 19 Nov. 2013. <http://bgr.com/2013/08/23/google-self-driving-cars/>

3) Gillen, Paul. "IBM's Watson Jeopardy Challenge is the Greatest B2B Campaign Ever." Social Media B2B. 2011 Feb. 23. Web. 21 Nov. 2013. <http://socialmediab2b.com/2011/02/greatest-b2b-campaign-ever-ibm-watson-jeopardy/>

4) Ritchie, Rene. “Apple Announces SIRI artificial intelligence voice control for iPhone 4S.” Imore.com. 2011 Oct. 4. Web. 19 Nov. 2013. <http://www.imore.com/apple-announces-siri-artificial-intelligence-voice-control-iphone-4s>

5) “What is Driverless Car?” WhatIs.com. Sept. 2011. Web. 19 Nov. 2013. <http://whatis.techtarget.com/definition/driverless-car>

Friday, November 15, 2013

History of Computer Science: Programming Paradigms

There are many historical topics that we are aware of: Julius Caesar, American Revolution, Wolfgang Amadeus Mozart, etc. However, there is one kind of history that we have never heard of before, and that is Computer Science History. It was not easy to come up with an excellent idea for this subject...but then it hit me! When I think of computer science history, I immediately think of programming paradigms.

According to Wikipedia, programming paradigms are “fundamental styles of computer programming and a method of building structures and elements of computer programs." In my programming paradigms class (CS 152), we are learning about various programming languages before Java. Let me describe the four main paradigms and give you examples of programming languages on each paradigm.

1) Imperative Programming: A programming paradigm that “describes computation as statements that change a program state”. Examples: FORTRAN, Pascal, C, etc.



2) Functional Programming: A programming paradigm that “treats computation as the evaluation of mathematical functions and avoids state and mutable data.” Examples: Common Lisp, Scheme, etc.

Lisp                                                                              Scheme






3) Object-Oriented Programming: A programming paradigm that “represents concepts as “objects” that have data fields and methods.” Examples: C++, Smalltalk, etc.

C++                                                                                                          Smalltalk











4) Logic Programming: A programming paradigm that is based on symbolic logic. Examples: Prolog (My favorite programming language) and Datalog.
                 
Prolog                                                                                                        Datalog
There are two strong reasons as to why I prefer Prolog. First, it is simply expressible and the logic clicks in my mind. Second, I have a knack in writing Prolog rules and queries.



If you want to study programming paradigms, take a copy of the book called Programming Languages: Principles and Practice by Kenneth C. Louden and Kenneth A. Lambert. It takes a lot to learn programming paradigms, but it’s a learning process of understanding the concepts and the logic within them.  

Works Cited

1) “15 Useful Mac OS X Text Editors.” Dreamcss. Web. 15 Nov. 2013. <http://blog.dreamcss.com/wysiwyg-editor/mac-os-x-text-editors/>

2) “Classification of the Principal Programming Languages.” Universite Catholique de Louvain (UCL). Web. 12 Nov. 2013. <http://www.info.ucl.ac.be/~pvr/paradigms.html>

3) Collingbourne, Huw. “Is Ruby the New Smalltalk?” SapphireSteel Software. 23 Apr. 2007. Web. 15 Nov. 2013. <http://www.sapphiresteel.com/Blog/Is-Ruby-The-New-Smalltalk>

4) “Datalog Educational System.” SourceForge.net. 2013 Nov. 14. Web. 15 Nov. 2013. <http://www.fdi.ucm.es/profesor/fernan/des/>

5) Kabbaj, Adil. “Prolog+CG GUI.” Jan. 2009. Web. 15 Nov. 2013. <http://amine-platform.sourceforge.net/component/Guis/PrologPlusCGGUI.htm>

6) Ott, Alex. “Support for the Scheme Programming Language.” 2011. Web. 15 Nov 2013. <http://alexott.net/en/writings/emacs-devenv/EmacsScheme.html>

7) “Programming Paradigms.” Wikipedia, the Free Encyclopedia. 12 Nov. 2013. Web. 15 Nov. 2013. <http://en.wikipedia.org/wiki/Programming_paradigm>

8) “What is high-level language?” Webopedia: Everything You Need to Know is Right Here. Web. 15 Nov. 2013. <http://www.webopedia.com/TERM/H/high_level_language.html>

9) Wikimedia Commons. 14 Feb. 2013. Web. 15 Nov. 2013. <http://commons.wikimedia.org/wiki/File:Devcpp5110.png>

Friday, November 8, 2013

File Sharing: Dropbox

File sharing is easy and convenient for everyone through the Internet. File sharing, based on the Internet use, can be done through Google Drive, SkyDrive, DropBox, and etc. First, I love file sharing because I can sync my information to a cloud environment, which is digitally stored into my Mac OSX laptop, iPhone, and iPad. My most favorite file-sharing service of all time is DropBox, an easy functional cloud service for storing non-personal data through the internet. Let me explain to you why DropBox is easy to synchronize your files for personal and business use.


On a daily basis, I use DropBox to upload my photographs from my iPhone and download my files on my Mac. One advantage of DropBox is that users no longer need to attach files to the content of the email. By simply downloading information/files into your DropBox account, your are giving your friends, colleagues, and family the opportunity to access them as they please. According to the blog, “Why I Love DropBox: The Top Benefits of Using DropBox (File Storage & Sharing),” it has the ability to share a Dropbox folder to the user’s contacts for both personal and business world. Another impressive element in DropBox is that when you create a folder with DropBox in the Internet, you can sync your files in there and it will automatically be saved online.The next advantage with DropBox is that if you have access to the Internet, no matter where in the world you are, you can retrieve and read your saved documents. This means you do not have to carry along a personal computer with files stored on it. Your handy-dandy smartphone will give you the comfort of retrieving your data.


With DropBox and its accessibility, I have the advantage of saving my files, uploading my photos, and creating folders into my Finder window. As I see it, this is the next generation of file sharing.

Works Cited
  1. Cabrera, Pauline. “Why I Love DropBox: The Top Benefits of Using DropBox (File Storage & Sharing).” TwelveSkip. 24 Mar. 2013. Web. 8 Nov. 2013. <http://www.twelveskip.com/resources/tools/247/why-i-love-dropbox-the-top-benefits-of-using-it-file-storage-sharing>
  2. Beach, Stormy. “A New DropBox Beta App is Available, Adds Photo Improvements and a Opt in for Direct Beta Builds.” AndroidSpin. 21 Dec. 2012. Web. 8 Nov. 2013. <http://androidspin.com/tag/dropbox/>
  3. chrisbowler. “Extend the Web with DropBox.” AppStorm. 21 Sept. 2009. Web. 8 Nov. 2013. <http://web.appstorm.net/reviews/file-management/extend-the-web-with-dropbox/>

Friday, November 1, 2013

Data Structures: Binary Search Trees (BSTs)


Who doesn’t like binary search trees, or BSTs? They are my favorite data structures. According to Wikipedia, a binary search tree is “a binary tree data structure which has the following properties:
  • The left subtree of a node contains only nodes with keys less than the node's key.
  • The right subtree of a node contains only nodes with keys greater than the node's key.
  • The left and right subtree each must also be a binary search tree.
  • There must be no duplicate nodes” (1).

The reason that I like binary search trees is that you can search a binary search tree for a specific key with a recursive algorithm. There are many examples of operations that are used for binary search trees, but here is one from Wikipedia that shows the search operation (1):

function Find(key, root):
    current-node := root
    while current-node is not Null do
        if current-node.key = key then
            return current-node
        else if key < current-node.key then
            current-node := current-node.left
        else
            current-node := current-node.right


Of course, there are other algorithms that are based in the BSTs, such as insertion, deletion, traversal, and sort.

These algorithms are used to form an abstract of sets, multisets, and associative arrays in the binary search tree.

There is no need to tell that we computer science/computer engineering/software engineering majors in San Jose State University understand the knowledge of binary search trees in various programming languages, especially Java.

To wrap it up, my main reason for liking binary search trees is that I understand the algorithms very well and enjoy the practices of depth-first traversal: in-order, preorder, and postorder.


Works Cited

1) “Binary search tree.” Wikipedia, the Free Encyclopedia. Wikimedia Foundation, Inc.
          19 October 2013. Web. 1 November 2013. <http://en.wikipedia.org/wiki/Binary_search_tree>