770 likes | 789 Views
This course covers UML diagrams, recursion, inheritance, and software development concepts. Prepare for the final exam and gain practical skills for various jobs in the tech industry.
E N D
CS 200 Additional Topics and Review Jim Williams, PhD
Week 14 • Final Exam: Conflict Alternatives Emailed • Monday, December 17th, 2:45 – 4:45 pm, Location? • BP2 Eliza due Thursday • Team Lab: Object-Oriented Space Game • TA Evaluation • Hours Last Week & CS 300? • My office hours change: Wed. 9:00 to 10:30 • Lecture: UML, Additional Topics
Lots of Jobs if you understand Programming Software Developer/Programmer/Software Engineer Testing/Quality Assurance Technical Support Technical Writing Business/Systems Analyst Software Architect Product Manager Project Manager Development Manager Technical Sales Marketing
Analysis and Design Analysis: Describing the Problem Design: Describing a Solution
UML Diagrams UML (Unified Modeling Language) • Many diagrams with lots of details Goal in CS 200 is to recognize: • Use Case Diagram • Class Diagram • Object Diagram • Activity Diagram/Control Flow
UML Diagrams: References Examples of Diagrams: https://www.uml-diagrams.org/ Simple Drawing Tool: http://www.umlet.com/umletino/umletino.html
Use Case • Behavior diagram • How external users (actors) interact with the system. https://www.uml-diagrams.org/use-case-diagrams.html
Class Diagram Shows structure of a system with features, constraints and relationships. Independent of time. https://www.uml-diagrams.org/class-diagrams-overview.html
Object Diagram • A snapshot of a system at a point in time. • Instances of classes with specific attribute values. https://www.uml-diagrams.org/class-diagrams-overview.html
Activity Diagram (Control Flow) • Behavior diagram • Shows flow of control emphasizing sequence and conditions https://www.uml-diagrams.org/activity-diagrams.html
Space Game Apply UML
Today Next Week: Review on Tuesday, last lecture TA Final Exam Review: @1461 Course Evaluations: aefis Lecture: Recursion, Survey, Inheritance
Recursive Algorithm • Repeated applications of an algorithm on smaller versions of the same problem. • Eventually reach a base case which is simply solved.
Recall Fibonacci Sequence 1 1 2 3 5 8 13 21 … First 2: 1, 1 (base case) Following numbers: sum of previous 2 Example: If we want to find the 5th number: 5th = 4th + 3rd (recursive step) https://en.wikipedia.org/wiki/Fibonacci_number
Recursive Solution Base case: • Can be simply solved Recursive step: • Break into smaller problems
Iteration vs Recursion • Each may be better (simpler, clearer, more efficient) for a problem. • Some problems, such as navigating trees, recursion is frequently a helpful and elegant solution.
Application: What does this do? public class Show { public static void show(File file, String depth) { System.out.printf("%s%s\n", depth, file.getName()); if ( file.isDirectory()) { File[] files = file.listFiles(); for (int i = 0; i < files.length; i++) { show(files[i], depth + " "); } } } public static void main(String[] args) { File file = new File("."); show(file, " "); } }
Recent Course Improvements Redesign of Intro Course (CS302 -> CS200)Study CycleProblem Solving Tips Team Labs as study groups • emphasize reading Java, unexpected behavior Projects • emphasize incremental development & testing Increased assistants and office hours
Recent Results Solid preparation for CS300 (our top goal) 25% decrease in DFDrop rate from 4+ years ago Fall 2017 • No DF Drop bias for gender, 1st gen • No grade bias based on experience
Changes Possible • Computer Science is influencing every field, including education. • This potential seems exciting but not clear if what ways education will be positively influenced.
Course Survey What would you expect in order to rate course in the top rating (7) of each category? • Lecture, Homework, Projects, Materials, Feedback • Instructor: Overall, Responsiveness, Environment • Recommend Course Please! describe in the open ended notes.
Inheritance & Polymorphism Animal Demo
is-a vs has-a Relationships • is-a: inheritance class Dog extends Animal { } • has-a: composition class Car { Engine engine; Wheel [] wheels; }
The 2nd toString method is ________ public class Cup { private String owner; public String toString() { return this.owner; } public String toString(String type) { return type; } }
Course Review Key Principles, Tools, Diagrams, Data Types, Operators, Keywords, Control Flow, Programming Paradigms, Debugging Techniques, File Input/Output, Commenting & Style, Unit Testing, Memory, Best Practices, Learning Programming
Tools zyBooks, JavaVisualizer, DiffChecker, Command Prompt, notepad, javac, java, Eclipse IDE (editor, compiler, vm, debugger)
Diagrams truth tables, memory model diagrams, control flow charts (activity diagrams), class diagrams, object diagrams, and use-case diagrams.
Data Types Primitive & Reference Primitive: 8 Reference: existing, classes you write.
Evaluating Java Expressions Precedence Associativity Sub-expressions left-to-right
Key Principles Algorithms Abstraction
Control Flow Sequence Methods Conditionals Loops
Data Structures Arrays: single and multi-dimensional ArrayLists ArrayLists of Arrays
Development Process Edit-Compile-Run cycle Analysis - understand the problem Design - pseudocode
Best Practices • Incremental, systematic, frequent deliverables • Test frequently • Test bench with testing methods
Debugging Techniques • Stepping through in Java Visualizer • print statements to verify and narrow down problem • print statements with DEBUG flag • Eclipse debugger
Programming Paradigms Structured Programming Object-Oriented Programming (brief)
Learning to Program • Read and Write code • Lots of interrelated concepts that build on each other. • High level educational skills on Bloom's taxonomy https://www.teachthought.com/learning/what-is-blooms-taxonomy-a-definition-for-teachers/
Applied Study Cycle • frequent, varied interactions with material
zyBooks Participation Activities Assigned readings with small activities due before lecture
Lecture - Activities • Definitions & Explanations • Drawing Diagrams • Demonstration • Stories • Retrieval Practice • Questions, including TopHat
zyBooks Challenge Activities Application of previous week's material to small programs.