CS 221
Advanced Programming
CS 221
Introductions
- Who I am, who you are.
- You've chosen a great career path.
- The computer science major
- standard
- interdisciplinary
- The computer science minor
Thinking about Computer Science
- A person is out for a morning walk. She walks south a mile, west a mile, and north a mile, enjoying the scenery. Her reverie is suddenly disrupted when she simultaneously becomes acutely aware of two things—she is back where she started from, and there is a bear in her face. What color is the bear?
- What is computer science?
Computer science is the study of problems and their efficient soutions as programs. That is, when a problem is presented to a computer scientist, she or he solves the problem by producing a program that will accept input instances of the problem and compute the desired output for those inputs. In so doing, she or he also attempts to produce the most efficient (in terms of how long it takes the program to run on given inputs) program possible.
- What is a computer?
For our focused view of computer science given in question 2, a computer is simply a device that will carry out the instructions of any program presented to it.
- What is an operating system?
An operating system is a program. This program solves the problem of how to manage the execution of all other programs that might be presented to the computer in a way that hides lots of intricate details from programmers, such as how to get a program into the computer memory for execution,
how to access disk drives, CDs, DVDs, the keyboard, the mouse, the monitor, etc. for input and output, how to manage a file system, how to start the computer running, and so forth.
- What is a compiler?
A compiler is a program. There is a compiler for each programming language and each operating system. A compiler translates programs written in a programming language, such as Java, into the machine language of the computer on which those programs are intended to run. Computers cannot directly execute programs
written in modern high-level languages, such as Java. Instead, such programs must be translated into the machine language of the target computer. Thus, compilers solve the problem of turning programs from a high level language into programs in machine language (that do the same thing as the high level language programs were meant to do) so that they can be executed.
- What is Java?
Java is high level programming language. It is just one of many hundreds of programming languages in existence.
- List some things that seem to be emerging or currently hot topics that affect the study of computer science.