Sei sulla pagina 1di 3

DRAFT

DO NOT DISTRIBUTE

CSE115 Course Notes


Fall 2010 revision
C. Alphonce and A. Decker 7/30/2010

CSE115 Course Notes



Lesson 1: Preliminaries
This text introduces you to software development, in particular computer programming. Understanding how to write computer programs, and how computer programs are executed by a computer, offers an introduction to the fields of computer science and computer engineering. The fields of computer science and computer engineering are very broad, offering many different areas of specialization. Whatever your interests are, whether they lie primarily in hardware or software, or theory or applications, computer science and computer engineering have something to offer. Hardware refers to the physical computer and its components. At the core of a modern digital computer is a central processing unit (CPU) and random access memory (RAM). The CPU is responsible for carrying out computations specified by a computer program. The RAM stores both the computer program and the data which the computer program is processing. RAM is volatile memory, meaning that it stores information only so long as it has power. If the computer is turned off, everything stored in RAM is lost. For this reason computers have long-term storage, often in the form of a hard drive. A hard drive stores information in a way which is not dependent on a continuous power source. Programs and data are loaded into RAM from a hard drive when the computer is first turned on, or when an application is launched. Software refers to the programs which run on a computer. A very important program is the operating system, which provides basic services to other programs running on the computer. Popular operating systems include Windows, Linux and OS-X. An operating system allows a computers hardware to multitask: keep several programs in RAM at once, and let each one process for a short period of time before switching to another program, giving the impression that multiple programs are running all at the same time (such as your operating system, a web browser, a word processor and a chat client). Other programs are started only when the user of the computer runs them. Examples of such programs include a web browser, an e-mail client and a photo viewer. The theory of computing deals with issues such as the limits of computation (there are problems which simply cannot be solved using a computer) and the efficiency of computations. The field encompasses programming and the development of software systems (which you will learn about in courses like programming courses, data structures courses, programming language courses and software engineering courses), theoretical aspects of computation (which you will learn about in courses like data structures and algorithms courses, as well as theory courses), the hardware which actually performs computations (which you learn about in courses such as digital systems and computer architecture courses), how computer systems themselves are structured, managed and interact with the 2009 C. Alphonce and A. Decker Page 2

CSE115 Course Notes


outside world (which you learn about in courses such as embedded systems courses, operating system courses and networking courses), how to work with very large amounts of data effectively (which you learn about in courses such as data structures and algorithms courses, as well as database courses), and applications of computing (such as computer vision, knowledge representation and reasoning, machine learning, and more). Not all aspects of the field are technical. Building real software systems, for example, involves quite a bit of social understanding: software systems are used by people, so an understanding of how people use and interact with computer systems is necessary. Moreover, software systems are sometimes developed by individuals, but they are more often developed by teams of people, working together following different interaction models. Understanding how to manage people to effectively cooperate in building a large and complex software system is a very interesting topic in its own right. From here on in we will focus mostly on programming, or how we instruct a computer to carry out some computation for us. Understanding how to do this is important both for those interested in computer science and computer engineering. It is important to computer scientists because computer science is itself focused on computation. Programming a computer involves expressing a computation in a way that is understandable to a computer, a computation machine. It is important to computer engineers because the goal of computer hardware is to run computer software. Moreover, much work of computer engineers is done via software, through simulation and tools which allow the hardware to be specified and verified in software (which is relatively inexpensive and easy to change) before it is committed to hardware (which is expensive and difficult to change).

2009 C. Alphonce and A. Decker

Page 3

Potrebbero piacerti anche