Lecture 1: Course Introduction Overview of Computers and their Applications in MAE
BJ Furman 29JAN2010
The Plan for Today
Welcome to ME 30 Roll call Recap syllabus (aka, ‘greensheet’) Overview of computers and their applications in MAE Recap structured programming, algorithms, pseudocode, and flowcharts Ö Form of a C program Data types and variables
Learning Objectives
Explain the focus of the course
Describe where and how computers are used by mechanical and aerospace engineers (MAEs)
List some of the software commonly used by MAEs
Describe what the major elements of a computer are and what they do conceptually
Explain what is meant by ‘structured programming’
Describe the structure of a C program
List and describe the important data types
Declare a variable
Roll Call
Review of the Syllabus and Where to Find Things
Available at
www.engr.sjsu.edu/bjfurman/courses/ME30/ and sjsu.desire2learn.com My contact and office information My background Course information
Course goals and learning objectives Textbook Policies and protocol Grading Resources Course schedule
Focus of ME 30
Solving problems with computers
Learn structured programming using the C language
Learn the process for formulating a computational solution to a problem Practice the process
Get prepared for learning about mechatronics
Gain familiarity with other software used by MAEs for technical computing
Matlab Excel
Where and How are Computers Used in MAE?
??
Where and How are Computers Used in MAE? 1
Technical and Personal Communication
Email
Word processing
(reports, procedures, etc.)
Presentations
Conferencing
Computation and Analysis
Arithmetic
Equation solving
Data analysis and visualization
Multiphysics and numerical modeling
sin(r)/r
Where and How are Computers Used in MAE? 2
Design
Solid modeling (ME 165) Finite Element Analysis (FEA) (ME 160) Dynamic modeling and simulation (ME 147, ME 187, ME 190) Design tradeoffs and analytical modeling of mechanical components and systems (ME 154, ME 157)
Gathering Information
Web searches Patent searches Databases Vendor and other websites Datasheets
Where and How are Computers Used in MAE? 3
Testing and Experimental Work
Laboratory and Factory Automation and Control
Dynamic systems (ME 187, ME 190)
Instrumentation and Product Design
Data acquisition from sensors (ME 120)
http://las.perkinelmer.com/Content/Images /smallImages/janusLabAuto.jpg
Embedded controllers (ME 106, ME 190)
MRP, Inventory, and Document Control
Drawings Procedures Bill of Materials (BOM) Specifications Engineering change orders (ECOs)
http://www.plm.automation.siemens.com/en_us/products/teamcent er/solutions_by_product/mechatronics_process_management.shtm l
What Software is Most Often Used? 1
Technical and Personal Communication
Email (MS Outlook, Mozilla Thunderbird) Word processing (MS Word, Open Office) Presentations (MS Power Point, Open Office)
Computation and Analysis
Spreadsheets (MS Excel, Open Office Calc) Mathcad/Maple/Mathematica Matlab/Octave/Scilab TK Solver Maxima
What Software is Most Often Used? 2
Design
Solid modeling (Solidworks, ProE, Inventor, Unigraphics)
Finite Element Analysis (Cosmos, ProMechanica, Nastran)
Dynamic modeling and simulation (Matlab/Simulink, )
Design tradeoffs and analytical modeling of mechanical components and systems (Excel, Mathcad, Matlab, TK Solver)
Gathering Information
Web searches (Google, other search engines) Patent searches (Google Patent, USPTO website) Databases (see the SJSU Articles & Databases website: http://www.sjlibrary.org/research/databases/index.htm?getType=3
Vendor and other websites (Google, other search engines) Datasheets (Google, vendor websites)
What Software is Most Often Used? 3
Testing and Experimental Work
Lab View, C, Matlab
Laboratory and Factory Automation and Control
Lab View, C, Visual Basic
Instrumentation and (Mechatronic) Product Design
C, Matlab, Lab View (see “Real Men Program in C”)
Product Data Management
Siemens PLM Oracle Agile Dassault Enovia
The Bottom Line Mechanical and aerospace engineers use computers widely You need to know how to use computers to help you be successful ME 30 will help you especially in the area of computation and analysis
Focus will be on the C language
Exposure to Matlab
I hope it will also whet your appetite to learn about mechatronics Next -->
Networking Introduce yourself to someone you DO NOT know Find out one thing about them that they like to do in their spare time
Two minutes!
Back
What do computers actually do?
Perform arithmetic operations
Addition, subtraction, multiplication, division
Compare two values
And decide among alternative courses of action
If a > b, then do action c
Move data around internally (memory and peripherals) Input data (keyboard, mouse, sensors, etc.) Output data (display, I/O ports, etc.) And do all of this really fast ….
What’s Inside and How Does it Work?
Personal Computer (PC) Anatomy
Case or housing
Power supply Motherboard
CPU Memory Video and audio chipsets Networking I/O ports
Hard disk
Embedded computers likely not to have
Solid state sometimes now
Peripherals
CD or DVD drive
Computer Block Diagram Disk controller
CPU
Memory
USB, Serial, Keyboard, Mouse, etc.
Ports
Video chipset
Display
Audio chipset
Speakers
Networking chipset Bus
Hard drive, CD/DVD
Internet
Memory
Stores program instructions and data Each location has an ‘address’ Each location stores the information as ‘bits’
Binary ____its
Zero or one
Memory (8-bit)
Address 0x10FE
0
1
1
0
0
1
1
0
0x10FF
0
1
0
1
0
1
0
0
0x1100
0
0
0
0
0
0
0
0
0xFFFF Bit
7
6
5
4
3
2
1
0
8 bits is one byte Information is ‘coded’ Memory is ‘written’ or ‘read’
CPU
The ‘brain’ of your computer
Carries out the instructions of your program
Essential components:
Arithmetic Logic Unit (ALU)
Does arithmetic and logic functions
Controls the actions inside the CPU
Registers
Add and subtract (sometimes multiply and divide) Bit-wise logic: AND, OR, NOT, XOR Bit shift (left or right)
ALU CU
Control Unit (CU)
CPU
Temporary locations to store data, instructions, and addresses
Clock
Synchronizes operations in the CPU
Clock
Registers
Instructions
Data
Memory
Adapted from Fundamentals of Computer Organization and Architecture, M. Abd-El-Barr, H. El-Rewini, John Wiley and Sons, 2005
Ports
Connection to the external world
USB Serial Keyboard Monitor Pins on a microcontroller
http://media.digikey.com/photos/Atmel %20Photos/453-64-TQFP.jpg
Voltage level determines whether a 0 or a 1
Ex. 5 V logic: < 1.5 V = 0 > 3.5 V = 1 http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf
Software
The intermediary between you (the user) and the hardware
Operating system (OS) see the next page
Windows, OS X, Linux
Application programs
End-user applications Word processor, solid modeler, etc.
Mathcad, Matlab, etc.
Application development software (programming languages)
C, Matlab (sort of), Lab View (sort of), Python, Java, FORTRAN, etc.
Operating System (OS)
A program that:
Acts as an intermediary between hardware and application software Provides a consistent, stable way for applications to interact with hardware
APIs, so you don’t have to do it all yourself
Examples:
Windows XP/Vista Linux OS X
http://en.wikipedia.org/wiki/File:Operating_system_placement.svg
Create/Edit source files (your program!)
Program Development from Figure 1.11, p. 32 in HK
note additions!
Compile source files
Link compiled files Load executable file Run your program! Test Repeat process
Correct Not correct
Review
References
http://www.karbosguide.com/
http://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/Asus_a8n_VMCSM02.jpg /645px-Asus_a8n_VMCSM02.jpg Fir0002/Flagstaffotos. Retrieved 22MAY2009. http://en.wikipedia.org/wiki/Operating_system. Wikipedia. Retrieved 23MAY2009. http://www.embeddedsys.com/. Visited 23MAY2009.
Embedded Computers and Microcontrollers Microcontrollers ATtiny10 microcontroller, with 1K bytes of programmable Flash memory, and 32 bytes of internal SRAM
http://media.digikey.com/photos/Atmel %20Photos/313-64-TQFP.jpg
http://media.digikey.com/photos/Atmel %20Photos/453-64-TQFP.jpg
Single-board computer
http://www.electropages.com/articl eImages/large/12813.jpg
http://www.oxisso.com/Microcontrollers/At mega128TinyBoard_Show.jpg
Back http://www.embeddedsys.com/subpages/products/images/pdf/microsys_sbc1586_datasheet.pdf
Power Supply ATX power supply MFG: ECHO-STAR P/N: ES-450-24 STYLE: ATX-20/24 Input: 110/220 VAC 50-60Hz Output #1: +3.3V @ 28A #2:+5V @ 34A #3: +5VDCSB @ 2A #4: +12V @ 14A #5: -12V @ .8A #6: -5V @ .5A (450W Max combined output) http://www.mpja.com/prodinfo.asp?number=16581+PS
Back
Motherboard Asus a8n VMCSM02 - Supports AMD Socket 939 Athlon 64FX / Athlon 64 X2 / Athlon 64 - NVIDIA GeForce 6150 + nForce 430 - Dual-channel DDR400 - PCI Express architecture - Integrated GeForce6 GPU - Dual VGA Ouput:DVI-D & RGB - NVIDIA Gigabit LAN with NVIDIA ActiveArmor Firewall - 4 x SATA II (RAID 0, RAID 1, RAID 0+1, RAID 5) - 1394a Support - High Definition Audio
http://en.wikipedia.org/wiki/File:Asus_a8n_VMCSM02.jpg Fir0002/Flagstaffotos
Back
My Background
Almost native SJ
Willow Glen High School class of ’76
Education – first round
UC Davis
Industry experience – first round
IBM GPD – 1982 - 1986
Stanford University 1986-1991
IBM SSD 1991 – 1993
3390 product development 5.25 in. spindle motor dev.
Academia
Non-contact rotor balancing
Industry experience – second round
3390 actuator development
Education – second round
BSME – 1980 MEME – 1982
SJSU MAE – 1994 to pres.
Personal
Married 10-year old daughter Hobbies: build things, fix things, garden, read, hike, amateur radio (ARES) Most significant: relationship to God through Jesus Christ
www.leaderu.com Æ Faculty Offices (under Academics)
Back
Structured Programming Sequence Selection
IF
IF – ELSE
SWITCH
Repetition WHILE
DO – WHILE
FOR
Flowchart constructs
Algorithm
What is an algorithm? A recipe
A procedure
Definition:
“well-ordered collection of unambiguous and effectively computable operations, that when executed, produces a result and halts in a finite amount of time.” definition from: An Invitation to Computer Science (Gersting/Schneider) via http://www.cs.xu.edu/csci170/08f/sect01/Overheads/WhatIsAnAlgorithm.html (visited 19JUN2009)
Characteristics of an Algorithm
Well-ordered:
Unambiguous:
the steps are in a clear order the operations described are understood by a computing agent without further simplification
Effectively computable:
the computing agent can actually carry out the operation
Method for Developing an Algorithm 1. Define the problem:
State the problem you are trying to solve in clear and concise terms.
2. List the inputs and the outputs
Inputs: information needed to solve the problem
Outputs: what the algorithm will produce as a result
3. Describe the steps needed to convert or manipulate the inputs to produce the outputs.
High level first
Refine steps until they are effectively computable operations.
4. Test the algorithm:
choose data sets, and verify that your algorithm works!
Pseudocode
natural language-like statements that precisely describe the steps of an algorithm Statements describe actions Focuses on the logic of the algorithm Avoids language-specific elements Written at a level so that code can be generated almost automatically from each statement Steps are numbered
Subordinate numbers and/or indentation are used for dependent statements in selection and repetition structures .
Flowcharts - 1
Flowcharts
A graphical tool that diagrammatically depicts the steps and structure of an algorithm or program Symbol
Name/Meaning
Symbol
Meaning
Process – Any type of internal operation: data transformation, data movement, logic operation, etc.
Connector – connects sections of the flowchart, so that the diagram can maintain a smooth, linear flow
Input/Output – input or output of data
Terminal – indicates start or end of the program or algorithm
Decision – evaluates a condition or statement and branches depending on whether the evaluation is true or false
Flow lines – arrows that indicate the direction of the progression of the program
Flowchart Constructs - Sequence and Selection
Control Structures
from Deitel & Deitel, 6th ed., p. 122
Flowchart Constructs - Repetition
from Deitel & Deitel, 6th ed., p. 122
Control Structures
Example: D&D 3.15c - 1
“Obtain a series of positive numbers from the keyboard, and determine and display their sum. Assume that the user types the sentinel value -1 to indicate "end of data entry"
Define the problem
Statement pretty well defines the problem
List inputs and outputs
inputs: number entered from keyboard outputs: sum of number
Example: D&D 3.15c - 1
“Obtain a series of positive numbers from the keyboard, and determine and display their sum. Assume that the user types the sentinel value -1 to indicate "end of data entry"
Develop the algorithm
High-level first, then refine: 1. Start 2. Declare variables: ________ 3. Repeat while number not equal to -1 3.1. get number 3.2. add to sum 4. Display sum Does this work?
Example: D&D 3.15c - 2
Develop the algorithm, cont.
Refine
1. Start 2. Declare variables: ________ 3. Repeat while number not equal to -1 3.1. get number 3.2. add to sum 4. Display sum
1. Start 2. Declare variables: num, sum 3. while num not equal to -1, continue doing: 3.1. Display prompt “Enter positive number” 3.2. Read number from the keyboard 3.3. Display number entered 3.4. add to sum 4. Display sum Are we there yet?
Example: D&D 3.15c - 3
Develop the algorithm, cont.
Add a test to exclude negative numbers
1. Start 2. Declare variables: num, sum 3. while num not equal to -1, continue doing: 3.1. Display prompt “Enter positive number” 3.2. Read number from the keyboard 3.3. Display number entered 3.4. if num less than zero, then 3.4.1 continue 3.5. add to sum 4. Display sum Are we there now?
Flowchart
Start
Declare variables: num, sum Intialize variables: num = 0, sum = 0
1. Start 2. Declare variables: num, sum 3. while num not equal to -1, continue doing: 3.1. Display prompt “Enter positive number” 3.2. Read number from the keyboard 3.3. Display number entered 3.4. if num less than zero, then 3.4.1 continue 3.5. add to sum 4. Display sum
if num ! = -1
No Display sum
Yes
Display "Enter positive integer"
Read num from keyboard
Display num
Stop
Test the algorithm!
if num < 0
No sum = sum + num
Yes
Structure of a C Program
A formal letter has a structure
So does a program in C
Burford Furman Title Professor Dept. of Mech. and Aero. Eng San José State University San Jose, CA 95192-0087
block
July 20, 2009
Date
Dear Prof. Furman,
Salutation
I’m writing you to see if I can get into ME 30… …
Body
Sincerely,
Closing
Jane Student
Signature
C Code for D&D 3.15c Programmer’s block Pre-processor directive Main function (statements go between { } ) Declare and initialize variables
While loop (repetition structure)
return statement
Programmer’s Block
Include important information (comments) to document the program:
Title Date Author Description Inputs/Outputs Algorithm Revision history
Add comments using one of two methods: 1. /* put comment between */ (note: traditional C) 2. // comment (note: single line only)
Full program
# include (pre-processor directive)
Includes a library file for ‘standard io’
functions for things like printing, etc.
Full program
main() function
Your program needs a main() function
Statements go between the braces { }
main() ends with the return keyword and usually the value zero
If main() runs successfully, it returns a value of zero
Full program
Declare and initialize variables
Variables must be declared before you can use them
Full program
while() Repetition Structure
while (condition) repeat statements between { }
Full program