COMP 1020: Structured Programming (2) - PowerPoint PPT Presentation

1 / 56
About This Presentation
Title:

COMP 1020: Structured Programming (2)

Description:

Title: Slide 1 Author: Kang Tsang Last modified by: KT Created Date: 11/6/2006 10:02:15 AM Document presentation format: On-screen Show (4:3) Other titles – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 57
Provided by: Kang175
Category:

less

Transcript and Presenter's Notes

Title: COMP 1020: Structured Programming (2)


1
COMP 1020Structured Programming (2)
  • Instructor Prof. Ken Tsang
  • Room E409-R11
  • Email kentsang_at_uic.edu.hk

2
TA information
  • Mr Fu Song-feng ???
  • Room E409 Tel 3620630
  • songfengfu_at_uic.edu.hk

3
Web-page for this class
  • Watch for announcements about this class and
  • download lecture notes from
  • http//www.uic.edu.hk/kentsang/comp1020/comp1020.
    htm
  • Or from this page
  • http//www.uic.edu.hk/kentsang/
  • Or from the Ispace

4
Tutorials
  • One hour each week
  • Time place to be announced later (we need your
    input)
  • More explanations
  • More examples
  • More exercises

5
How is my final grade determined?
  • Lab works 15
  • Project 20
  • Quizzes 15
  • Final Examination 50

6
UIC Score System
7
Grade Distribution Guidelines
8
Reference
  • The C Programming Language
  • by Brian W. Kernighan Dennis M. Ritchie

Published by Prentice-Hall in 1988 ISBN
0-13-110362-8 (paperback)
9
Reference books
  • Practical C Programming
  • by Steve Oualline, OReillyAssociates
  • Practical C Programming
  • by Steve Oualline, OReillyAssociates
  • C Programming A Modern Approach by K.N. King
  • http//www.cprogramming.com/tutorial/c/lesson15.ht
    ml

10
Why do we have to learn programming?
  • Big Data
  • There is a lot of data around us, because
  • It is cheap to obtain store
  • It is difficult to capture, store, manage, share,
    analyze and visualize data without using
    computational tools.

11
The McKinsey Global Institute
12
How Companies Learn Your Secrets
By CHARLES DUHIGG Published February 16, 2012
13
  • Lecture 1
  • Introduction basic knowledge of computer
    hardware and software
  • Structured Programming Instructor Prof. K. T.
    Tsang

14
Computer -- a machine for manipulating data
according to a list of instructions known as a
program.
  • Supercomputer, Mainframes
  • Workstations, Servers
  • Personal computers, Laptops
  • Embedded computers Cell phones, Digital cameras,
    Fighter aircrafts, robots

15
Basic components of a computer
D data I information
16
CPU - central processing unitprocessor/central
processor
  • The CPU is the brains of the computer, where most
    calculations take place and determines the power
    of the system.
  • In personal computers and small workstations, the
    CPU is housed in a single chip called a
    microprocessor. More powerful computers have
    more than one processors.
  • Typical components of a CPU are
  • The arithmetic logic unit (ALU), which performs
    arithmetic and logical operations.
  • The control unit (CU), which extracts
    instructions from memory and decodes and executes
    them, calling on the ALU when necessary.
  • The Registers, temporarily hold instructions and
    data.

17
Machine instruction cycle(also called machine
cycle, instruction cycle)
  • The time period during which one instruction is
    fetched from memory and executed when computer is
    given an instruction in machine language.
  • Four stages of an instruction cycle
  • Fetch the instruction from memory. This step
    brings the instruction into the instruction
    register, a circuit that holds the instruction so
    that it can be decoded and executed.
  • Decode the instruction.
  • Execute the instruction.
  • Store the result in memory.
  • Steps 1 and 2 are called the fetch cycle and are
    the same for each instruction. Steps 3 and 4 are
    called the execute cycle and will change with
    each instruction.

18
Computer memory (or casually memory) --computer
components/devices that retain data/programs for
some interval of time.
  • Computer storage provides one of the core
    functions of the modern computer, that of
    information retention. It is one of the
    fundamental components of all modern computers.

19
Von Neumann Architecture for computer
  • CPU
  • Main memory
  • I/O modules move data between computer and its
    external environment, including secondary memory
    devices (e.g. disks) communication equipments and
    terminals.
  • System buses move data between CPU, main memory
    and I/O devices.

20
Memory/ Storage
  • Memory usually refers to a form of solid state
    storage known as random access memory (RAM) and
    sometimes other forms of fast but temporary
    storage.
  • Storage more commonly refers to mass storage
    optical discs, forms of magnetic storage like
    hard disks, and other types of storage which are
    slower than RAM, but of a more permanent nature.

21
RAM a data storage formats and equipment that
allow the storing data to be accessed in any
order that is, at random, not just in sequence.
  • In contrast, other types of memory devices (such
    as magnetic tapes, disks, and drums) can access
    data on the storage medium only in a
    predetermined order due to constraints in their
    mechanical design.

22
RAM
  • RAM in a computer is considered main memory
    (primary storage). The arithmetic and logic unit
    can very quickly transfer information between a
    processor register and locations in main storage
    (memory addresses). In modern computers, RAM is
    directly connected to the CPU via a "memory bus"
    and a "data bus". In general, a faster memory bus
    means higher processing speeds and a faster
    computer.
  • RAM is also volatile, losing the stored
    information in an event of power loss, and quite
    expensive.
  • This type of RAM is usually in the form of
    integrated circuits (IC). Most personal computers
    have slots for adding and replacing memory chips.
  • A location in memory is identified by its
    address. The data hold in a memory address can be
    changed, but the address itself remains the same.

23
Memory Hierarchy
  • Inboard memory Registers fastest
  • Cache
  • Main memory
  • Outboard storage magnetic disk
  • CD-ROM
  • CD-RW
  • DVD
  • Off-line storage magnetic tape
  • Network-attached storage (NAS)

24
Three kinds of Primary memory
  • Processor registers are internal to the CPU.
    Registers contain information that the arithmetic
    and logic unit needs to carry out the current
    instruction. They are technically the fastest of
    all forms of computer storage.
  • Cache memory is a special type of internal memory
    used by many CPUs to increase their performance.
  • Main memory contains the programs that are
    currently being run and the data the programs are
    operating on.

25
Inboard memory
ALU
Registers
Main memory (RAM)
Memory bus
Cache memory
CPU
26
Registers -- a small amount of very fast memory
used to speed the execution of programs by
providing quick access to commonly used
valuestypically, the values being calculated at
a given point in time.
  • Most, but not all, modern computer architectures
    operate on the principle of moving data from main
    memory into registers, operating on them, then
    moving the result back into main memorya
    so-called load-store architecture.
  • All data must be represented in a register before
    it can be processed. For example, if two numbers
    are to be multiplied, both numbers must be in
    registers, and the result is also placed in a
    register.
  • The number of registers that a CPU has and the
    size of each (number of bits) help determine the
    power and speed of a CPU. For example a 32-bit
    CPU is one in which each register is 32 bits
    wide. Therefore, each CPU instruction can
    manipulate 32 bits of data.

27
Cache -- a block of memory for temporary storage
of data likely to be used again
  • A simple definition of Cache A temporary
    storage area where frequently accessed data can
    be stored for rapid access.
  • Once the data is stored in the cache, future use
    can be made by accessing the cached copy rather
    than re-fetching or re-computing the original
    data, so that the average access time is lower.

28
Inboard memory
L2 Cache
ALU
Registers
Memory bus
L1 Cache
Memory bus
Main memory (RAM)
CPU
29
Software Basics
  • Computer Hardware Software
  • Software
  • Application software
  • Address users' specific needs in the real world
  • word processing, music software, image editing,
    games, database programs, inventory control
    systems, etc.
  • System software
  • Operating system
  • Device drivers
  • Utilities
  • Programming software tools (compilers, debuggers,
    etc.)

30
The Computer Level Hierarchy
31
Operation System -- A set of programs to
coordinate all activities of among computer
hardware devices, to exploit resources provided
by one or more processors.It is a layer of
software to hide all the details of machine
complication from system users. All high level
programming activities are performed on top of
the OS.
  • Examples
  • DOS, Window, Window XP
  • UNIX, Linux
  • Mac OS

32
Layered-view of a computing system
End user
Programmer
Application programs
Operating system Designer/programmer
utilities
Operating system
Computer hardware
33
(No Transcript)
34
Machine and Assembly Language
35
What an assembler does
36
High Level Language
AREA HEIGHT WIDTH
37
High Level Language
38
Construction of a Program
39
Computer programming
  • (or simply programming or coding) is the process
    of writing a set of commands or instructions that
    can later be compiled and/or interpreted and then
    transformed to an executable that an electronic
    machine can execute or "run".
  • Programming requires mainly logic, but has
    elements of science, mathematics, engineering,
    and many would argue art.
  • Programming requires the use of a programming
    language that the computer can understand.
  • In software engineering, programming
    (implementation) is regarded as one phase in a
    software development process.

40
Programming Language
  • The only programming language a computer can
    directly execute is machine language (sometimes
    called "machine code").
  • Originally all programmers worked out every
    detail of the machine code (machine dependent),
    but this is hardly ever done anymore.
  • Instead, programmers write high-level source
    code, and a computer (by running a compiler, an
    interpreter or occasionally an assembler)
    translates it through one or more translation
    steps to fill in all the details, before the
    final machine code is executed on the target
    computer.

41
Programming Language (2)
  • In some languages, an interpretable byte-code is
    generated, rather than machine language.
    Byte-code is used in the popular Java by Sun
    Microsystems, as well as Microsofts recent .NET
    family of languages and Visual Basic previous to
    the .NET version.
  • Different programming languages support different
    styles of programming. Part of the art of
    programming is selecting one of the programming
    languages best suited for the task at hand.
    Different programming languages require different
    levels of detail to be handled by the programmer
    when implementing algorithms, often in a
    compromise between ease of use and performance (a
    trade-off between "programmer time" and "computer
    time").

42
History of C C
C
43
How C C work?
44
Difference between C and C
(including C)
45
Procedural Programming
  • specifying the steps the program must take to
    reach the desired state
  • based upon the concept of procedure calls
  • Simple sequential or unstructured programming in
    many situations which involve moderate complexity
    will lead to so-called spaghetti code.

46
  • Structured programming (using C)can be seen as a
    subset or sub-discipline of procedural
    programming, one of the major programming
    paradigms (other paradigm object oriented
    programming with C)
  • It is most famous for removing or reducing
    reliance on the GOTO (or "go to") action.

47
Benefits of structured programming
  • The ability to re-use the same code at different
    places in the program without copying it.
  • An easier way to keep track of program flow than
    a collection of "GOTO" or "JUMP" Actions (which
    can turn a large, complicated program into
    so-called spaghetti code).
  • The ability to be strongly modular.

48
Low-level structure
  • At a low level, structured programs are composed
    of simple, hierarchical program flow structures.
    These are regarded as single Actions, and are the
    same time ways of combining simpler Actions,
    which may be one of these structures, or
    primitive Actions such as assignments or
    procedure calls. Three common types of structure
    were concatenation, selection, and repetition.
  • "Concatenation" refers to a sequence of Actions
    executed in order.
  • In "selection", one of a number of Actions is
    executed depending on the state of the program.
    This is usually Expressed with keywords such as
    if..then..else..endif, switch, or case.
  • In "repetition" a Action is executed until the
    program reaches a certain state or applied to
    every element of a collection. This is usually
    Expressed with keywords such as while, repeat,
    for or do..until. Often it is recommended that
    each loop should only have one entry point (and
    in the original structural programming, also only
    one exit point), and a few languages enforce this.

49
High-level structure
  • Coders should break larger pieces of code into
    shorter subroutines (functions, procedures.
    methods, blocks, or otherwise) that are small
    enough to be understood easily.
  • In general, programs should use global variables
    sparingly instead, subroutines should use local
    variables and take arguments by either value or
    reference. These techniques help to make isolated
    small pieces of code easier to understand without
    having to understand the whole program at once.

50
(No Transcript)
51
(No Transcript)
52
Programming Tools (1)
53
Programming Tools (2)
54
Programming Tools (3)
55
Wrappers or IDEs
56
Programming with Wrappers or IDEs
Text editor
Write a Comment
User Comments (0)
About PowerShow.com