Presentation is loading. Please wait.

Presentation is loading. Please wait.

Invitation to Computer Science 6th Edition

Similar presentations


Presentation on theme: "Invitation to Computer Science 6th Edition"— Presentation transcript:

1 Invitation to Computer Science 6th Edition
Chapter 9 Introduction to High-Level Language Programming

2 Objectives In this chapter, you will learn about:
The language progression A family of languages Introduction to Java Virtual data storage Statement types Invitation to Computer Science, 6th Edition

3 Objectives (continue)
In this chapter, you will learn about: Two examples in five-part harmony Feature analysis Meeting expectations Managing complexity Object-oriented programming Graphical programming Software engineering Invitation to Computer Science, 6th Edition

4 The Language Progression
Using computers to solve problems Often involves writing programs in a high-level programming language Invitation to Computer Science, 6th Edition 4

5 Where Do We Stand? Early days of computing Later decades
Programmers were satisfied with assembly language Programs mostly written by very technically oriented people Later decades Programmers demanded a more comfortable programming environment Programs were now also written by “nontechie” people Invitation to Computer Science, 6th Edition

6 Where Do We Stand and What Do We Want?
Disadvantages of assembly language Programmer must “manually” manage the movement of data items Programmer must take a microscopic view of a task, breaking it down into tiny subtasks at the level of what is going on in individual memory locations Assembly language program is machine specific Statements are not natural-language-like Invitation to Computer Science, 6th Edition 6

7 Where Do We Stand and What Do We Want? (continued)
Expectations of a program written in a high-level language Programmer need not manage the details of the movement of data items within memory The programmer can take a macroscopic view of tasks, thinking at a higher level of problem solving Invitation to Computer Science, 6th Edition

8 Getting Back to Binary Compiler Linker
Converts high-level language instructions into machine language instructions Linker Inserts requested object code from code libraries into the object code for the requesting program Invitation to Computer Science, 6th Edition

9 Figure 9.1 Transitions of a High-Level Language Program
Invitation to Computer Science, 6th Edition

10 A Family of Languages Procedural languages
Program consists of sequences of statements that manipulate data items Follow directly from the Von Neumann computer architecture Random access memory stores and fetches values to and from memory cells Invitation to Computer Science, 6th Edition

11 Two Examples in Five-Part Harmony
Favorite number Figure 9.2 shows pseudocode algorithm Algorithm implemented in Ada (Figure 9.3), C++ (Figure 9.4), C# (Figure 9.5), Java (Figure 9.6), and Python (Figure 9.7) Invitation to Computer Science, 6th Edition

12 Figure 9.2 Pseudocode Algorithm for Favorite Number
Invitation to Computer Science, 6th Edition

13 Figure 9.3 Ada Program for Favorite Number
Invitation to Computer Science, 6th Edition

14 Figure 9.4 C++ Program for Favorite Number
Invitation to Computer Science, 6th Edition

15 Figure 9.5 C# Program for Favorite Number
Invitation to Computer Science, 6th Edition

16 Figure 9.6 Java Program for Favorite Number
Invitation to Computer Science, 6th Edition

17 Figure 9.6 Java Program for Favorite Number (continued)
Invitation to Computer Science, 6th Edition

18 Figure 9.7 Python Program for Favorite Number
Invitation to Computer Science, 6th Edition

19 Introduction to Java: A Simple Java Program
Comments Give information to human readers of code Class header Announces that a class is about to be defined Class A collection of methods Method A section of code that performs a service Invitation to Computer Science, 6th Edition

20 A Simple Java Program Invitation to Computer Science, 6th Edition

21 Running a Java Program File containing the Java code
Same name as the class File extension .java Example: TravelPlanner.java Running a Java program Program compiled Example: File TravelPlanner.class created Translation to object code completed; program linked, loaded, and executed Invitation to Computer Science, 6th Edition

22 Virtual Data Storage Identifiers Keyword
Names of variables, methods, classes, packages and interfaces. just ways of referring to them. Keyword Has a special meaning in Java Java is a case-sensitive, free-format language Variable A named location in memory Must be declared before it can be used a free-form language is a programming language in which the positioning of characters on the page in program text is insignificant. Invitation to Computer Science, 6th Edition

23 Some of the Java Primitive Data Types
Invitation to Computer Science, 6th Edition

24 Virtual Data Storage (continued)
An array Groups together a collection of memory locations, all storing data of the same type Figure 8.5 A 12-Element Array Hits Invitation to Computer Science, 6th Edition

25 Statement Types Input/output statements Input statement
Collects a specific value from the user for a variable within the program Output statement Writes a message or the value of a program variable to the user’s screen or to a file Invitation to Computer Science, 6th Edition

26 Statement Types (continued)
Assignment statement Assigns a value to a program variable Control statement Directs the flow of control Can cause it to deviate from the usual sequential flow Invitation to Computer Science, 6th Edition

27 Input Statements A prompt Console class
A message that tells the user what kind of input the program wants Console class Not a standard Java class; written for this book Can be used to handle both the prompt and the retrieval of the value in one statement Invitation to Computer Science, 6th Edition

28 Input Statements (continued)
Methods readInt readDouble readChar Syntax variable1 = Console.readInt(prompt); variable2 = Console.readDouble(prompt); variable3 = Console.readChar(prompt); Invitation to Computer Science, 6th Edition

29 Managing Complexity: Divide and Conquer
Divide the problem into small pieces In a computer program Divide the code into modules or subprograms, each of which does some part of the overall task Empower these modules to work together to solve the original problem Invitation to Computer Science, 6th Edition

30 Figure 8.20 Structure Charts
Invitation to Computer Science, 6th Edition

31 Using Methods Method A module of code in Java
Named using ordinary Java identifiers By custom, name starts with a lowercase letter Invitation to Computer Science, 6th Edition

32 Using Methods (continued)
Two types of methods void method Does not pass any value back to the main method nonvoid method Returns a single new value back to the main method Overall form of a method invocation method-identifier(argument list) (same class) class-identifier.method-identifier(argument list) (different class) Invitation to Computer Science, 6th Edition

33 Eg public class TravelPlanner { public static void main(String[] args)
int speed = 1; double distance = 0; double time; speed = Console.readInt("Enter speed in mph:"); distance = Console.readDouble("Enter your distance in miles;"); time = distance/speed; System.out.print("At " + speed + "mph, it will take " + time + "hours to travel " + distance + " miles"); } Invitation to Computer Science, 6th Edition

34 Writing Methods General form of the method header
scope-indicator return-indicator identifier(parameter list) Arguments in Java are passed by value A variable declared within a method can be used only within that method Return statement Syntax return expression; Invitation to Computer Science, 6th Edition

35 Figure 9.27 Some Java Terminology
Invitation to Computer Science, 6th Edition

36 Eg public class TravelPlanner { public static void main(String[] args)
int speed = 1; double distance = 0; double time; speed = Console.readInt("Enter speed in mph:"); distance = Console.readDouble("Enter your distance in miles;"); time = distance/speed; System.out.print("At " + speed + "mph, it will take " + time + "hours to travel " + distance + " miles"); } Invitation to Computer Science, 6th Edition

37 Output Statements Output to the screen The string can be
System.out.println(string); The string can be Empty System.out.println(); Literal string System.out.println("Here's your answer." ); Composed of two or more items System.out.println("Give me " + 5); Invitation to Computer Science, 6th Edition

38 The Assignment Statement
General form variable = expression; Expression is evaluated first; the result is written into the memory location specified on the left Invitation to Computer Science, 6th Edition

39 The Assignment Statement (continued)
Examples B = 2; Suppose that B is an integer variable A = B + C; Suppose that A, B, and C are integer variables Letter = 'm'; Suppose that Letter is a variable of type char Invitation to Computer Science, 6th Edition

40 Initialize variable as soon as they they declared, like:
Type casting: happen when an integer value is assigned to a double value. Initialize variable as soon as they they declared, like: int count = 0; Invitation to Computer Science, 6th Edition

41 Control Statements Types of control mechanisms Sequential
Instructions are executed in order Conditional The choice of which instructions to execute next depends on some condition Looping A group of instructions may be executed many times Invitation to Computer Science, 6th Edition

42 Control Statements (continued)
Sequential is default mode of execution Conditional flow of control Evaluation of a Boolean condition (also called a Boolean expression) The programming statement to execute next is based on the value of the Boolean condition (true or false) Invitation to Computer Science, 6th Edition

43 Control Statements (continued)
Conditional flow of control (continued) if-else statement if (Boolean condition) S1; else S2; if variation of the if-else statement S1, S2 may be compound statement (may have serval statements) Invitation to Computer Science, 6th Edition

44 Conditional Flow of Control (If-Else)
Invitation to Computer Science, 6th Edition

45 If-Else with Empty Else
Invitation to Computer Science, 6th Edition

46 Comparison Operator Symbol Example Example Result == 2==5 F < 2<5 T <= 2<=5 T > 2>5 F >= 2>=5 F != 2!=5 T Invitation to Computer Science, 6th Edition

47 Boolean Operator Operator Symbol Eg Eg result AND && (2<5)&&(2>7) F OR || (2<5)||(2>7) T NOT ! !(2==5) T Invitation to Computer Science, 6th Edition

48 Invitation to Computer Science, 6th Edition
public class TravelPlanner { public static void main(String[] args) int speed = 1; double distance = 0; double time; int hours = 0; int minutes = 0; char choice = 'M'; speed = Console.readInt("Enter speed in mph:"); distance = Console.readDouble("Enter your distance in miles;"); choice = Console.readChar("Decimal hours or hours and mins"); if (choice == 'D') time = distance/speed; System.out.print("At " + speed + "mph, it will take " + time + "hours to travel " + distance + " miles"); } else hours = (int) time; minutes = (int)((time - hours)*60); System.out.print("At " + speed + "mph, it will take " + hours + " hours " + minutes + " minutes " + distance + " miles"); Invitation to Computer Science, 6th Edition

49 Control Statements (continued)
Looping (iteration) The loop body may be executed repeatedly based on the value of the Boolean condition while statement while (Boolean condition) S1; Invitation to Computer Science, 6th Edition

50 While Loop Invitation to Computer Science, 6th Edition

51 Invitation to Computer Science, 6th Edition
public class TravelPlanner { public static void main(String[] args) { int speed = 1; double distance = 0; double time; int hours = 0; int minutes = 0; char choice = 'M'; char more = 'Y'; more = Console.readChar("Want to plan a trip? (Y or N):"); while (more == 'Y') { speed = Console.readInt("Enter speed in mph:"); distance = Console.readDouble("Enter your distance in miles;"); choice = Console.readChar("Decimal hours or hours and mins: "); if (choice == 'D') { time = distance / speed; System.out.print("At " + speed + " mph, it will take " + time + " hours to travel " + distance + " miles "); } else { hours = (int) time; minutes = (int) ((time - hours) * 60); System.out.print("At " + speed + " mph, it will take " + hours + " hours " + minutes + " minutes " + distance + " miles "); } System.out.println(); more = Console.readChar("Want to plan another trip? (Y or N):"); Invitation to Computer Science, 6th Edition

52 Another Example Algorithm (Psudo code) Get value for user’s choice about continuing While user wants to continue, do the following steps Get value for pool radius Get value for choice of task If taske choice is circumference Compute pool circumference print output Else (task to aread) Compute pool area Stop Invitation to Computer Science, 6th Edition

53 public class SportsWorld { public static void main(String[] args) { double radius = 0.0; double circumference = 0.0; double area = 0.0; char taskToDo = ' '; char more = 'Y'; more = Console.readChar("Want to process a pool? (Y or N):"); while (more == 'Y') { System.out.println(); radius = Console.readDouble("Enter the value of radius:"); System.out.println("Enter your choice of task: "); taskToDo = Console.readChar("C to circumference; A to compute area "); if (taskToDo == 'C') { circumference = 2 * Math.PI * radius; System.out.print("The circumference for a pool of radius " + radius + " is " + circumference); } else { area = Math.PI * radius * radius; System.out.print("The area for a pool of radius " + radius + " is " + area); } more = Console.readChar("Want to process another trip? (Y or N):"); Invitation to Computer Science, 6th Edition

54 Data Cleanup (Again) In this problem:
Input is a set of integer data values that may contain 0s, and 0s are considered to be invalid data Output is to be a clean data set where the 0s have been eliminated Invitation to Computer Science, 6th Edition

55 Figure 9.8 The Converging-Pointers Algorithm for Data Cleanup
Invitation to Computer Science, 6th Edition

56 Figure 9.9 Ada Converging-Pointers Algorithm
Invitation to Computer Science, 6th Edition

57 Figure 9.9 Ada Converging-Pointers Algorithm
Invitation to Computer Science, 6th Edition

58 Figure 9.9 Ada Converging-Pointers Algorithm (continued)
Invitation to Computer Science, 6th Edition

59 Figure 9.9 Ada Converging-Pointers Algorithm (continued)
Invitation to Computer Science, 6th Edition

60 Figure 9.10 C++ Converging-Pointers Algorithm
Invitation to Computer Science, 6th Edition

61 Figure 9.10 C++ Converging-Pointers Algorithm
Invitation to Computer Science, 6th Edition

62 Figure 9.10 C++ Converging-Pointers Algorithm (continued)
Invitation to Computer Science, 6th Edition

63 Figure 9.11 C# Converging-Pointers Algorithm
Invitation to Computer Science, 6th Edition

64 Figure 9.11 C# Converging-Pointers Algorithm (continued)
Invitation to Computer Science, 6th Edition

65 Figure 9.11 C# Converging-Pointers Algorithm (continued)
Invitation to Computer Science, 6th Edition

66 Feature Analysis If you have studied one (or more) of the online chapters for Ada, C++, C#, Java, or Python: Compare them with the features of the other languages by scanning Figure 9.15 Invitation to Computer Science, 6th Edition

67 Figure 9.15 Feature Analysis of Five High-Level Languages
Invitation to Computer Science, 6th Edition

68 Figure 9.15 Feature Analysis of Five High-Level Languages (continued)
Invitation to Computer Science, 6th Edition

69 Figure 9.15 Feature Analysis of Five High-Level Languages (continued)
Invitation to Computer Science, 6th Edition

70 Figure 9.15 Feature Analysis of Five High-Level Languages (continued)
Invitation to Computer Science, 6th Edition

71 Figure 9.15 Feature Analysis of Five High-Level Languages (continued)
Invitation to Computer Science, 6th Edition

72 Figure 9.15 Feature Analysis of Five High-Level Languages (continued)
Invitation to Computer Science, 6th Edition

73 Meeting Expectations Expectations for programs written in a high-level programming language Programmer need not manage details of the movement of data items within memory or pay any attention to exactly where those items are stored Programmer can take a macroscopic view of tasks, thinking at a higher level of problem solving Invitation to Computer Science, 6th Edition

74 Meeting Expectations (continued)
Expectations for programs written in a high-level programming language (continued) Programs written in a high-level language will be portable rather than machine specific Programming statements in a high-level language will be closer to natural language and will use standard mathematical notation Invitation to Computer Science, 6th Edition

75 Object-Oriented Programming: What Is It?
Object-oriented programming (OOP) A program is a simulation of some part of the world that is the domain of interest Each object is an example drawn from a class of similar objects Key elements of OOP Encapsulation A class consists of its subtask modules and its properties, and both components are “encapsulated” with the class Invitation to Computer Science, 6th Edition

76 What Is It? (continued) Key elements of OOP (continued) Inheritance
Once a class A of objects is defined, a class B of objects can be defined as a “subclass” of A Polymorphism One name, the name of the service to be performed, has several meanings, depending on the class of the object providing the service Invitation to Computer Science, 6th Edition

77 Java and OOP Java is an object-oriented programming language
Objects: Instances of a class Instance variables: Properties Instance methods: Services Static method Can be invoked by giving the class name, a dot, the method name, and a list of arguments. Use class to call static method Invitation to Computer Science, 6th Edition

78 Java and OOP (continued)
Syntax to request an object to invoke a method object-identifier.method-identifier(argument list) Calling object The object that invokes a method Invitation to Computer Science, 6th Edition

79 package myproject; public class SportsWorld { public static void main(String[] args) { double newRadius = 0.0; char taskToDo = ' '; char more = 'Y'; Circle SwimmingPool = new Circle(); more = Console.readChar("Do you want to prcess a new pool? (Y or N): "); while (more == 'Y') { System.out.println(); newRadius = Console.readDouble("Enter the value to the radius of the pool: "); SwimmingPool.setRadius(newRadius); System.out.println("Enter your choice of task."); taskToDo = Console.readChar("C to compue ciucumference, A to compute area: "); if (taskToDo == 'C') System.out.println("the ciccumference for a pool radius " + SwimmingPool.getRadius() + " is " + SwimmingPool.doCircumference()); else System.out.println("the area for a pool radius " + SwimmingPool.getRadius() + " is " + SwimmingPool.doAreaY()); } Invitation to Computer Science, 6th Edition

80 One more example public class Circle { public void setRadius(double value) { radius =value; } public double getRadius() return radius; public double doCircumference() return 2 * Math.PI * radius; public double doArea() return Math.PI * radius * radius; private double radius; Invitation to Computer Science, 6th Edition

81 public class Rectangle { public void setWidth(double value) { width =value; } public void setHeight(double value) height =value; public double getWidth() return width; public double getHeitgh() return height; public double doArea() return width * height; protected double width, height; Invitation to Computer Science, 6th Edition

82 public class Square { public void setSide(double value) { side = value; } public double getSide() return side; public double doArea() return side * side; private double side; Invitation to Computer Science, 6th Edition

83 public class Square2 extends Rectangle{ public void setSide(double value) { width = value; height = value; } Invitation to Computer Science, 6th Edition

84 public class Ceometry { public static void main(String[] args) { Circle joe = new Circle(); joe.setRadius(23.5); System.out.println("The area of a circle with radius " + joe.getRadius() + " is " + joe.doArea()); Rectangle luis = new Rectangle(); luis.setWidth(12.4); luis.setHeight(18.1); System.out.println("The area of a rectangle with dimensions " + luis.getWidth() + " and " + luis.getHeight() + " is " + luis.doArea()); Square anna = new Square(); anna.setSide(3); System.out.println("The area of a square with side " + anna.getSide() + " is " + anna.doArea()); Square2 tyler = new Square2(); tyler.setSide(4.2); System.out.println("The area of a square with side " + tyler.getWidth() + " is " + tyler.doArea()); } Invitation to Computer Science, 6th Edition

85 What Have We Gained? Two major advantages of OOP Software reuse
A more natural “world view” Invitation to Computer Science, 6th Edition

86 Graphical Programming: Graphics Hardware
Bitmapped display The screen is made up of thousands of individual picture elements, or pixels, laid out in a two-dimensional grid Frame buffer Memory that stores the actual screen image Terminal hardware displays the frame buffer value of every individual pixel on the screen Invitation to Computer Science, 6th Edition

87 Pixel Numbering System in a Bitmapped Display
Figure 8.34 Pixel Numbering System in a Bitmapped Display Invitation to Computer Science, 6th Edition

88 Graphics Software Graphics library Abstract Windowing Toolkit (AWT)
Contains a collection of software routines that control the setting and clearing of pixels Abstract Windowing Toolkit (AWT) Contains routines that allow users to create powerful interfaces Swing components Even more powerful GUI components than AWT Invitation to Computer Science, 6th Edition

89 Graphics Software (continued)
Graphics class Contains drawing commands that allow you to Draw geometric shapes (lines, rectangles, ovals, polygons, and so on) Set, change, and define colors Fill in or shade objects Create text in a range of fonts and sizes Produce graphs and charts Invitation to Computer Science, 6th Edition

90 Eg import java.awt.*; public class Graph { public static void main(String[] args) { Frame f = new Frame("Eg 1"); f.setSize(500, 500); f.setVisible(true); Graphics g; g = f.getGraphics(); g.setColor(Color.blue); while (true) { g.drawLine(168, 112, 112, 168); g.drawOval(100, 100, 80, 80); g.drawString("No Entry", 112, 145); } Invitation to Computer Science, 6th Edition

91 Other functions drawRect(int x, int y, int width, int height);
drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight); fillRect(int x, int y, int width, int height); fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight); fillOvel(int x, int y, int width, int height); Invitation to Computer Science, 6th Edition

92 The Big Picture: Software Engineering
Software development life cycle Overall sequence of steps needed to complete a large-scale software project Studies have shown that on big projects: Initial implementation of the program may occupy only 10–20% of the total time 25–40% of time is spent on problem specification and program design 40–65% is spent on tasks that follow implementation Invitation to Computer Science, 6th Edition

93 Figure 9.16 Steps in the Software Development Life Cycle
Invitation to Computer Science, 6th Edition

94 Scaling Up Figure 9.17 categorizes software products in terms of :
Size Number of programmers needed for development Duration of the development effort Software engineering Large-scale software development Invitation to Computer Science, 6th Edition

95 Figure 9.17 Size Categories of Software Products
Invitation to Computer Science, 6th Edition

96 The Software Development Life Cycle
The feasibility study Evaluation, costs vs benefits purchase new system Feasibility document Problem specification Clear, concise, unambiguous statement of the problem Problem specification document Invitation to Computer Science, 6th Edition

97 The Software Development Life Cycle
Program design Design solution Divide-and-conquer Program design document Breaks into subtasks and various classes Algorithm selection or development, and analysis Pseudo code Analysis of efficiency rationale Coding Invitation to Computer Science, 6th Edition

98 The Software Development Life Cycle (continued)
Debugging Locating and correcting program errors Syntax errors Runtime errors Logic errors A=A+317 Testing, verification, and benchmarking Empirical testing Unit testing Integration testing Regression testing Syntactically correct and semantically meaningful Design a special set to test cases Invitation to Computer Science, 6th Edition

99 The Software Development Life Cycle (continued)
Testing, verification, and benchmarking Output data satisfies certain conditions Performance falls within required limits Correct and efficient program Documentation Internal documentation External documentation Technical documentation User documentation Maintenance Invitation to Computer Science, 6th Edition

100 The Software Development Life Cycle (continued)
Maintenance Adapting 65% Involves repetition of previous steps Feasibility study Implementation Testing Updated documentation Microsoft word was first developed and released in 1983 Medium- to large-sized software package is 1-3 years in development and 5-15 years in the marketplace Errors, new hardware system software Invitation to Computer Science, 6th Edition

101 Modern Environments Integrated Development Environment
Lets programmer perform a number of tasks within the shell of a single application program Rapid prototyping Allows miscommunications between the user and the programmer to be identified and corrected early in the development process Software development model Waterfall model Invitation to Computer Science, 6th Edition

102 Summary In a high-level language, the programmer:
Need not manage storage Can think about the problem at a higher level Can use more powerful program instructions that are more like natural language Can write a much more portable program Invitation to Computer Science, 6th Edition

103 Summary (continued) Software development life cycle
Overall sequence of steps needed to complete a large-scale software project Invitation to Computer Science, 6th Edition


Download ppt "Invitation to Computer Science 6th Edition"

Similar presentations


Ads by Google