1 / 37

Turgay Korkmaz Office: NPB 3.330 Phone: (210) 458-7346 Fax: (210) 458-4437

CS xxxx Foundations of Programming and Data Structures Ch 0 – Overview Problem Solving using Computing Systems. Turgay Korkmaz Office: NPB 3.330 Phone: (210) 458-7346 Fax: (210) 458-4437 e-mail: korkmaz@cs.utsa.edu web: www.cs.utsa.edu/~korkmaz.

thai
Download Presentation

Turgay Korkmaz Office: NPB 3.330 Phone: (210) 458-7346 Fax: (210) 458-4437

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS xxxx Foundations of Programming and Data Structures Ch 0 – Overview Problem Solving using Computing Systems Turgay Korkmaz Office: NPB 3.330 Phone: (210) 458-7346 Fax: (210) 458-4437 e-mail: korkmaz@cs.utsa.edu web: www.cs.utsa.edu/~korkmaz

  2. Think Like a Programmer: Introduction https://www.youtube.com/watch?v=YgzpqlF54lo&list=PLcr1-V2ySv4TiAm4cqzS3corkJl_QCl5H Problem Solving using generic or ad hoc methods in an orderly manner to find solutions to problems [wiki]. • In CS, problem solving requires to • develop algorithms and data structures • Algorithms: • Figure out necessary instructions/steps • Data structures: • Figure out how to organize data in a computer • Coding of the algorithm and the data structure in a programming language (we will use C)

  3. Problem Solving • Can computers think or develop a solution? • No! You do! • Computers just follow your instructions and do them faster! • Then how do computers do many things? Even play chess! • Is it possible for different programmers/students to get the same solution for a given problem? • Depends on the problem. If simple, yes. But in general, no! • We may come up with different but yet correct solutions. • Efficiency vs. Cost

  4. Computing System is a system that includes the computing unit (CPU) and memory along with peripherals (I/O devices). Internal Memory CPU Processor Control Unit I/O Devices ALU • Main memory stores both data and instructions (how?) • Control unit contains a program counter (PC) showing the address of the next instruction to execute (e.g., +-*/, compare, jump). I/O devices von Neumann Architecture: store and computation

  5. * How is the information stored in Memory? CPU • Bits, bytes • Memory is a sequence of bytes (8-bit info, char in C) • Every byte is identified by a numeric address • Values larger than a byte (char) are stored in consecutive bytes • Suppose we declare char ch = ‘A’; int x = 305; Suppose we have 4MB memory

  6. Memory Organization CPU

  7. How a CPU Works https://www.youtube.com/watch?v=cNN_tTXABUA How does a simple CPU work? CPU PC = 4 Instruction Reg= R1= R2= R3= R4= R5= int A, B=2, C=3, D=5; A=B+C+D; Compiler/linker (gcc) Machine executable file containing code and data

  8. Speed of CPU (GHz) Size of Memory (Gbyte) 8 bits = 1 bytes Word = 4 bytes How many bytes does this computer have? 32 bytes = 25 How many bytes you have if it says 2Gbyte? 1K=210 = 1024 1M=220 = 10242 1G=230 = 10243 When referring to a computer processor or CPU, GHz is a clock frequency, also known as a clock rate or clock speed, representing a cycle of time. An oscillator circuit supplies a small amount of electricity to a crystal each second that is measured in kHz, MHz, or GHz. "Hz" is an abbreviation of Hertz, "k" represents Kilo (thousand), "M" represents Mega (million), "G" represents Giga (thousand million). [computerhope.com] 1K=103 1M=106 1G=109

  9. Internal Memory Computing System I/O Devices • How does a program (code + data) get into main memory? • Who gets it from Hard Disk to Main (internal) Memory? • Who stored it on Hard Disk in the first place? • Operating System (kernel) • And other system programs CPU Processor Control Unit ALU software

  10. What is an Operating System (OS)? . • User View • User interface, ease of use vs. performance (windows vs. command line; terminal vs. minicomputer; networked workstations; handheld; embedded ) • System View • OS is a resource allocator • Manages all resources (CPU, memory, file-storage, I/O devices etc.) • Decides between conflicting requests for efficient and fair resource use • OS is a control program • Controls execution of programs to prevent errors and improper use of the computer • Users • People, machines, other computers • Application programs • Word processors, compilers, web browsers, database systems, video games • Operating system • An intermediary between users/applications and the computerhardware • Hardware • CPU, memory, I/O devices

  11. Computer Software • Operating System - Provides an interface with the user • unix, windows, linux, ... • Software Tools • word processors (MS Word, WordPerfect, ...) • spreadsheet programs (Excel, Lotus1-2-3, ...) • mathematical computation tools (MATLAB, Mathematica, ...) • Computer Languages • machine language • assembly language • binary language • high level languages (C, C++, Ada, Fortran, Basic, java) • WE WILL STUDY C PROGRAMMING LANGUAGE on Linux abstractions

  12. What is C? • General purpose, machine-independent, high-level programming language • Developed at Bell Labs in 1972 by Dennis Ritchie • American National Standards Institute (ANSI) approved ANSI C standard in 1989 Source file

  13. Hello World! in Linux • Login to a Linux machine • SSH Secure Shell (e.g., elk03.cs.utsa.edu) elk03 :> mkdirmyprog elk03 :> cdmyprog elk03 :> picohello.c • Type your program … and save it (ctrl-o) • Compile and execute your program elk03 :> gcchello.c –o hello elk03 :> hello

  14. Think Like a Programmer: Introduction https://www.youtube.com/watch?v=YgzpqlF54lo&list=PLcr1-V2ySv4TiAm4cqzS3corkJl_QCl5H PROBLEM SOLVING Very Important If you can develop solution, then coding in C is easy… So, before studying C, let us C a few examples of problem solving

  15. Re-call computing system! * Input CPU Processor Control Unit Internal Memory ALU In this sense, do you think humans are like a computer? + we have intelligence and we can solve problems and develop algorithms while computers just follow our instructions… When developing algorithms, it may help to act like a computer! I/O Devices External Memory Output

  16. Problem Solving Methodology • 1. State the problem clearly • 2. Describe the input/output information • 3. Work the problem by hand, give example • 4. Develop a solution • (Design Algorithms + Data Structures) and • Convert them to a program (C program) • 5. Test the solution with a variety of data

  17. (x1,y1) (x2, y2) Example 1 1. Problem statement Compute the distance between two points 2. Input/output description straight line in a plane Point 1 (x1, y1) Distance between two points (distance) Point 2 (x2, y2)

  18. Example 1 (cont’d) 3. Hand example side1 = 4 - 1 = 3 side2 = 7 - 5 = 2

  19. Example 1 (cont’d) 4. Algorithm development and coding a. Generalize the hand solution and list/outline the necessary operations step-by-step • Give specific values for point1 (x1, y1) and point2 (x2, y2) • Compute side1=x2-x1 and side2=y2-y1 • Compute • Print distance b. Convert the above outlined solution to a program using any language you want (see next slide for C imp.)

  20. Example 1 (cont’d)

  21. Example 1 (cont’d) 5. Testing • After compiling your program, run it and see if it gives the correct result. • Your program should print out The distance between two points is 3.61 • If not, what will you do?

  22. x1=2, y1=5, x2=10, y2=8, Modification to Example 1 How will you find the distance between two other points (2,5) and (10,8)?

  23. Simple examples to develop solutions

  24. x=3 cm y=4 cm x y area Compute the area of a triangle • State problem • I/O • Hand example • Develop solution and Coding • Testing area = ½ * 3 *4 = 6 cm2 • Get values of x and y • Compute area = ½*x*y • Print area

  25. H total_sec M S Given the number of seconds, find number of hours, minutes and seconds • State problem • I/O • Hand example • Develop solution and Coding • Testing 3675 seconds can be written as 1 hour 1 min 15 sec • Get total_sec • H = total_sec / 3600 (integer division) • M = (total_sec – (H*3600)) / 60 • M = (total_sec mod 3600) / 60 • S = total_sec – (H*3600) – (M*60) • Print H hour, M min, S sec

  26. A little bit difficult examples to develop solutions Sequence of instructions, Selections, Loops Some problems are from How to Solve it: Modern Heuristics by Michalewicz and Fogel. Springer 2004.

  27. Income, grade, speed Average speed • Suppose a car goes from city A to city B with speed of 40 mph and immediately comes back with the speed of 60 mph. • What is the average speed? • Can you generalize this solution and outline step by step to find average speed when the speed from A to B is X and the speed from B to A is Y? Sequence of Instructions

  28. Average speed

  29. no yes Assign a letter grade • Suppose I have your grades as follows final midterm avg_hwquizze letter 30 20 30 4 ? How can I determine your letter grade? Sequence of Instructions and Selection of Instructions

  30. no yes no yes Assign letter grades to whole class? • Suppose I have your grades as follows name final midterm avg_hwquizze letter aaaa 30 20 30 4 ? bbbb 20 15 40 10 ? … How to assign letter grade to each? Sequence Selection Repletion

  31. Think Like a Programmer: Introduction https://www.youtube.com/watch?v=YgzpqlF54lo&list=PLcr1-V2ySv4TiAm4cqzS3corkJl_QCl5H More examples

  32. OPT Dimensions of a rectangle ranch? • A farmer has a rectangular ranch with a perimeter of P=110 meters and an area of A=200 square meters. • What are the dimensions of his ranch? • What are the dimensions for any P and A? y x

  33. no yes no yes Climbing a wooden post • A snail is climbing a wooden post that is H=10 meters high. • During the day, it climbs U=5 meters up. • During the night, it falls asleep and slides down D=4 meters. • How many days will it take the snail to climb the top of the post? • Given that H > U > D. Can you generalize your solution for any H, U, and D?

  34. Self-study Minimum number of coins • Suppose you want to give x=67 cents to a person, what is the minimum number of coins • You have many 25, 10, 5, 1 cents

  35. no yes no yes Example: Sum of numbers Given n (for example n=1000), compute • sum = 1+2+3+…+n • sum_odd =1+3+5+7+…+(2n+1) • ln2=1- 1/2 + 1/3 - 1/4 +…  1/n

  36. Ten heuristics for problem solving How to Solve it: Modern Heuristics by Michalewicz and Fogel. Springer 2004. • Don’t rush to give an answer, think about it • Concentrate on the essentials and don’t worry about the noise (tiny details) • Sometimes finding a solution can be really easy (common sense), don’t make it harder on yourself • Beware of obvious solutions. They might be wrong • Don’t be misled by previous experience

  37. Ten heuristics for problem solving How to Solve it: Modern Heuristics by Michalewicz and Fogel. Springer 2004. • Start solving. Don’t say “I don’t know how” • Most people don’t plan to fail, they just fail to plan! • Don’t limit yourself to the search space that is defined by the problem. Expand your horizon • Constraints can be helpful to focus on the problem at the hand • Don’t be satisfied with finding asolution, look for better ones • Be patient. Be persistent!

More Related