1 / 27

Progressive Disclosure Diagramming Techniques

Progressive Disclosure Diagramming Techniques. Haytham Siala Email: h.siala@roehampton.ac.uk Tel : 0208 392 3481. Agenda. Visual Aid to Computer Programming CASE and Basic Diagramming Tools Challenges Ahead for Teaching Computer Programming. Overview.

joann
Download Presentation

Progressive Disclosure Diagramming Techniques

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. Progressive Disclosure Diagramming Techniques HaythamSiala Email: h.siala@roehampton.ac.uk Tel: 0208 392 3481

  2. Agenda • Visual Aid to Computer Programming • CASE and Basic Diagramming Tools • Challenges Ahead for Teaching Computer Programming

  3. Overview • Visual Aid to Computer Programming • Flowcharts • Activity Diagrams • Code Tracers and Debuggers (post-mortem)

  4. Audience • Cohort of First Year students • Difficult to assimilate programming techniques • Lack of self-motivation • Steep learning curve in stark contrast to other modules: • Fundamentals of DBMS, Graphic Design, Hardware Theory and Practice, etc.

  5. Designing Programming Solutions • There are 'visual' alternatives to algorithms and pseudo code, the most common of which are: • Flowcharts (dated) • No diagramming tools • Currently synonymous with business process modelling • Activity Diagrams (UML) • A plethora of diagramming tools

  6. Flowcharts Start num1=0, num2= 0, result = 0 Read num1, num2 result = num1 + num2 Output result Stop

  7. UML Activity Diagrams • UML (Unified Modelling Language) • Blueprint: visually illustrates the flow (logical sequence) of a programming solution (algorithm). • Activity diagrams aid in breaking down a problem into simple steps

  8. Activity Diagram Symbols Initial Activity: This shows the starting point of the flow. Denoted by a solid circle. Final Activity: The end of the Activity diagram is shown by a bull's eye symbol. Activity: Represented by a rectangle with rounded edges. Indicates that an action is performed by the computer program, such as a mathematical computation or printing something to the screen. Decision. The diamond indicates a decision structure. A diamond always has two flowlines out. Each flowline is labeled with a suitable 'guard' expression that represents a test condition. Each guard expression is written within square brackets. [age >= 18] [age < 18] In addition, a diamond with incoming arrows and no brackets (guard conditions) can be used to merge different activities (converge) once they have completed performing the required actions.

  9. Activity Diagram Symbols Note: Used for showing additional information or more specific detail about an activity. Flowline. Flowlines connect the symbols of the activity diagram and show the sequence of operations during the program execution.

  10. Activity Diagram Example 1

  11. Activity Diagram Example 2

  12. Anatomy of a C++ program Libraries: toolbox of the tools you need • #include "stdafx.h" • #include <iostream> • using namespace std; • int main() • { • cout << "Hello Word!"; • return 0; // indicates that program has ended successfully • } // end function main namespace General Manager: Starting point of program execution Begin Comment Output statement End

  13. #include "stdafx.h" #include <iostream> using namespace std; int main() { return 0; }

  14. #include "stdafx.h" #include <iostream> using namespace std; int main() { int num1=0, num2=0, num3=0, sum=0, avg=0; return 0; }

  15. #include "stdafx.h" #include <iostream> using namespace std; int main() { int num1=0, num2=0, num3=0, sum=0, avg=0; cout << "Please enter 3 numbers"; cin >> num1; cin >> num2; cin >> num3; return 0; }

  16. #include "stdafx.h" #include <iostream> using namespace std; int main() { int num1=0, num2=0, num3=0, sum=0, avg=0; cout << "Please enter 3 numbers"; cin >> num1; cin >> num2; cin >> num3; sum = num1 + num2 + num3; return 0; }

  17. #include "stdafx.h" #include <iostream> using namespace std; int main() { int num1=0, num2=0, num3=0, sum=0, avg=0; cout << "Please enter 3 numbers"; cin >> num1; cin >> num2; cin >> num3; sum = num1 + num2 + num3; avg = sum / 3; return 0; }

  18. #include "stdafx.h" #include <iostream> using namespace std; int main() { int num1=0, num2=0, num3=0, sum=0, avg=0; cout << "Please enter 3 numbers"; cin >> num1; cin >> num2; cin >> num3; sum = num1 + num2 + num3; avg = sum / 3; cout << "Sum = " << sum; return 0; }

  19. #include "stdafx.h" #include <iostream> using namespace std; int main() { int num1=0, num2=0, num3=0, sum=0, avg=0; cout << "Please enter 3 numbers"; cin >> num1; cin >> num2; cin >> num3; sum = num1 + num2 + num3; avg = sum / 3; cout << "Sum = " << sum; cout << "Average = " << avg; return 0; }

  20. #include "stdafx.h" #include <iostream> using namespace std; int main() { int num1=0, num2=0, num3=0, sum=0, avg=0; cout << "Please enter 3 numbers"; cin >> num1; cin >> num2; cin >> num3; sum = num1 + num2 + num3; avg = sum / 3; cout << "Sum = " << sum; cout << "Average = " << avg; cin.ignore(); return 0; }

  21. #include "stdafx.h" #include <iostream> using namespace std; int main() { int num1=0, num2=0, num3=0, sum=0, avg=0; cout << "Please enter 3 numbers"; cin >> num1; cin >> num2; cin >> num3; sum = num1 + num2 + num3; avg = sum / 3; cout << "Sum = " << sum; cout << "Average = " << avg; cin.ignore(); return 0; }

  22. CASE and Basic Diagramming Tools • General • Visio, SmartDraw • OOP • BlueJ, Enterprise Architect, Eclipse, Rational Rose, Select Architect, Visual Paradigm • CASE tools (including a code generation feature) • OOP • Visual Paradigm (commercial) • Rational Rose (commercial) • BlueJ (open-source) • Procedural • Scarce or non-existent?

  23. Compromise: Visio + Visual IDE

  24. Compromise: Visio + Visual IDE • Disjointed effort between the design and the implementation of a programming solution • Students don't mind investing time in designing a programming blueprint as long as it saves them time in writing the code for the solution.

  25. The Challenges Ahead… • The 2-pane Powerpoint slide presentation cannot be used effectively for demonstrating a complex programming solution (e.g. with multiple conditional statements and loops) • Request for • an alternative to standard presentation software that is more fit for presenting and teaching programming topics • an affordable CASE tool that includes a 'code-generation' feature for basic procedural programming • Bigger LCD projector screens/ computer monitors for preparing and demonstrating programming lectures

More Related