Text INTERNAL February 11, 2011 Problem Solving. INTERNAL - 2 - Tech Republic’s railway department wants a solution Tech Republic’s railway department.

Slides:



Advertisements
Similar presentations
Chapter 1 - VB 2008 by Schneider1 Chapter 1 - An Introduction to Computers and Problem Solving 1.1 An Introduction to Computers 1.2 Windows, Folders, and.
Advertisements

COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Chapter 3: Modularization
Computers Are Your Future
Chapter 1 - An Introduction to Computers and Problem Solving
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Chapter 2 - Problem Solving
Unit 231 Software Engineering Introduction to SWE What is SDLC Phases of SDLC.
Computers: Tools for an Information Age
Program Flow Charting How to tackle the beginning stage a program design.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Introduction to Systems Analysis and Design
CSC230 Software Design (Engineering)
SOFTWARE QUALITY ASSURANCE Asst. Prof. Dr. Selim BAYRAKLI Maltepe University Faculty of Engineering SE 410.
Your Interactive Guide to the Digital World Discovering Computers 2012.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
1. Human – the end-user of a program – the others in the organization Computer – the machine the program runs on – often split between clients & servers.
1 Shawlands Academy Higher Computing Software Development Unit.
O BJECT O RIENTATION F UNDAMENTALS Prepared by: Gunjan Chhabra.
Planning for the Solution
Purpose of study A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world. Computing.
Higher Grade Computing Studies 2. Languages and Environments Higher Computing Software Development S. McCrossan 1 Classification of Languages 1. Procedural.
Software Estimation and Function Point Analysis Presented by Craig Myers MBA 731 November 12, 2007.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
SOFTWARE DESIGN.
Describe the Program Development Cycle. Program Development Cycle The program development cycle is a series of steps programmers use to build computer.
1 C++ Plus Data Structures Nell Dale Chapter 1 Software Engineering Principles Modified from the Slides made by Sylvia Sorkin, Community College of Baltimore.
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
CPS120 Introduction to Computer Programming The Programming Process.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Programming Life Cycle Problem analysisunderstand the problem Requirements definition specify what program will do High- and low-level designhow it meets.
Design Concepts By Deepika Chaudhary.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
The Software Development Process
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Chapter One An Introduction to Programming and Visual Basic.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
 Programming - the process of creating computer programs.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Foundations of Information Systems in Business. System ® System  A system is an interrelated set of business procedures used within one business unit.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
How Are Computers Programmed? CPS120: Introduction to Computer Science Lecture 5.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Chapter 2 - VB 2005 by Schneider- modified by S. Jane '081 Chapter 2 - Problem Solving 2.1 Program Development Cycle 2.2 Programming Tools.
Learning Objectives Understand the concepts of Information systems.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Understanding Computing and Programming at KS2 Debs Ayerst.
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
Chapter 2 Principles of Programming and Software Engineering.
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
How Computers Solve Problems Computers also use Algorithms to solve problems, and change data into information Computers can only perform one simple step.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
COP 3503: Programming Fundamentals for CIS Majors 2 Basics.
MANAGEMENT INFORMATION SYSTEM
Principles of Programming & Software Engineering
ICS 3UI - Introduction to Computer Science
System.
C++ Plus Data Structures
Chapter 8 – Software Testing
Lecture 2 Introduction to Programming
Introduction to Computer Programming
Computer Programming.
Tools of Software Development
Chapter 1 Introduction(1.1)
Requirements Engineering
Presentation transcript:

Text INTERNAL February 11, 2011 Problem Solving

INTERNAL Tech Republic’s railway department wants a solution Tech Republic’s railway department is in a crisis!!!! Over 2000 train services across the country & parcel services to major cities and towns Lakhs of passengers and customers availing various services Advance and regular ticketing Parcel booking Enquiries … Around 600 railway stations

Problem Solving INTERNAL Dissatisfied customers and over burdened employees!!!! Railways wants to improve stake holder satisfaction… Tech Republic’s railway department wants a solution Long queues…… Unhappy Passengers….. Employees overburdened with paper and manual work

Problem Solving INTERNAL Solutions??? Railway department hired new staff and increased the number of customer service counters!!! Passenger count and train services are steadily increasing, so this solution is not going to work for a long term… Manual errors are also creeping up during calculations, leading to customer dissatisfaction, and wastage of time to correct errors…

Problem Solving INTERNAL Automate…. Management is now thinking why not automate the entire system. 1.Ticket booking and seat availability tracking 2.Passenger data management 3.Regular ticketing 4.Parcel booking and tracking, and so on… They decided to come up with a computerized system that handles various day to day activities at their office.

Problem Solving INTERNAL Programs Computer is a machine, it needs to be instructed how to perform a task, how to handle data, where to store it and so on. Software – Collection of computer programs and data that tells computer what to do Programs – Set of instructions that is carried out by the computer In a computer based solution business requirement of a user ultimately get translated to lines of code that instructs computer to work in such a way as to meet the requirement.

Problem Solving INTERNAL Problem Solving Programming to solve a problem in hand involves –Analyzing the problem: this involves understanding the input and output, various alternatives to reach the output, listing the assumptions, –Designing an algorithm: defining a step by step procedure to solve the problem –Testing the design for correctness: checking for the correctness of algorithm by walking through the algorithm manually –Implementing the solution (Translating to code): once the correctness of algorithm is checked, it can be translated to any programming language –Testing the program: once the program is developed it needs to be tested against various test cases which checks if the program is correct for all expected range of inputs. This module aims at building skills required to solve a problem in an organized manner and document the same.

Problem Solving INTERNAL Problem Solving and Programming – key elements Good analytical skills Declarative and imperative knowledge about the solution Ability to apply abstraction Knowledge in a programming language Following good programming practices

Problem Solving INTERNAL Problem Solving and Programming - Declarative Knowledge What is the solution for the following jigsaw puzzle?

Problem Solving INTERNAL You are Right ! This What is type of knowledge is called Declarative knowledge The fact that each of the pieces should be appropriate order and fitting into correct slots to form the correct picture is the Declarative knowledge in this scenario is the Solution Problem Solving and Programming - Declarative Knowledge

Problem Solving INTERNAL But How ? Step3 Step2 Step Arrange the pieces according to their number. Step1 Problem Solving and Programming - Imperative Knowledge

Problem Solving INTERNAL Step3 Step2 Step Turn the pieces fitting to nearby pieces. Step2 But How ? Problem Solving and Programming - Imperative Knowledge

Problem Solving INTERNAL Step3 Step2 Step Join the pieces Step3 But How ? Problem Solving and Programming - Imperative Knowledge

Problem Solving INTERNAL Arrange the pieces according to their number. Step1 Turn the pieces fitting to nearby pieces. Step2 Join the pieces Step This How to Knowledge is called Imperative Knowledge But How ? Problem Solving and Programming - Imperative Knowledge

Problem Solving INTERNAL A representation or model that includes the important, essential or distinguishing aspects of something while suppressing or ignoring less important, immaterial or diversionary details. Removing distinctions to emphasize commonality. In computer programming abstraction applies to procedures and data –Procedural (Functional) abstraction: Hiding complexity of implementation details of a function behind a specific interface defined to invoke the function. E.g. printf function in C language, a programmer do not have to know the implementation details of the function. By invoking the function using the predefined interface the function does what is expected. –Data abstraction: Isolating how a data object is used from the details of how it is constructed. E.g. while accessing attributes in a structure a programmer do not have to know about implementation details of the same. Problem Solving and Programming - Abstraction

Problem Solving INTERNAL Problem Solving and Programming – Programming Language An artificial language designed to write expressions that instruct computer. Elements of a programming language –Syntax: structural elements of the language. Programs must be syntactically correct. –Grammar: defines how syntactical elements need to be combined to form programs –Semantics: defines meaning of the code

Problem Solving INTERNAL Problem Solving and Programming – Good Programming Practices In a survey in TCS, 89 Project Leaders & Group Leaders ranked important skills for entrants to ILP as follows: 1.Good Programming Practices 2.Process Mindset 3.Communication Skills 4.Adaptability & Teamwork 5.Concern for Quality 6.Knowledge of Core Computer Science Topics The Importance of Good Programming Skills The gap between the best software engineering practice and the average practice is very wide - perhaps wider than in any other engineering discipline. A tool that disseminates good practice would be important. - Fred Brooks in "The Mythical Man-Month"

Problem Solving INTERNAL A “true” project experience A TCS project well appreciated by client for –Correctness –On Time Delivery –Good project Managements Customer requested enhancements for the well delivered product but later complained that enhancement requests were pending with TCS for months. Root Cause : Poor Understandability of code!!!!! Problem Solving and Programming – Good Programming Practices

Problem Solving INTERNAL Advantages of improving understandability Self-review is easier leading to less defects Debugging takes less time Another developer will find it easier to maintain your program Problem Solving and Programming – Good Programming Practices

Text Happy Learning!!!