0% found this document useful (0 votes)
7 views

C# Chapter01A

Uploaded by

Rosel A Aliganga
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

C# Chapter01A

Uploaded by

Rosel A Aliganga
Copyright
© © All Rights Reserved
Available Formats
Download as 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