Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Fundamentals of Computer Science I Lecture 1 1 This Lecture… Chapter 1: Introduction to computer science Computer components Computer hardware Computer software Programming languages Software development method 2 Figure 1.2 Computer components 3 Computer Hardware Secondary Mem: Stores data and programs (hard/floppy disk, CD) Modem: for network connections Main Mem: Stores information processed by CPU, e.g., operating system, applications Input Devices: Supply information to computers CPU: Making decisions Performing computations Delegating input/output requests Output Devices: Allow people to receive information from computers 4 Computer Software Operating system E.g. Windows®, Unix® Controls the interaction of system with the user Receiving user commands, collecting input, conveying output Managing allocation of memory, processor time, file system, and other resources Controls hardware interactions 5 Computer Software (Continue) Applications Software Does the “real” work Common application software Word processors Desktop publishing programs Spreadsheets Presentation managers Drawing programs 6 Programming Languages Machine Language Most fundamental language of the computer Unique for each processor type Binary 0s and 1s that specify what to do Assembly language Computer operations represented by mnemonic codes Variables have names instead of binary memory address 7 Table 1.2 A Program in Machine and Assembly Language 8 High - Level Languages Resemble human language C++, C, Pascal, FORTRAN, Ada a = a + b; More compact and human understandable than machine language Must be translated into machine language 9 Processing a High-Level Language Program Set of programs used to develop software A key component is a translator Examples Compiler g++, Borland C++®, Microsoft Visual C++® Other programs needed Editor Linker Loader 10 Processing a Program Editor used to enter the program Compiler translates the source program Like minimal word processor Creates source program file Such as “emacs peas1.cpp” Displays syntax errors Creates (usually) temporary object code file Such as “g++ -Wall -ansi -pedantic -o peas1 peas1.cpp” Linker/Loader to combine object file with other object files and execute program Such as “./peas1” 11 Executing a Program CPU Special instructions used to examines each program instruction in memory sends out command signals required to carry out the instruction input data into memory for the program to use output data to display or printer (or other device) Creates final executable program 12 Software Development Method Problem solving activity Phases: Problem analysis Design Implementation Testing Maintenance 13 Software Development Method Problem Analysis Identify data objects Determine Input / Output data Constraints on the problem Design Decompose into smaller problems Top-down design (divide and conquer) Develop Algorithm (Desk check) Algorithm refinement 14 Software Development Method Implementation Testing Converting the algorithm into programming language Verify the program meets requirements System and Unit test Maintenance All programs undergo change over time 15 Applying the Software Development Method Case Study: Converting Miles to Kilometers Problem Your summer surveying job requires you to study some maps that give distances in kilometers and some that use miles. You and your coworkers prefer to deal in metric measurements. Write a program that performs the necessary conversion. 16 Case Study Analysis The first step in solving this problem is to determine what you are asked to do. You must convert from one system of measurement to another, but are you supposed to convert from kilometers to miles, or vice versa? The problem states that you prefer to deal in metric measurements, so you must convert distance measurements in miles to kilometers. 17 Data Requirements Problem Input miles distance in miles Problem Output kms the distance in kilometers Relevant Formula 1 mile = 1.609 kilometers 18 Design Formulate the algorithm that solves the problem. Algorithm 1. Get the distance in miles. 2. Convert the distance to kilometers. 3. Display the distance in kilometers. Algorithm Refinement 2.1 The distance in kilometers is 1.609 the distance in miles Desk check! 19 Implementation #include <iostream> using namespace std; int main( ) { const float KM_PER_MILE = 1.609; float miles, kms; cout << “Enter the distance in miles: “; cin >> miles; kms = KM_PER_MILE * miles; cout << “The distance in kilometers is “ << kms << endl; return 0; } 20 Testing Test with input data for which you can easily determine the expected results E.g. 10 miles should convert to 16.09 kilometers 21 Object Oriented Programming C++ derived from C by Bjarne Stroustrup Popular because of reuse Classes Objects Methods Organized in a Hierarchy Super Classes Sub Classes 22 23 Object Oriented Design Abstraction Extract the relevant properties of an object while ignoring inessential details Encapsulation Breaking down an object into parts, hiding and protecting its essential information, and supplying an interface to modify the information in a controlled and useful manner 24