CS 101 - Frequently Asked Questions, Easter 2014
- Will our society be able to live without technology and still be able to function?
Not at the level we've come to expect...and not sustaining the current population.
- It seems like there are multitudes of different brands/companies of computer hardware, but very few database/software companies. Why is this?
Software companies can be much smaller than hardware companies, since they don't need manufacturing capabilities, etc. Also, a surprising amount is open-source, provided by small teams without a office or storefront. Really, there are many many more software companies, but they aren't the big companies one would hear about. A great deal of software is simply infrastructure, used in other products but not known to the end-user. Now, because databases are important in large corporations, it makes sense that a small number of database providers exist, and in fact there used to be more but the competition for those large accounts winnowed the number down.
- What exactly is a quantum computer and how does it work?
How it works is waaaay beyond the scope of the course, but the most basic way to describe it is that our two-state bits are replaced by qubits which can have three states, based on superpositiosn of electron orbital states. I welcome improvements to this answer, and one such improvement can be found in this Scientific American article.
- What are some of the big issues computer scientists are trying to figure out today?
Have a look here to get an idea.
- Is artificial intelligence as we see it in say, Star Wars, possible? If not now, could it be in the future?
This idea generates many debates, both philosophical and practical. To tell the truth, some of things in science fiction have already occurred, while others are championed by computer scientists and technologists, and downplayed by others. Time will tell.
- With different types of programming languages being made for specific functions, such as to program a phone app or make a webpage, for simplicity, why not create one universal language for multiple tasks?
Because it would be too large for anyone to grasp! A better idea is to create a simplified language that can itself be used to create what we call domain-specific languages. Actually such a language (or rather, family of languages) already exists.
- What happens when you try to calculate pi on a computer?
Is this a trick question? It will generate as many digits of pi as you either ask it for, or for as long as you let the program run. Actually is a trick question - it has been pointed out that, if you generate enough digits of pi, you will eventually have generated the same bit patterns used in images, sound files, videos, and books, some of which are copyright protected. So in attempting to generate an infinite number of digits of pi, you may accidentally break the copyright law!
- As an economics major I have always been frustrated with the action of pulling data off online databases to graph. Although I assume the technology already exists, how difficult would it be to create a program that can automatically search multiple online databases (Bloomberg, SEC, FRED, EuroStat, etc...) and compile data into an excel file? That would be very useful in my future jobs.
I am almost certain this technology exists. It wouldn't be tremendously difficult conceptually, but I speculate it would take a team several months to get it right.
- For big companies websites, like apple or amazon, do they have people that code all those pages in a similar fashion to the way we are doing it in class, or do they have drag and drop programs like a beefed up version of wix?
Speculation on my part, but they almost surely use tools to speed up the process, and possibly drop into the raw HTML to fix things.
- I've always wondered how it is that computers are able to understand binary. I mean, I understand that they do understand binary, but how do you make a computer understand it? Do you have to program it to do so? if so, how does it understand the program if it doesn't yet understand binary?
The fundamental electrical components that make up the processor are logic gates where the one's and zero's produced can be interpreted as true/false in boolean logic. So binary is fundamental to the construction of the computer, and it is on system designers and programmers to build things people can understand out of these fundamental building blocks.
- Will the future bring open source software mainstream like Android, or will companies like Apple continue to dominate both software and hardware world's exclusively?
I think it will continue to be both.
- Is it true that some websites are created specifically for mobile phones? If so, how are those made?
Website created specially for mobile phones are made the same way as for other systems, but take into account the different screen size and input methods of mobile devices.
- Who created certain key commands for a mac(or pc), and why that particular key combination? Example: command v pastes. Why command X? (x being any particular command combination)
I have no idea!
- If I were going to get a new computer today, which should I get?
That's too broad a question. What do you want to do with it? How much power do you need, versus how much portability? I myself would get the new PowerMac.
- What is the main reason a computer crashes, and why is the memory always wiped off of it?
Many times it is an illegal instruction or an illegal memory access; be cause the system most stop, it has to be rebooted and the process of restarting clears the main memory, which does not retain its contents after the power is cycled.
- What are the best steps for someone after he/she graduates with a BS in Computer Science?
Get a job! Seriously, it depends on the person and what they want out of life and career. Ask me again in three years.
- What can you do with a Computer Science degree?
Hopefully this will be answered during the semester. It's more than just programming! There are a number of possibilities: from network and system administration, through software development and software architecting, to specialized positions in things like cybersecurity, scientific computing, and much more.
cs101/faqadvent14.txt · Last modified: 2014/05/11 12:02 by scarl