1 CSC 427: Data Structures and Algorithm Analysis Fall 2010 See online syllabus (also available through BlueLine): Course goals:

Slides:



Advertisements
Similar presentations
PROGRAMMING LANGUAGE (JAVA) UNIT 42 BY ROBERT BUTTERFIELD TELEPHONE Data Structures and Algorithms.
Advertisements

Data Structures.
1 CSC 421: Algorithm Design & Analysis Spring 2013 See online syllabus: (also on BlueLine2) Course.
1 CSC 221: Computer Programming I Fall 2006 See online syllabus (also accessible via Blackboard): Course goals:  To develop.
Introduction To System Analysis and Design
1 Programming for Engineers in Python Autumn Lecture 5: Object Oriented Programming.
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Review CSC 171 FALL 2004 LECTURE 21. Topics Objects and Classes Fundamental Types Graphics and Applets Decisions Iteration Designing Classes Testing and.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Data Structures and Programming.  John Edgar2.
WEEK 1 CS 361: ADVANCED DATA STRUCTURES AND ALGORITHMS Dong Si Dept. of Computer Science 1.
1 CSC 221: Introduction to Programming Fall 2012 course overview  What did you set out to learn?  What did you actually learn?  Where do you go from.
Introduction To System Analysis and design
1 CSC 221: Computer Programming I Fall 2004 course overview  what did we set out to learn?  what did you actually learn?  where do you go from here?
1/ 47 COP 3503 FALL 2012 SHAYAN JAVED LECTURE 19 Programming Fundamentals using Java 1.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
Data Structures Lecture 1: Introduction Azhar Maqsood NUST Institute of Information Technology (NIIT)
1 CSC 221: Introduction to Programming Fall 2013 See online syllabus (also accessible via BlueLine2): Course goals:  To develop.
CSCA48 Course Summary.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
Introduction To System Analysis and Design
Objected Oriented Programming & Design JAVA Shishir Gupta (704) (704)
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
1 CSC 321: Data Structures Fall 2013 See online syllabus (also available through BlueLine2): Course goals:  To understand.
OBJECT-ORIENTED PROGRAMMING (OOP) WITH C++ Instructor: Dr. Hany H. Ammar Dept. of Electrical and Computer Engineering, WVU.
CSC 212 – Data Structures Lecture 37: Course Review.
1 CSC 221: Computer Programming I Fall 2005 See online syllabus (also accessible via Blackboard): 
Data Structures for Programmers Vamshi Ambati
Data Structures Lecture 1: Introduction. Course Contents Data Types   Overview, Introductory concepts   Data Types, meaning and implementation  
CSC 221: Computer Programming I Fall 2001 course overview  what did we set out to learn?  what did you actually learn?  where do you go from here? 
A-1 © 2000 UW CSE University of Washington Computer Programming I Lecture 21: Course Wrap-up and Look Ahead.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
1 CSC 221: Computer Programming I Spring 2008 course overview  What did we set out to learn?  What did you actually learn?  Where do you go from here?
1 CSC 427: Data Structures and Algorithm Analysis Fall 2006 See online syllabus (also available through Blackboard): Course goals:
Java Fundamentals Usman Ependi UBD
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
90-723: Data Structures and Algorithms for Information Processing Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 1: Introduction Data.
1 CSC 221: Computer Programming I Fall 2009 See online syllabus (also accessible via BlueLine): Course goals:  To develop.
Data Structures and Algorithms in Java AlaaEddin 2012.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Introduction to Objects and Encapsulation Computer Science 4 Mr. Gerb Reference: Objective: Understand Encapsulation and abstract data types.
CSC 143T 1 CSC 143 Highlights of Tables and Hashing [Chapter 11 p (Tables)] [Chapter 12 p (Hashing)]
Lecture 1 Data Structures Aamir Zia. Introduction Course outline Rules and regulations Course contents Good Programming Practices Data Types and Data.
 The Object Oriented concepts was evolved for solving complex problems. Object- oriented software development started in the 1980s. Object-oriented design.
Mohammed I DAABO COURSE CODE: CSC 355 COURSE TITLE: Data Structures.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
CSC 421: Algorithm Design & Analysis
CSC 427: Data Structures and Algorithm Analysis
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
CSC 222: Computer Programming II
CSC 421: Algorithm Design & Analysis
CSC 321: Data Structures Fall 2016
CSC 321: Data Structures Fall 2017
CS 315 Data Structures B. Ravikumar Office: 116 I Darwin Hall Phone:
CSC 221: Computer Programming I Fall 2005
CSC 321: Data Structures Fall 2015
CSC 421: Algorithm Design & Analysis
CSC 222: Object-Oriented Programming
CSC 421: Algorithm Design & Analysis
CSE 142 vs CSE 143 CSE 142 CSE 143 You learned how to write programs and decompose large problems with: Print statements Methods Control Structures.
Introduction to Computer Science for Majors II
Review CSE116 2/21/2019 B.Ramamurthy.
Review B.Ramamurthy 4/6/2019 BR.
CSC 321: Data Structures Fall 2018
Final Review B.Ramamurthy 5/8/2019 BR.
CSC 221: Introduction to Programming Fall 2018
Presentation transcript:

1 CSC 427: Data Structures and Algorithm Analysis Fall 2010 See online syllabus (also available through BlueLine): Course goals:  To appreciate the role of algorithms in problem solving and software design; selecting among competing algorithms and justifying choices based on efficiency.  To understand the specifications and implementations of standard data structures and be able to select appropriate structures in developing programs.  To develop programs using different problem-solving approaches, and be able to recognize when a particular approach is most useful.  To be able to design and implement a program to model a real-world system, and subsequently analyze its behavior.  To recognize the importance of object-oriented techniques, and be able to utilize inheritance and polymorphism to build upon existing code.

2 221 vs. 222 vs : programming in the small  focused on the design & analysis of small programs  introduced fundamental programming concepts classes, objects, fields, methods, parameters variables, assignments, expressions, I/O control structures (if, if-else, while, for), arrays, ArrayLists 222: programming in the medium  focused on the design & analysis of more complex programs programs  introduced more advanced programming & design concepts/techniques interfaces, inheritance, polymorphism, object composition searching & sorting, Big-Oh efficiency, recursion, GUIs stacks, queues, linked lists you should be familiar with these concepts (we will do some review next week, but you should review your own notes & text) 427: programming in the larger  focus on complex problems where algorithm/data structure choices matter  introduce more design techniques, software engineering, performance analysis object-oriented design, classes & libraries standard algorithms, big-Oh analysis, problem-solving paradigms standard collections (lists, stacks, queues, trees, sets, maps)

3 When problems start to get complex… …choosing the right algorithm and data structures are important  e.g., phone book lookup, checkerboard puzzle  must develop problem-solving approaches (e.g., divide&conquer, backtracking)  be able to identify appropriate data structures (e.g., lists, trees, sets, maps) EXAMPLE: suppose you want to write a program for playing Boggle (Parker Bros.)  need to be able to represent the board  need to be able to store and access the dictionary  need to allow user to enter words  need to verify user words for scoring  perhaps show user words they missed

4 Boggle implementations 1.For each user word entered, search the Boggle board for that word.  But how do you list all remaining words at the end? 2.Build a list of all dictionary words on the Boggle board by:  searching for each word in the dictionary, add to list if on the board. For each user word entered, search the list to see if stored (and mark as used). At the end, display all words in the list not marked as used. 3.Build a list of all dictionary words on the Boggle board by:  exhaustively searching the board, checking letter sequences to see if in the dictionary. For each user word entered, search the list to see if stored (and mark as used). At the end, display all words in the list not marked as used.

5 Another example… Sudoku is a popular puzzle craze given a partially filled in 9x9 grid, place numbers in the grid so that each row contains 1..9 each column contains 1..9 each 3x3 subsquare contains 1..9 Should a computer program use the same strategies?  represenation of the grid?  how fast does the solution need to be? How do people solve these puzzles?

HW1: prefix matches sites such as Facebook and Google will attempt to complete text entries  how is the pool of possible matches obtained?  how big?  how are they stored?  how are matches found?  how fast does the search need to be? 6 Facebook: 8 B actions/day 700 B minutes activity/month TB log data/day 500 M users, 80 B connections

7 OOP and code reuse when solving large problems, code reuse is important  designing, implementing, and testing large software projects is HARD whenever possible, want to utilize existing, debugged code  reusable code is: clear and readable (well documented, uses meaningful names, no tricks) modular (general, independent routines – test & debug once, then reuse) OOP is the standard approach to software engineering philosophy: modularity and reuse apply to data as well as functions  when solving a problem, must identify the objects involved e.g., banking system: customer, checking account, savings account, …  develop a software model of the objects in the form of abstract data types (ADTs) a program is a collection of interacting software objects can utilize inheritance to derive new classes from existing ones

8 NetBeans IDE NetBeans is a free Java IDE developed by Sun  includes many of the industry-strength features of NetBeans (code completion, refactoring, incremental syntax checking, …)  also supports development in other languages (e.g., C/C++, Ruby)  for instructions on dowloading & installing a copy (along with the JDK), see: