0% found this document useful (0 votes)
14 views45 pages

C# Chapter01A

Uploaded by

Rosel A Aliganga
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views45 pages

C# Chapter01A

Uploaded by

Rosel A Aliganga
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 45

1

Introduction to
Computing and
Programming

C# Programming: From Problem Analysis to Program Design


3rd Edition

C# Programming: From Problem Analysis to Program Design 1


Chapter Objectives
• Learn about the history of computers

• Learn to differentiate between system and


application software

• Learn the steps of software development

• Explore different programming methodologies

• Learn why C# is being used today for software


development
C# Programming: From Problem Analysis to Program Design 2
Chapter Objectives (continued)
• Distinguish between the different types of
applications

• Explore a program written in C#

• Examine the basic elements of a C# program

• Compile, run, build, and debug an application

• Create an application that displays output

C# Programming: From Problem Analysis to Program Design 3


Chapter Objectives (continued)
• Work through a programming example that
illustrates the chapter’s concepts

C# Programming: From Problem Analysis to Program Design 4


History of Computers
• Computing dates back 5,000 years
• Currently in fourth or fifth generation of modern
computing
• Pre-modern computing
– Abacus
– Pascaline (1642)
– Analytical Engine (1830 – Charles Babbage &
Lady Lovelace)

C# Programming: From Problem Analysis to Program Design 5


History of Computers (continued)

Figure 1-1 The abacus, the earliest computing device


C# Programming: From Problem Analysis to Program Design 6
History of Computers (continued)
• First generation distinguished by use of vacuum
tubes (mid-1940s)
• Second generation distinguished by use of
transistors (mid-1950s)
– Software industry born (COBOL, Fortran)
• Third generation – transistors squeezed onto small
silicon discs (1964-1971)
– Computers became smaller
– Operating systems first seen
C# Programming: From Problem Analysis to Program Design 7
History of Computers (continued)

Figure 1-2 Intel chip


C# Programming: From Problem Analysis to Program Design 8
History of Computers (continued)
• Fourth generation – computer manufacturers
brought computing to general consumers
– Introduction of IBM personal computer (PC) and
clones (1981)
• Fifth generation – more difficult to define
– Computers accept spoken word instructions
– Computers imitate human reasoning through AI
– Computers communicate globally
– Mobile and wireless applications are growing
C# Programming: From Problem Analysis to Program Design 9
Processor

• Central processing unit (CPU)


• Brain of the computer
– Housed inside system unit on silicon chip
– Most expensive component
– Performs arithmetic and logical comparisons on data
and coordinates the operations of the system

C# Programming: From Problem Analysis to Program Design 10


Processor (continued)

Figure 1-3 CPU’s instruction cycle


C# Programming: From Problem Analysis to Program Design 11
System and Application Software
• Software consists of programs
– Sets of instructions telling the computer exactly
what to do
• Two types of software
– System
– Application
• Power of what the computer does lies with what
types of software are available

C# Programming: From Problem Analysis to Program Design 12


System Software
• System software is more than operating systems
• Operating System
– Loaded when you power on the computer
– Examples include Windows 7, Windows XP,
Linux, and DOS
– Includes file system utilities, communication
software

• Includes compilers, interpreters, and assemblers


C# Programming: From Problem Analysis to Program Design 13
Software (continued)

Figure 1-4 A machine language instruction


C# Programming: From Problem Analysis to Program Design 14
Application Software
• Application software performs a specific task
– Word processors, spreadsheets, payroll, inventory
• Writes instructions using a high-level programming
language
– C#, Java, Visual Basic
• Compiler
– Translates instructions into machine-readable form
– First checks for rule violations
• Syntax rules – how to write statements
C# Programming: From Problem Analysis to Program Design 15
Software Development Process

• Programming is a process of problem solving

• How do you start?

• Number of different approaches, or methodologies

• Successful problem solvers follow a methodical


approach

C# Programming: From Problem Analysis to Program Design 16


Steps in the Program
Development Process
1. Analyze the problem
2. Design a solution
3. Code the solution
4. Implement the code
5. Test and debug
6. Use an iterative approach
C# Programming: From Problem Analysis to Program Design 17
Steps in the Program
Development Process
(continued)
• Software development
process is iterative
• As errors are discovered, it
is often necessary to cycle
back to a previous phase or
step
Figure 1-9 Steps in the software
development process

C# Programming: From Problem Analysis to Program Design 18


Step 1: Analyze the Problem

• Precisely what is software supposed to


accomplish?

• Understand the problem definition

• Review the problem specifications

C# Programming: From Problem Analysis to Program Design 19


Analyze the Problem (continued)

Figure 1-5 Program specification sheet for a car rental agency problem
C# Programming: From Problem Analysis to Program Design 20
Analyze the Problem (continued)
• What kind of data will be available for input?
• What types of values (i.e., whole numbers,
alphabetic characters, and numbers with decimal
points) will be in each of the identified data items?
• What is the domain (range of the values) for each
input item?
• Will the user of the program be inputting values?
• If the problem solution is to be used with multiple
data sets, are there any data items that stay the
same, or remain constant, with each set?
C# Programming: From Problem Analysis to Program Design 21
Analyze the Problem (continued)
May help to see sample input for each data item

Figure 1-6 Data for car rental agency

C# Programming: From Problem Analysis to Program Design 22


Step 2: Design a Solution
• Several approaches
– Procedural and object-oriented methodologies

• Careful design always leads to better solutions


• Divide and Conquer
– Break the problem into smaller subtasks
– Top-down design, stepwise refinement
• Algorithms for the behaviors (object-oriented) or
processes (procedural) should be developed
C# Programming: From Problem Analysis to Program Design 23
Design a Solution (continued)
• Algorithm
– Clear, unambiguous, step-by-step process for
solving a problem
– Steps must be expressed so completely and so
precisely that all details are included
– Instructions should be simple to perform
– Instructions should be carried out in a finite
amount of time
– Following the steps blindly should result in the
same results
C# Programming: From Problem Analysis to Program Design 24
Design
• Object-oriented approach

• Class diagram

– Divided into three sections


• Top portion identifies the name of the class

• Middle portion lists the data characteristics

• Bottom portion shows what actions are to be


performed on the data

C# Programming: From Problem Analysis to Program Design 25


Class Diagram

Figure 1-7 Class diagram of car rental agency

C# Programming: From Problem Analysis to Program Design 26


Design (continued)
• Structured procedural approach
– Process oriented
– Focuses on the processes that data undergoes from
input until meaningful output is produced
• Tools used
– Flowcharts
– Pseudocode, structured English
• Algorithm written in near English statements for
pseudocode
C# Programming: From Problem Analysis to Program Design 27
Flowchart
• Oval – beginning and end
• Rectangular – processes
• Diamond – decision to be
made
• Parallelogram – inputs and
output
• Flow line

Figure 1-10 Flowchart symbols


and their interpretation
C# Programming: From Problem Analysis to Program Design 28
Class Diagram (continued)

Figure 1-11 Student class diagram


C# Programming: From Problem Analysis to Program Design 29
Step 3: Code the Solution
• After completing the design, verify the algorithm
is correct
• Translate the algorithm into source code
– Follow the rules of the language
• Integrated Development Environment (IDE)
– Visual Studio
• Tools for typing program statements, compiling,
executing, and debugging applications

C# Programming: From Problem Analysis to Program Design 30


Step 4: Implement the Code
• Source code is compiled to check for rule
violations
• C# → Source code is converted into Microsoft
Intermediate Language (IL)
– IL is between high-level source code and native
code
– IL code not directly executable on any computer
– IL code not tied to any specific CPU platform
• Second step, managed by .NET’s Common
Language Runtime (CLR), is required
C# Programming: From Problem Analysis to Program Design 31
Implement the Code
(continued)
• CLR loads .NET classes
• A second compilation,
called a just-in-time
(JIT) compilation, is
performed
– IL code is converted to
the platform’s native
code
Figure 1-8
Execution steps for .NET

C# Programming: From Problem Analysis to Program Design 32


Step 5: Test and Debug
• Test the program to ensure consistent results
• Test Driven Development (TDD)
– Development methodologies built around testing
• Plan your testing
– Test plan should include extreme values and possible
problem cases
• Logic errors
– Might cause abnormal termination or incorrect results to
be produced
– Run-time error is one form of logic error

C# Programming: From Problem Analysis to Program Design 33


Programming Methodologies
• Structured Procedural Programming
– Emerged in the 1970s
• Object-Oriented Programming
– Newer approach

C# Programming: From Problem Analysis to Program Design 34


Structured Procedural
Programming
• Associated with top-down design
– Analogy of building a house
– Write each of the subprograms as separate
functions or methods invoked by a main
controlling function or module
• Drawbacks
– During software maintenance, programs are
more difficult to maintain
– Less opportunity to reuse code
C# Programming: From Problem Analysis to Program Design 35
Object-Oriented Programming
• Construct complex systems that model real-
world entities
• Facilitates designing components
• Assumption is that the world contains a number
of entities that can be identified and described

C# Programming: From Problem Analysis to Program Design 36


Object-Oriented Methodologies
• Abstraction
– Through abstracting, determine attributes (data) and
behaviors (processes on the data) of the entities
• Encapsulation
– Combine attributes and behaviors to form a class
• Polymorphism
– Methods of parent and subclasses can have the same
name, but offer different functionality
• Invoke methods of the same name on objects of
different classes and have the correct method
executed
C# Programming: From Problem Analysis to Program Design 37
Evolution of C# and .NET
• Programming Languages
– 1940s: Programmers toggled switches on the front of
computers
– 1950s: Assembly languages replaced the binary
notation

C# Programming: From Problem Analysis to Program Design 38


Evolution of C# and .NET
(continued)
• Late 1950s: High-level languages came into
existence
• Today: More than 2,000 high-level
languages
– Noteworthy high-level programming languages
are C, C++, Visual Basic, Java, and C#

C# Programming: From Problem Analysis to Program Design 39


.NET
• Not an operating system
• An environment in which programs run
• Resides at a layer between operating system and
other applications
• Offers multilanguage independence
– One application can be written in more than one
language
• Includes over 2,500 reusable types (classes)
• Enables creation of dynamic Web pages and Web
services
• Scalable component development
C# Programming: From Problem Analysis to Program Design 40
.NET (continued)

Figure 1-13 Visual Studio integrated development environment


C# Programming: From Problem Analysis to Program Design 41
Why C#
• One of the newer programming languages
• Conforms closely to C and C++
• Has the rapid graphical user interface (GUI)
features of previous versions of Visual Basic
• Has the added power of C++
• Has the object-oriented class libraries similar to
Java

C# Programming: From Problem Analysis to Program Design 42


Why C# (continued)
• Can be used to develop a number of applications
– Software components
– Mobile applications
– Dynamic Web pages
– Database access components
– Windows desktop applications
– Web services
– Console-based applications

C# Programming: From Problem Analysis to Program Design 43


C# Relationship to .NET
• Many compilers targeting the .NET platform are
available
• C# was used most heavily for development of
the .NET Framework class libraries
• C#, in conjunction with the .NET Framework
classes, offers an exciting vehicle to incorporate
and use emerging Web standards

C# Programming: From Problem Analysis to Program Design 44


C# Relationship to .NET (continued)
• C# is object-oriented

• In 2001, the European Computer Manufacturers


Association (ECMA) General Assembly ratified
C# and its common language infrastructure (CLI)
specifications into international standards

C# Programming: From Problem Analysis to Program Design 45

You might also like