Course Overview CS221 – Advanced Programming

Slides:



Advertisements
Similar presentations
Chapter 1: INTRODUCTION TO DATA STRUCTURE
Advertisements

Computer Science 112 Fundamentals of Programming II Overview of Collections.
Review. What to know You are responsible for all material covered in lecture, the readings, or the programming assignments There will also be some questions.
Sorting CS221 – 3/2/09. Recursion Recap Use recursion to improve code clarity Make sure the performance trade-off is worth it Every recursive method must.
© 2006 Pearson Addison-Wesley. All rights reserved10-1 Chapter 10 Algorithm Efficiency and Sorting CS102 Sections 51 and 52 Marc Smith and Jim Ten Eyck.
Data Structures & Algorithms What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs.
Course Overview CS221 – Advanced Programming Fall 2007 : Ray S. Babcock Computer Science Department Montana State University.
Review for Test 2 i206 Fall 2010 John Chuang. 2 Topics  Operating System and Memory Hierarchy  Algorithm analysis and Big-O Notation  Data structures.
Data Structures Introduction. What is data? (Latin) Plural of datum = something given.
CS 206 Introduction to Computer Science II 04 / 29 / 2009 Instructor: Michael Eckmann.
CS 206 Introduction to Computer Science II 12 / 10 / 2008 Instructor: Michael Eckmann.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
Data Structures 1- Course Syllabus. 2- Introduction about Data Structures.
C o n f i d e n t i a l Developed By Nitendra NextHome Subject Name: Data Structure Using C Title: Overview of Data Structure.
Instructor: Dr. Sahar Shabanah Fall Lectures ST, 9:30 pm-11:00 pm Text book: M. T. Goodrich and R. Tamassia, “Data Structures and Algorithms in.
SIGCSE Tradeoffs, intuition analysis, understanding big-Oh aka O-notation Owen Astrachan
Lecture 10: Class Review Dr John Levine Algorithms and Complexity March 13th 2006.
CS 206 Introduction to Computer Science II 09 / 10 / 2009 Instructor: Michael Eckmann.
Homework #5 New York University Computer Science Department Data Structures Fall 2008 Eugene Weinstein.
1 Week 9 A little more GUI, and threads. Objectives: Discuss the Swing set of classes. Incorporate animation into applets. Define the term thread. Explain.
Review and Prepare for Test 3 CS 244 Brent M. Dingle, Ph.D. Game Design and Development Program Department of Mathematics, Statistics, and Computer Science.
Data Structure Introduction.
Java Methods Big-O Analysis of Algorithms Object-Oriented Programming
Computer Science Projects Internal Assessment. Mastery Item Claimed Justification Where Listed Random Access File – Searching Lines P. 53 Random.
Elementary Data Organization. Outline  Data, Entity and Information  Primitive data types  Non primitive data Types  Data structure  Definition 
+ David Kauchak cs312 Review. + Midterm Will be posted online this afternoon You will have 2 hours to take it watch your time! if you get stuck on a problem,
Final Exam Tuesday, December 22nd 2:00 - 3:50pm room 102 Warren Weaver Hall.
Efficiency of Algorithms. Node - data : Object - link : Node + createNode() + getData() + setData() + getLink() + setLink() + addNodeAfter() + removeNodeAfter()
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 23 Algorithm Efficiency.
Dale Roberts Department of Computer and Information Science, School of Science, IUPUI CSCI 240 Elementary Data Structures Array Lists Array Lists Dale.
CS321 Data Structures Jan Lecture 2 Introduction.
Final Exam Review CS Total Points – 20 Points Writing Programs – 65 Points Tracing Algorithms, determining results, and drawing pictures – 50.
BITS Pilani Pilani Campus Data Structure and Algorithms Design Dr. Maheswari Karthikeyan Lecture1.
AP National Conference, AP CS A and AB: New/Experienced A Tall Order? Mark Stehlik
Lecture 2. Algorithms and Algorithm Convention 1.
Data Structures Dr. Abd El-Aziz Ahmed Assistant Professor Institute of Statistical Studies and Research, Cairo University Springer 2015 DS.
CS 315 Data Structures Spring 14 Instructors (lecture) Bala Ravikumar Office: 116 I Darwin Hall Phone: piazza, (Lab.
Mohammed I DAABO COURSE CODE: CSC 355 COURSE TITLE: Data Structures.
Final Exam Review CS 3358.
Planning & System installation
Fundamentals of Programming II Overview of Collections
Analysis and Comparison is ICS4U
COP 3503 FALL 2012 Shayan Javed Lecture 15
Midterm Review.
External Sorting Chapter 13
Final Review.
Lecture 2 of Computer Science II
Teach A level Computing: Algorithms and Data Structures
CS302 Data Structures Fall 2012.
Building Java Programs
Big O Notation.
External Sorting Chapter 13
Data Structures: Introductory lecture
COP 3502.
CSS 342 Data Structures, Algorithms, and Discrete Mathematics I
Introduction to Computer Science for Majors II
IT 4043 Data Structures and Algorithms
Building Java Programs
Review CSE116 2/21/2019 B.Ramamurthy.
Introduction to Data Structures
Algorithm Efficiency and Sorting
CS 2430 Object Oriented Programming and Data Structures I
Overview Analysis Notation Specific ADTs
Review B.Ramamurthy 4/6/2019 BR.
CS2013 Lecture 7 John Hurley Cal State LA.
CS Fall 2012, Lab 11 Haohan Zhu.
COP3530- Data Structures Introduction
Final Review B.Ramamurthy 5/8/2019 BR.
External Sorting Chapter 13
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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 1.6666666666666667 CS221 F'07 Course 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) 2.0 (f/2) 1.8 (2147483647 + 1) -2147483648 Did you get them all right? You’re playing with type and internal representation! CS221 F'07 Course 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? sum=155.00000000000003 Why? CS221 F'07 Course Overview

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