programming

12
Programming Robert Love, Venkat Jayaraman July 22, 2008 SSTP Seminar – Lecture 9

Upload: farrah-melendez

Post on 31-Dec-2015

25 views

Category:

Documents


2 download

DESCRIPTION

Programming. Robert Love, Venkat Jayaraman July 22, 2008 SSTP Seminar – Lecture 9. Overview. Presentation Engineering Programs The Puzzle Pieces (of Code) The Puzzle/Big Picture Object Oriented Procedural The Missing Pieces: Debugging and Process Control Visual Interfaces Discussion - PowerPoint PPT Presentation

TRANSCRIPT

Programming

Robert Love, Venkat Jayaraman

July 22, 2008SSTP Seminar – Lecture 9

Overview

• Presentation– Engineering Programs– The Puzzle Pieces (of Code)– The Puzzle/Big Picture

• Object Oriented• Procedural

– The Missing Pieces: Debugging and Process Control– Visual Interfaces

• Discussion• Activity

04/19/23 UF Flight Controls Lab 2

Engineering Programs

• Commonly Used Engineering Programming Software– Matlab– C, C++, C#– Java– Fortran, Visual Basic, Excel (old school)– Maple. Mathematica (more for physics and math)– Visual Based Codes• Simulink, Labview, Lego Mindstorms

04/19/23 UF Flight Controls Lab 3

The Pieces: Some Types

• Think of a puzzle, putting together pieces– Menus and user inputs– The “if” statement– The “for/do/while” loop– Variables: Matrices vs. Strings

• Note: Be careful with Row vs. Columns (specify indices)

– Pause, return– Basic Logic: On/off switching, true/false: 1 vs. 0– Counters– Timers

04/19/23 UF Flight Controls Lab 4

The Pieces: Comprehensible Code

• Keep overall structure as organized and efficient as possible!

• Comments– Others may use your code, so keep things

organized with comment blocks and subsections

• Variable Names – Engineers like names with physical meanings– Don’t just label aaa28 if possible!

04/19/23 UF Flight Controls Lab 5

The Pieces: Be Lazy!

• Don’t do the same work twice if possible– Save data and figures (often, not always)

• Record what you did – Often codes have a “command history” that keeps

track for you

• Balance time to build automation into the code vs. the times will have to repeat process

04/19/23 UF Flight Controls Lab 6

The Puzzle: Planning• Try to write out basic flow of solution to puzzle

(like looking at the box top)• Visual Codes (Labview vs. Simulink)• UML: Anyone can code if designed well– This is more a software engineering tool– Learn to speak other engineer’s language and how

to use their tools so you can work with them!

• Ignorance is your enemy!– Look at working codes as if you were learning a

language, study the vocabulary and grammar

04/19/23 UF Flight Controls Lab 7

The Puzzle: Basic Structure

• User Inputs? Final Outputs? Find the flow…• Working Directories• Script vs. function files– Visual Representation: use script to call function files– Try to break small steps into recyclable function files– Inputs and outputs

04/19/23 UF Flight Controls Lab 8

• The unit in procedural programming is a function, and unit in object-oriented programming is a class

• Procedural programming concentrates on creating functions, while object-oriented programming starts from isolating the classes, and then look for the methods inside them.

• Procedural programming separates the data of the program from the operations that manipulate the data, while object-oriented programming focus on both of them

Procedural Programming vs Object Oriented Programming

Trouble Shoot (Debugging)• Syntax vs. Logic errors– Syntax: missing parenthesis or capital

letter somewhere…– Logic errors: you dropped out data, you

are turning the light on when you wanted to be turning it off

• Version Control: Go back in time– Working as a team (on a code)– Ex: Subversion, Allway Sync

04/19/23 UF Flight Controls Lab 10

Make it look pretty…• Graphical User Interfaces (GUI’s)– May obtain input or display output

• Some components– Titles, triggers, check boxes, radio

boxes, entry boxes, sliders, graphs

• Graphing Data– 2D plot, 3D plot, surface plot,

grid/mesh plot– Show what is required!

04/19/23 UF Flight Controls Lab 11

Activity

• Looking at basic code

04/19/23 UF Flight Controls Lab 12