Professional Documents
Culture Documents
Faculty of Engineering,
Dayalbagh Educational Institute, Agra
Objectives
• Introduction to CCCP
• Evaluation Scheme
• Course contents
• Short Film
Why do we need Computers?
– Almost everything we do is influenced by
computing
• one of the fastest growing segments of global economy
– Applies in all aspects of life (Example applications?)
• Democracy/Politics
• Transportations Systems
• Real time Traffic Management
• Simulating earth quakes to develop effective early
warning systems
• Modeling brain activation patterns to study mental
disorders like schizophrenia etc.
• Robotics, Image processing, security, law enforcement…
What is this course all about?
• Computer Fundamentals (20%)
– What is a computer?
– How does it matter to us?
– How do computers work?
• C Programming Language (80%)
– Learn the grammar and vocabulary of C
– Learn how to get a computer to do useful work
= Programming
Administrivia
• Two best of CT1, CT2, CA+DHA1 : 80 marks
• CA+DHA2 : 40 marks
• Additional Assignment(s) : 20 marks
• Attendance : 10 marks
– 96% & above : 10 / 10
– 91 – 95% : 08 / 10
– 81 – 90% : 06 / 10
– 71 – 80% : 04 / 10
– 61 – 70% : 02 / 10
– 60% & below :0
Administrivia
• Course Textbooks.
– Byron Gottfried, Programming in C
– Others: Y. Kanetkar (Let us C), Balagurusamy etc.
EEM 201 Syllabus
UNIT – I
• Computer System Elements: Essential computer
hardware, Software: Applications, OS
• Problem solving: Algorithms, flow charts
• Compilers, assemblers and their role in s/w dev
UNIT – II
• C Language Elements: data types, variables, pre-proc
directives, statements, general form of a C program
• Operators, expressions and associativity
EEM 201 Syllabus
UNIT – III
• Control Structures: conditional statements and loops
Modular Programming using functions, Recursion
UNIT – IV
• Arrays, Structures and Pointers
UNIT – V
• Data Files, standard C library features
Unit 1
Today’s Objectives
10
Components of a Computer
11
The Stored Program Model
12
The Stored Program Model
13
How it works
• Computers use a
fetch-decode-
execute cycle to run
programs
14
How it works
15
How it works
16
How it works
17
How it works
18
Main Memory
• Secondary Storage
– SSD (recent)
– Magnetic disks
– Magnetic Tape
• All programs and data are stored permanently here.
20
Memory Hierarchy
21
Memory Hierarchy
22
Memory Hierarchy
23
Cache Memory
24
Unit 1
Today’s Objectives
• Evolution of computers.
26
Evolution of Computers
27
Evolution of Computers
28
Evolution of Computers
29
Evolution of Computers
30
Evolution of Computers
31
Evolution of Computers
34
Programming the ENIAC!
35
Evolution of Computers
36
Evolution of Computers
37
I think there is a world market
for maybe five computers.
THOMAS J. WATSON, PRESIDENT OF IBM, 1943
38
Evolution of Computers
43
Evolution of Computers
45
Evolution of Computers
46
Evolution of Computers
47
Classification of Computers
• Personal Computers
• Workstations
• Mini Computers
• Mainframe Computers
• Super Computers
52
2. Workstations
54
Unit 1
Today’s Objectives
• Software
– Application versus System Software
– Operating Systems
• Role
• Use
• Evolution
• Application software
– Programs designed to perform specific tasks
that satisfy the general requirements of the
end users
• System software
– Programs that support the execution and
development of other programs
– Two major types
• Operating systems
• Translation systems (compilers, drivers etc.)
57
Application Software
58
Systems Software
• Operating Systems
– Control and manage the computing resources of the system
– Examples
• MSDOS, Windows, Unix, Linux, Minix, Android…
• Compilers/Interpreters/Linkers
– Convert high level programming language instructions into machine-
understandable form
– Examples: GNU C/C++, javac…
• Device Drivers
– Help the computer to communicate with peripheral devices
– Examples: Printer Drivers, Flash disk drivers etc.
59
What is an Operating System?
60
Characteristics of
Early Operating Systems
A. Frank - P. Weisberg
Multiprogramming
A. Frank - P. Weisberg
Multi-tasking
• Programming Languages
– High level, assembly and machine language
– Compilers and how they work
– Interpreters
72
What is a Programming language?
Sequence of instructions
Algorithm Program
(in human language) (in computer language)
LOAD r1,b
LOAD r2,h
MUL r1,r2
Low-level Language Program DIV r1,#2
RET
0001001001000101001001
Executable Machine code 001110110010101101001.
..
Types of Programming Languages
• Machine language
– Operation codes specify the operation to
perform, like addition or subtraction.
– Operands identify the data to be processed.
– Machine language is machine dependent as it is
the only language the computer can understand.
• Core i7s and ARM Processors have different machine
languages
– Very efficient code but very difficult to write.
Second Generation Languages
• Assembly languages
– Symbolic operation codes replaced binary
operation codes.
– Assembly language programs needed to be
“assembled” for execution by the computer. Each
assembly language instruction is translated into
one machine language instruction.
– Very efficient code and easier to write.
Third Generation Languages
• Compilers
– Convert HLL statements into low-level/assembly code
• Assemblers
– Convert assembly code into machine code
• Libraries
– Collections of useful pre-compiled functions
• Linkers
– Link the relevant libraries to your compiled code to create the final
executable file (.exe)
• IDEs
– Combine all of the capabilities needed for developing software
– Examples: Microsoft VC++ IDE, Netbeans (Oracle), (Open Source) Code
Blocks, Eclipse etc.
Today’s Objectives
• Software Development
– Program versus software product
– Key SDLC activities
86
Program versus S/W Product
Program Software Product
• Small scale • Medium to large scale
• Developed quickly, without • Detailed project planning,
detailed design design and implementation
• Single/small group of • Large, possible distributed team
developers of developers
• Single user/small group of • Medium to large market of end
target users users
• No associated documentation • Proper documentation and well
or maintenance support planned maintenance phases
87
Software Development Life Cycle
• Very important to clearly identify the various
phases of the software development process
– Identify the key activities of each phase
– Define the entry/exit criteria for each phase
• Phases
– Feasibility Study
– Requirements gathering, analysis and specification
– Design
– Implementation and Unit Testing
– Integration and System Testing
88
– Maintenance
Feasibility Study
• Main aim: determine whether developing the product is
– Financially worthwhile
– Technically feasible
• Activities during Feasibility Study
– Work out an overall understanding of the problem.
– Formulate different solution strategies.
– Analyze alternate solution strategies in terms of resources
required, cost of development, and development time.
– Do cost/benefit analysis to determine which solution is best.
• Phase Outcome/Exit criterion
– Is this project a viable / profitable / feasible option for the
organization or not?
89
Requirements Analysis and Specification
90
Design
• Aims/activities of the phase:
– To transform the requirements specification into a form suitable
for implementation in some programming language
– During this phase, the software architecture is derived from the
SRS document.
• Outcome
– Software architecture of the top level modules of the software
detailing the data organization and algorithms within each
module
91
Coding and Unit Testing
• Aim of the phase:
– To translate software design into source code of the chosen
programming language.
• Activities
– Each module of the design is coded
– Each module is unit tested: tested independently
– Each module is documented
• Outcome/Exit Criteria:
– A set of program modules that have been individually tested and
documented
92
Integration and System Testing
93
Maintenance Phase
• Maintenance of a software product:
– Requires much more effort than the effort to develop the
product itself.
– development effort to maintenance effort is typically 40:60.
– Adaptive, corrective and perfective maintenance
94
Relative Effort for Phases
• Maintenance of a software product:
– Requires much more effort than the effort to develop the product itself.
– development effort to maintenance effort is typically 40:60.
– Adaptive, corrective and perfective maintenance
60
Relative Effort
• Phases between feasibility 50
study and testing 40
– known as development phases.
30
• Among all life cycle phases 20
– maintenance phase consumes
maximum effort. 10
Maintnce
Design
Test
Coding
Req. Sp
– testing phase consumes the
maximum effort. 95
SDLC Models