Presentation is loading. Please wait.

Presentation is loading. Please wait.

Course Overview CS221 – Advanced Programming

Similar presentations


Presentation on theme: "Course Overview CS221 – Advanced Programming"— Presentation transcript:

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

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

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

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

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

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

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

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

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

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

11 A Type Simply limits The values The operations
Helps prevent the following: 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 What happens when I use that expression when MONTH equals 12? What is month 13? The March 0 story. CS221 F'07 Course Overview

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

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

14 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) 2.0 (f/2) 1.8 ( ) Did you get them all right? You’re playing with type and internal representation! CS221 F'07 Course Overview

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

16 ADT The built-in types don’t cover all our needs.
Most modern languages allow us to define an Abstract Data Type. We define The type name. The permitted values. The permitted operations (methods) 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. CS221 F'07 Course Overview


Download ppt "Course Overview CS221 – Advanced Programming"

Similar presentations


Ads by Google