Wednesday, November 5, 2008

Picked-Up Article

And finally, some real-world applications of Computer Science that might be relevant to teenagers

Here are some activities that teenagers might be familiar with, listed alongside some associated challenges and what concepts in Computer Science address these challenges:

Surfing the web

  • When you type in words on a search engine's web page, how does it give you back the results so quickly? (search algorithms, parallel computing)

  • How does a search engine company go about indexing and storing information about the billions of webpages online at a given time, especially when pages are constantly being created and deleted? (web crawling, data mining, databases, parallel computing)

Playing computer games

  • How come modern games look so rad, with all of their cool 3-D effects, and how can it all be rendered in real-time as you are playing and constantly changing the in-game environment? (computer graphics)

  • How come the in-game enemies seem to be 'smart' and able to learn from your actions? (artificial intelligence)

  • How is it possible for you and dozens of other people to play online simultaneously and still have the game feel responsive most of the time? (networking, client-server architecture)

Downloading music and movies (legally, of course)

  • How come filesharing programs like BitTorrent can perform so much faster than simply downloading from a website? (networking, distributed algorithms)

  • Isn't it astounding that when you download a file, it always arrives at your computer intact in pristine condition, even though it had to travel through thousands of miles of unreliable copper wires? (reliable networking protocols, error detection and correction)

  • How can high-quality photos, audio, and video be compressed so much (1/10 to 1/100 of original size) without losing much quality? (lossy compression algorithms)

Shopping online

  • How can you be reasonably confident that nobody will steal your credit card number while you are shopping online? (network security, cryptography)

  • How can the retailer keep track of what items are in stock and report the results in real-time on their website? (databases, web programming)

  • How can the retailer accurately predict what other items you might like to buy based on what you've recently bought? (artificial intelligence, machine learning)

Using your latest awesome cell phone

  • How come cell phones can now be used for so much more than simply making phone calls ... back in my day, we just used cell phones as, well, phones (programming for embedded devices, networking and communications protocols, wireless networking)

  • How can you effectively navigate around the options and even browse the web on that tiny screen on your phone? (user interface)

Neurotically updating your MySpace and Facebook pages and stalking other people's profiles

  • How come it's so easy and enjoyable to simply browse around and get lost for hours on these sites? (user interface)

  • How can these sites recall, store, and visualize interesting social networking relationships? (databases, search, visualization)

  • What steps do these sites take and what options do they provide to you to ensure that your privacy is maintained? (security models)

Traveling on an airplane

  • As modern planes become more and more automated, with more of their subsystems being controlled by software components, how can you feel safe flying on a machine where a single software bug could jeopardize hundreds of lives? How can we find difficult-to-squash bugs and give guarantees that software is functioning correctly? (software reliability, program analysis)

  • How do air traffic controllers manage to constantly direct hundreds of planes while under high-stress conditions? How can computers aid them in doing their jobs so that passengers can enjoy safe and timely flights? (user interface, communications, networking)

  • When purchasing tickets online, how is it possible for the computer system to search through millions of possible combinations of routes to give me the best deal on my tickets? (algorithms, search, parallel computing)

  • How come the self-check-in kiosks are so easy to use and much more efficient than waiting in line for people to check you in? You just swipe a credit card, and you're all set! (user interface, networking, databases)

Source: http://www.stanford.edu/~pgbovine/computer-science.htm

No comments: