Presentation is loading. Please wait.

Presentation is loading. Please wait.

Course Overview CS221 – Advanced Programming Fall 2007 : Ray S. Babcock Computer Science Department Montana State University.

Similar presentations


Presentation on theme: "Course Overview CS221 – Advanced Programming Fall 2007 : Ray S. Babcock Computer Science Department Montana State University."— Presentation transcript:

1 Course Overview CS221 – Advanced Programming Fall 2007 : Ray S. Babcock Computer Science Department Montana State University

2 CS221 F'07 2Course Overview Finally! Not an introductory course! Finally! Not an introductory course! An old 1976 book had the following title: An old 1976 book had the following title: Algorithms + Data Structures = Programs Algorithms + Data Structures = Programs By Nicklaus Wirth By Nicklaus Wirth Both Algorithms AND Data Structures should be considered equally important when solving problems using programs. Both Algorithms AND Data Structures should be considered equally important when solving problems using programs. Time – Space tradeoff. Time – Space tradeoff. Time and space are inversely proportional. Time and space are inversely proportional.

3 CS221 F'07 3Course Overview Time VS Space To produce the same solution in less space (memory) an increase of computation time is necessary. To produce the same solution in less space (memory) an increase of computation time is necessary. The Invoice File Sorting Problem from 1975. The Invoice File Sorting Problem from 1975. Many invoices for each month during the year. Many invoices for each month during the year. Random Access Memory was extremely limited. 64K Random Access Memory was extremely limited. 64K Yes, only 64K, and the OS took up 32K!! Yes, only 64K, and the OS took up 32K!! Can’t load all the invoices into RAM. Can’t load all the invoices into RAM. Can load all the invoices on the huge 128K 8-inch Floppies. Can load all the invoices on the huge 128K 8-inch Floppies. No disk sort commands (like the Linux sort command). No disk sort commands (like the Linux sort command). How would you solve this problem? How would you solve this problem?

4 CS221 F'07 4Course Overview The Invoice File Solution The disk (floppy) file management system had up to 16 file units. The disk (floppy) file management system had up to 16 file units. A separate file can be “opened” on each file unit. A separate file can be “opened” on each file unit. We opened a separate file for each month: We opened a separate file for each month: Opened “Jan” on file unit 1. Opened “Jan” on file unit 1. Opened “Feb” on file unit 2. Opened “Feb” on file unit 2. … Opened “Dec” on file unit 12. Opened “Dec” on file unit 12. Opened “Input” on file unit 13. Opened “Input” on file unit 13.

5 CS221 F'07 5Course Overview Invoice File Solution (continued) Now for each Invoice in the input file (opened on 13) Now for each Invoice in the input file (opened on 13) Read one invoice into memory. Read one invoice into memory. Extract the month code (1 – 12) as an integer. Extract the month code (1 – 12) as an integer. Write the invoice to the “month” file unit. Write the invoice to the “month” file unit. Repeat. Repeat. Close all 13 file units. Close all 13 file units. One pass through the input file and it was done! One pass through the input file and it was done! Only memory for one invoice needed! Only memory for one invoice needed! Cool! Cool!

6 CS221 F'07 6Course Overview Algorithms In this course we will cover extensively In this course we will cover extensively Traversals and Searches Traversals and Searches Linear Linear Binary Binary Sorting Sorting Selection Selection Bubble Bubble Insertion Insertion (and more lightly: Shell, Merge, Heap, and Quicksort) (and more lightly: Shell, Merge, Heap, and Quicksort)

7 CS221 F'07 7Course Overview Data Structures In this course we will cover extensively In this course we will cover extensively Lists Lists Stacks Stacks Queues Queues We will touch lightly on We will touch lightly on Trees Trees Priority Queues Priority Queues Graphs Graphs

8 CS221 F'07 8Course Overview Course Title? Advanced Programming (new) versus Data Structures (old) ? Advanced Programming (new) versus Data Structures (old) ? Event-Oriented Programming. Event-Oriented Programming. Java AWT and SWING for GUI building. Java AWT and SWING for GUI building. UML (appendix B and used throughout). UML (appendix B and used throughout). Software Design. Software Design. Program Correctness and Efficiency (Big O notation). Program Correctness and Efficiency (Big O notation). Java Inheritance. Java Inheritance. Java Class Hierarchies. Java Class Hierarchies. And last but certainly not least Abstract Data Types. And last but certainly not least Abstract Data Types.

9 CS221 F'07 9Course Overview What is a type? What does it mean by specifying: What does it mean by specifying: int int double double boolean boolean String String Is 2+2 calculated the same as 2.0+2.0 ? Is 2+2 calculated the same as 2.0+2.0 ? What does memory look like? What does memory look like?

10 CS221 F'07 10Course Overview Segment from a CS425 program that displays a bézier curve! (obviously )

11 CS221 F'07 11Course Overview A Type Simply limits The values The values The operations The operations Helps prevent the following: Helps prevent the following: Assume I let and integer MONTH stand for the current month. (1 = Jan, 2 = Feb, … 12 = Dec). Assume I let and integer MONTH stand for the current month. (1 = Jan, 2 = Feb, … 12 = Dec). Now I work my way through the year by using MONTH = MONTH + 1 Now I work my way through the year by using MONTH = MONTH + 1 What happens when I use that expression when MONTH equals 12? What is month 13? What happens when I use that expression when MONTH equals 12? What is month 13? The March 0 story. The March 0 story.

12 CS221 F'07 12Course Overview Some In Class Examples. Given: (ignore the – bullets!) Given: (ignore the – bullets!) int a = 2; int a = 2; int b = 4; int b = 4; int c = 5; int c = 5; double d = 1.2; double d = 1.2; double e = 2.4; double e = 2.4; double f = 3.6; double f = 3.6; double g = 1.55; double g = 1.55; double sum = 0.0; double sum = 0.0; What prints System.out.println(expression); What prints System.out.println(expression);

13 CS221 F'07 13Course Overview Integers a=2,b=4,c=5 Doubles d=1.2,e=2.4,f=3.6,g=1.55,sum=0.0 (a/b) (a/b) 0 (b/a) (b/a) 2 (1/a) (1/a) 0 c/a c/a 2 a/d a/d 1.6666666666666667 1.6666666666666667

14 CS221 F'07 14Course Overview Integers a=2,b=4,c=5 Doubles d=1.2,e=2.4,f=3.6,g=1.55,sum=0.0 (e/d) (e/d) 2.0 2.0 (f/2) (f/2) 1.8 1.8 (2147483647 + 1) (2147483647 + 1) -2147483648 -2147483648 Did you get them all right? Did you get them all right? You’re playing with type and internal representation! You’re playing with type and internal representation!

15 CS221 F'07 15Course Overview What about the following? sum = 0.0; for(int i=0; i<100; i++) sum=sum+g; System.out.println(“sum=“+sum); What Prints? What Prints? sum=155.00000000000003 sum=155.00000000000003 Why? Why?

16 CS221 F'07 16Course Overview ADT The built-in types don’t cover all our needs. The built-in types don’t cover all our needs. Most modern languages allow us to define an Abstract Data Type. Most modern languages allow us to define an Abstract Data Type. We define We define The type name. The type name. The permitted values. The permitted values. The permitted operations (methods) The permitted operations (methods) Often, one of the first things to design for a solution are a set of Abstract Data Types. Often, one of the first things to design for a solution are a set of Abstract Data Types. We’ll do this often in this course. We’ll do this often in this course.


Download ppt "Course Overview CS221 – Advanced Programming Fall 2007 : Ray S. Babcock Computer Science Department Montana State University."

Similar presentations


Ads by Google