Presentation is loading. Please wait.

Presentation is loading. Please wait.

Unit 1 Introduction to C Programming. What is a Program? Unit 1: Programs.

Similar presentations

Presentation on theme: "Unit 1 Introduction to C Programming. What is a Program? Unit 1: Programs."— Presentation transcript:

1 Unit 1 Introduction to C Programming

2 What is a Program? Unit 1: Programs

3 Recall: A Computer System is … Hardware Central processing unit (CPU) Main memory (RAM, ROM) Secondary memory (Hard disk, CD, DVD, flash drive, etc) Input devices Output devices Network interface Power supply Software Firmware Operating system Application programs

4 What is a Software Program? A set of instructions Performs a specific task Required to make the hardware do something The hardware runs or executes it Must be in main memory (RAM or ROM) Is written in machine language (specific to a CPU) Consists of binary 1s and 0s

5 How a Program gets into Memory It is always stored in memory (ROM) Firmware such as a PC BIOS Embedded systems contain ROM or Flash From secondary storage when needed Read from the Hard Disk into main memory Read directly from a CD or DVD into main memory Via the network Automatic updates from the program vendor Web pages and web applications with active content Mobile applications Cloud computing

6 Programs are Very Diverse … Mobile applications – Info services and transactions Web applications – Web pages, shopping, Virtual Library Business applications – Word processing, email, accounting Leisure applications – Games, e-book readers Educational applications – Language learning, encyclopedia Batch data processing – Payrolls, bank statements Server software – Provide information services via web Operating systems – Control hardware, software, security Control systems – Automation, energy management Embedded software – Routers, printers, appliances, automobiles, cameras, watches, cell phones, lighting control

7 …But Programs Have Much in Common Programs process information Information is stored in the form of binary data Different types of information use different data types Programs acquire input data Programs produce output data Programs are implementations of algorithms Algorithms are precise solutions to problems Programs are written in programming languages May be compiled (translated) to machine language May be compiled to intermediate form and then interpreted

8 This Class Introduces Programming Programming is the discipline and art of creating software Focus is on fundamental concepts and building skills Examples, labs, and projects will use the C language Prerequisite class – NT1110 Computer Structure & Logic Future classes: ELCT: ET2640 Microprocessors and Microcontrollers ELCT: ET2750 Programmable Logic Controllers EECT: ET4560 C++ Programming EECT: ET4640 Embedded Systems

9 Programs Relevant to Electronics Unit 1: Programs

10 Program-based Solutions Programs used to solve electrical engineering problems Solutions of equations needed for design and analysis Example: Iterative calculations of roots of complex polynomials Example: – Knowledge computation Try: 0.45 ohms per foot for 100 meters Simulation software to try circuit design before building Multisim Chip design software Cost is hundreds of thousands of dollars per workstation One design engineer can access immense libraries of knowledge Simulations can save millions in time and manufacturing costs

11 What is a Control System? An electronic control system is a device that: Regulates a process (such as a manufacturing system) Components: Sensors – Convert physical variables to electronic signals Controllers – Based on sensor data, send signals to actuators Actuators – Use electronic signals to affect physical world Example: A commercial baking oven Example: An automobile engine The controller can be … Analog electronics Hard-wired digital electronics A programmable computer-based controller

12 Benefits of Programmable Control Flexibility – can be reprogrammed Upgradable Can have optional features Defects can be easily repaired Lower engineering costs Standard hardware designs available Software designs can be reused Self-testing and error reporting Programmable logic controllers – PLCs Off-the-shelf hardware Simplified programming

13 Embedded Systems Found everywhere as part of electronic devices Examples: Watches, calculators, appliances, irrigation and lighting systems, copiers, traffic lights, MP3 players Pre-programmed computer Dedicated to a few functions inside a device Often must be real-time (respond immediately to events) Non-stop computing (continuously functioning) Traditionally viewed as non-reprogrammable Reprogrammability is becoming commonplace Therefore, programming is essential to electronics students!

14 How are Programs Created? Unit 1: Software Development Process

15 Creating a Program Use problem solving skills Create an algorithm Implement the algorithm in a programming language Understand the programming model Use specialized tools Use software engineering methodology

16 Use Problem-Solving Process Heuristics (strategies) for successful problem solving Five-step process (from Strategies for Creative Problem Solving, Fogler et al) 1. Define the problem 2. Generate possible solutions 3. Evaluate and decide on a solution 4. Implement the solution 5. Evaluate the solution

17 Develop Problem-Solving Skills A good programmer is an effective problem solver Has a belief that problems can be solved through analysis Develops a high level of problem-solving skills: Active – Makes sketches, draws figures, asks questions Methodical – Keeps track of progress in solving the problem Detail-oriented Takes great care to understand facts and relationships Checks and re-checks for accuracy

18 Create an Algorithm Develop an algorithm before writing a program Use precise statements Based in mathematics and logic Clear and concrete language Define a step-by-step process Goal is solution to a problem

19 Use a Programming Language A computers CPU uses machine language Consists of binary values representing instructions Not practical for human programmers Assembly language Low-level language closely tied to machine language Once widely used, now only specialized use High-level languages Hundreds to thousands of languages in use Much easier to use than assembly and machine language Compiler provides automatic translation to machine language

20 Based on a Programming Model The operating system (OS) presents the programming model An OS is used on all but the smallest computers Controls the hardware Standardizes access to files, shared resources May be console user interface or graphical (GUI) user interface Console-based user interface Called command-line access Based on text serial input and output Graphical user interface (GUI) Based on point-and-click or touch screen and windowed interface Event-driven, object-oriented model Embedded systems may not have a user interface at all

21 The Compiler Approach A compiler is a translation program Input is written using a programming language Output is assembly language for one specific CPU instruction set Assembler may be included or separate Completes the translation into machine language Linker Combines translated program pieces with library pieces Creates a complete, executable module Operating system and loader Loads module into main memory and starts execution Process must be done again for each type of host system

22 The Interpreter Approach Compiler creates an intermediate representation Program is neither in high-level language, nor machine language Instead, it is virtual instructions in an intermediate language The virtual instructions are the same for all CPUs Interpreter follows the virtual instructions A different interpreter is needed for each CPU type Benefits A single compilation can theoretically be used on all computers Presents a common programming model on multiple CPUs Drawback Interpreters are slower than compiled (native) programs

23 The Just-In-Time (JIT) Approach Compiler Creates an Intermediate Language (IL) representation Runtime system Does not interpret Contains a compiler which completes compilation Result is machine language produced just before execution Best of both worlds Code can be Compiled once, Run anywhere (e.g. Java,.NET) Single programming model regardless of computer host Program execution speed is comparable to native code

24 Specialized Programming Tools Editor Compiler Assembler Debugger Support files Libraries Integrated development environment Complete package of tools Uses a project-based approach

25 Software Engineering Waterfall model, iterative model, agile development Processes to move from idea to product Lifecycle management Beginning-to-end product management Includes program maintenance over time Support and structure for working in teams Coding standards Change control Project management Human factors User friendly design, ease of use

26 What is an Algorithm? Unit 1: Algorithms

27 Software Development Method 1. Specify the problem requirements 2. Analyze the problem 3. Design the algorithm to solve the problem 4. Implement the algorithm as a program 5. Test and verify the completed program 6. Maintain and update the program

28 Analyzing the Problem Requires identifying the … Inputs – the data available to work with Outputs – the desired results Including the format of the output Additional requirements Constraints

29 Producing the Algorithm List of steps from beginning to end Begin at step 1, have a specific step to End Dont try to get every detail at first Use top-down design: Break the problem into subproblems Solve each subproblem individually Similar to outlining a written paper Use pseudo-code combined with flowcharting Desk-check the algorithm

30 Convert the Algorithm to a Program Implement the flowchart and pseudo-code as a program Verify that the program compiles Test the program Create several test cases and verify the results Test boundary conditions Enter erroneous data intentionally If the program behaves unexpectedly, back up Double-check the algorithm, modify if needed Double-check the program, modify if needed Use debugging tools and techniques

31 Identify Variables Information in an algorithm is put into variables A variable is the programming term describing the storage of a single datum or a collection of data. In a program, the compiler will put the variables into memory Each data item used in the algorithm should be given a name Each name should be distinct and used for only one variable Data types for variables include: Integers: 0, 12, -53 Decimal numbers: 22.76, 193.1 Decimals in scientific notation 3.0x10 8 Character strings (in double-quotes) Programming is fun!

32 Simple Example: miles to kilometers Problem statement Convert a distance in miles to kilometers Identify the inputs dist_in_miles A decimal number representing a distance in miles Identify the outputs dist_in_kms A decimal number representing the distance in kilometers

33 List the Steps to Solve the Problem Break the problem into steps: 1. Input the dist_in_miles 2. Convert dist_in_miles to kilometers 3. Output the dist_in_kms As you can see, step 2 is not precise, because it does not specify how to do the conversion. This is not yet a complete algorithm.

34 What is the Formula for Step 2? One mile is equal to approximately equal to 1.609 km A number of miles can be converted to kilometers by multiplying by 1.609 The formula is: dist_in_km = dist_in_mi × 1.609

35 Algorithm to Convert mi to km 1. Input the dist_in_miles 2. Convert dist_in_miles to kilometers a) Multiply dist_in_miles by 1.609 b) Put the result in dist_in_kms 3. Output the dist_in_kms 4. End This algorithm accomplishes the task, but it is not user-friendly. We need to add some human factors to the algorithm.

36 An Improved Algorithm 1. Output Convert miles to kilometers 2. Output Please enter the distance in miles 3. Input dist_in_miles 4. Convert dist_in_miles to kilometers a) Multiply dist_in_miles by 1.609 b) Put the result in dist_in_kms 5. Output The distance in kilometers is 6. Output dist_in_kms 7. End As you can see, creating a good algorithm requires substantial effort and attention to details

37 An Algorithm to List #s < 10 1. Output List of Numbers less than 10 2. Put 1 in number 3. Output number 4. Add 1 to number 5. If number is less than 10, go back to step 3 6. End Notice this algorithm has no inputs, only one variable, number

38 An Algorithm to List Odd #s < 10 1. Output List of Odd Numbers less than 10 2. Put 1 in number 3. If number is even, skip to step 5 4. Output number 5. Add 1 to number 6. If number is less than 10, go back to step 3 7. End Is this an algorithm? Is step 3 sufficiently precise?

39 An Algorithm to List Odd #s < 10 1. Output List of Odd Numbers less than 10 2. Put 1 in number 3. If number divided by 2 has remainder 0, go to step 5 4. Output number 5. Add 1 to number 6. If number is less than 10, go back to step 3 7. End Now we have precise instructions which can be followed!

Download ppt "Unit 1 Introduction to C Programming. What is a Program? Unit 1: Programs."

Similar presentations

Ads by Google