1 / 30

Slides adapted from Alex Mariakakis ,

Section 5: HW6 and Interfaces. Slides adapted from Alex Mariakakis , with material from Krysta Yousoufian, Mike Ernst, Kellen Donohue. Agenda. Version control and tools review BFS Interfaces Parsing Marvel Data. 331 Version control. create. Repository. check out.

glyn
Télécharger la présentation

Slides adapted from Alex Mariakakis ,

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. Section 5:HW6 and Interfaces Slides adapted from Alex Mariakakis, with material from Krysta Yousoufian, Mike Ernst, Kellen Donohue

  2. Agenda • Version control and tools review • BFS • Interfaces • Parsing Marvel Data

  3. 331 Version control create Repository check out Working copy for grading commit check out add update Working copy

  4. Where is my code? (/projects/instr/14au/cse331/YourCSENetID/REPOS/cse331) update check out repo commit personal computer update check out attu scratch copy validate attu working copy (/homes/iws/CSENETID/, or other directory) (../scratch from attu working copy)

  5. Where is my code? • Main repo: /projects/instr/etc • Not human readable • You can’t see files here • Personal computer: any directory, via Subclipse or other • Working copy: add and edit files here • Must check in files for them to go to the repo • attu working copy: /homes/iws/CSENETID/ or other • Just another working copy, same as personal computer • Must svn update to see changes from pc/repo • validate copy: attu directory/src/…/scratch • NEW WORKING COPY CHECKED OUT FROM REPO • May NOT be the same as attu working copy if attu wasn’t updated

  6. Concepts vs tools, 331 vs general • Version control: • Tools: svn, TortoiseSVN, Subclipse • Ant: • Concept: build management • validate • Remote access: • Tools: ssh, PuTTY, WinSCP • Javadocs: • Concept: documentation • @param, @return, @throws • @requires, @modifies, @effects concept tool 331 concept tool general 331

  7. Graphs B A Can I reach B from A? C D E

  8. Breadth-First Search (BFS) • Often used for discovering connectivity • Calculates the shortest path if and only if all edges have same positive or no weight • Depth-first search (DFS) is commonly mentioned with BFS • BFS looks “wide”, DFS looks “deep” • Can also be used for discovery, but not the shortest path

  9. BFS Pseudocode public boolean find(Node start, Node end) { put start node in a queue while (queue is not empty) { pop node N off queue if (N is goal) return true; else { for each node O that is child of N push O onto queue } } return false; }

  10. Breadth-First Search Q: <> Q: <A> Q: <> Q: <B> Q: <B, C> DONE A B C

  11. Breadth-First Search with Cycle Q: <> Q: <A> Q: <> Q: <B> Q: <> Q: <C> Q: <> Q: <A> NEVER DONE A B C

  12. BFS Pseudocode public boolean find(Node start, Node end) { put start node in a queue while (queue is not empty) { pop node N off queue if (N is goal) return true; else { for each node O that is child of N push O onto queue } } return false; } Mark the node as visited! What if there’s a cycle? What if there’s no path between start and end?

  13. Breadth-First Search B Q: <> A C D E

  14. Breadth-First Search B Q: <> Q: <A> A C D E

  15. Breadth-First Search B Q: <> Q: <A> Q: <> A C D E

  16. Breadth-First Search B Q: <> Q: <A> Q: <> Q: <C> A C D E

  17. Breadth-First Search B Q: <> Q: <A> Q: <> Q: <C> Q: <C ,D> A C D E

  18. Breadth-First Search B Q: <> Q: <A> Q: <> Q: <C> Q: <C ,D> Q: <D> A C D E

  19. Breadth-First Search B Q: <> Q: <A> Q: <> Q: <C> Q: <C ,D> Q: <D> Q: <D, E> A C D E

  20. Breadth-First Search B Q: <> Q: <A> Q: <> Q: <C> Q: <C ,D> Q: <D> Q: <D, E> Q: <E> A C D E

  21. Breadth-First Search B Q: <> Q: <A> Q: <> Q: <C> Q: <C ,D> Q: <D> Q: <D, E> Q: <E> DONE A C D E

  22. Shortest Paths with BFS B 1 From Node B A 1 1 1 C D 1 1 1 E

  23. Shortest Paths with Weights B 2 From Node B A 100 100 3 C D 2 6 2 E Paths are not the same!

  24. Classes, Interfaces, and Types • The fundamental unit of programming in Java is a class • Classes can extend other classesand implement interfaces • Interfaces can extend other interfaces

  25. Classes, Objects, and Java • Everything is an instance of a class • Defines data and methods • Every class extends exactly one other class • Object if no explicit superclass • Inherits superclass fields • Every class also defines a type • Foo defines type Foo • Foo inherits all inherited types • Java classes contain both specification and implementation!

  26. Interfaces • Pure type declaration public interface Comparable { intcompareTo(Object other); } • Can contain: • Method specifications (implicitly public abstract) • Named constants (implicitly public final static) • Does not contain implementation • Cannot create instances of interfaces

  27. Implementing Interfaces • A class can implement one or more interfaces class Kitten implements Pettable, Huggable • The implementing class and its instances have the interface type(s) as well as the class type(s) • The class must provide or inherit an implementation of all methods defined by the interface(s) • Not true for abstract classes

  28. Using Interface Types • An interface defines a type, so we can declare variables and parameters of that type • A variable with an interface type can refer to an object of any class implementing that type List<String> x = new ArrayList<String>(); void sort(List myList) {…}

  29. Guidelines for Interfaces • Provide interfaces for significant types and abstractions • Write code using interface types like Map instead of HashMap and TreeMap wherever possible • Allows code to work with different implementations later on • Both interfaces and classes are appropriate in various circumstances

  30. Demo Parsing the Marvel data

More Related