Presentation is loading. Please wait.

Presentation is loading. Please wait.

Progressive Disclosure Diagramming Techniques Haytham Siala Tel: 0208 392 3481.

Similar presentations


Presentation on theme: "Progressive Disclosure Diagramming Techniques Haytham Siala Tel: 0208 392 3481."— Presentation transcript:

1 Progressive Disclosure Diagramming Techniques Haytham Siala 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 Start num1=0, num2= 0, result = 0 Read num1, num2 result = num1 + num2 Output result Stop Flowcharts

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 #include "stdafx.h" #include using namespace std; int main() { cout << "Hello Word!"; return 0; // indicates that program has ended successfully } // end function main Libraries: toolbox of the tools you need Comment General Manager: Starting point of program execution Output statement Begin End namespace

13

14

15 #include "stdafx.h" #include using namespace std; int main() { return 0; }

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

17 #include "stdafx.h" #include 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; }

18 #include "stdafx.h" #include 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; }

19 #include "stdafx.h" #include 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; }

20 #include "stdafx.h" #include 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; }

21 #include "stdafx.h" #include 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; }

22 #include "stdafx.h" #include 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; }

23 #include "stdafx.h" #include 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; }

24 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?

25 Compromise: Visio + Visual IDE

26 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.

27 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


Download ppt "Progressive Disclosure Diagramming Techniques Haytham Siala Tel: 0208 392 3481."

Similar presentations


Ads by Google