Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology.

Slides:



Advertisements
Similar presentations
Developed by Reneta Barneva, SUNY Fredonia
Advertisements

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Chapter 4 Quality Assurance in Context
Introduction to Computer Science CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
CSCI 3 Introduction to Computer Science. CSCI 3 Course Description: –An overview of the fundamentals of computer science. Topics covered include number.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
IS112 – Chapter 1 Notes Computer Organization and Programming Professor Catherine Dwyer 2003.
IS112 – Chapter 1 Notes Computer Organization and Programming Professor Catherine Dwyer Fall 2004.
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Software Verification and Validation (V&V) By Roger U. Fujii Presented by Donovan Faustino.
Chapter 1 The Systems Development Environment
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Chapter.
Your Interactive Guide to the Digital World Discovering Computers 2012.
Introduction to Systems Analysis and Design Trisha Cummings.
7.1 The Software Engineering Discipline 7.2 The Software Life Cycle 報告者 : 林建任.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
1.1 1 Introduction Foundations of Computer Science  Cengage Learning.
Computers & Employment By Andrew Attard and Stephen Calleja.
SCI Scientific Inquiry The Big Picture: Science, Technology, Engineering, etc.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Chapter 4: Overview of Preventive Maintenance
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
The Program Development Cycle
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Requirements Engineering: What, Why, Who, When, and How
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 1 Software and Software Engineering Discussion of the Software Product.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
I am an IT Software Engineer. Hello !!. L1 : INTRODUCTION  Goals of Software Engineering:  What IT Demands Today ?  IT Products Design Methodologies.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Chapter 10 Computer Science as a Discipline
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
Chapter 7 Software Engineering © 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 7: Software Engineering
Software Engineering Introduction.
Computer Organization Instruction Set Architecture (ISA) Instruction Set Architecture (ISA), or simply Architecture, of a computer is the.
INTRODUCTION TO SOFTWARE DEVELOPMENT (SOFTWARE ENGINEERING-I)
Introduction to Software Engineering Syed Salman Ali B.E, MBA ( MIS, Mktg), PMP.
OBJECT ORIENTED VS STRUCTURED WHICH ONE IS YOUR CHOICE.
Computer Technology: Your Need to Know Chapter 1 Slide 1.
MANAGEMENT INFORMATION SYSTEM
Introduction to Software Engineering
Sub-fields of computer science. Sub-fields of computer science.
Chapter 7: Software Engineering
Advanced Computer Systems
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Chapter 7: Software Engineering
The Systems Engineering Context
CS 21a: Intro to Computing I
Foundations of Computer Science
Overview: Software and Software Engineering
Introduction To software engineering
Chapter 1 Introduction(1.1)
Baisc Of Software Testing
CS385T Software Engineering Dr.Doaa Sami
Computer Science as a Discipline
Software and Software Engineering
Dr. Clincy Professor of CS
Presentation transcript:

Lecture on Computer Science as a Discipline

2 Computer “Science” some people argue that computer science is not a science in the same sense that biology and chemistry are some people argue that computer science is not a science in the same sense that biology and chemistry are the interdisciplinary nature of computer science has made it hard to classify the interdisciplinary nature of computer science has made it hard to classify computer science is the study of computation (more than just machinery) computer science is the study of computation (more than just machinery) it involves all aspects of problem solving, including it involves all aspects of problem solving, including the design and analysis of algorithms the design and analysis of algorithms the formalization of algorithms as programs the formalization of algorithms as programs the development of computational devices for executing programs the development of computational devices for executing programs the theoretical study of the power and limitations of computing the theoretical study of the power and limitations of computing whether this constitutes a "science" is a matter of interpretation whether this constitutes a "science" is a matter of interpretation certainly, computer science represents a rigorous approach to understanding complex phenomena and problem solving certainly, computer science represents a rigorous approach to understanding complex phenomena and problem solving

3 Scientific Method the process developed by the scientific community for examining the process developed by the scientific community for examining observations and events is known as the scientific method observations and events is known as the scientific method many activities carried out by computer scientists follow the scientific method e.g., designing and implementing a large database system requires hypothesizing about its behavior under various conditioning, experimenting to test those hypotheses, analyzing the results, and possibly redesigning e.g., debugging a complex program requires forming hypotheses about where an error might be occurring, experimenting to test those hypotheses, analyzing the results, and fixing the bugs

4 Artificial Science the distinction between computer science and natural sciences like biology, chemistry, and physics is the type of systems being studied natural sciences study naturally occurring phenomena and attempt to extract underlying laws of nature computer science study human-made constructs: programs, computers, and computational modes Herbert Simon coined the phrase "artificial science" to distinguish computer science from the natural sciences in Europe, computer science is commonly called "Informatics" emphasizes the role of information processing as opposed to machinery the term "Algorithmics" has also been proposed emphasizes the role of algorithms and problem solving other related fields study computation from different perspectives computer engineering focuses on the design and construction of computers information systems management focuses on business applications

5 Computer Science Themes since computation encompasses many different types of activities, computer science research is often difficult to classify since computation encompasses many different types of activities, computer science research is often difficult to classify three recurring themes define the discipline three recurring themes define the discipline

6 Hardware hardware refers to the physical components of a computer and its supporting devices hardware refers to the physical components of a computer and its supporting devices most modern computers implement the von Neumann architecture most modern computers implement the von Neumann architecture CPU + memory + input/output devices CPU + memory + input/output devices ongoing research seeks to improve hardware design and organization ongoing research seeks to improve hardware design and organization circuit designers create smaller, faster, more energy-efficient chips circuit designers create smaller, faster, more energy-efficient chips microchip manufacturers seek to miniaturize and streamline production microchip manufacturers seek to miniaturize and streamline production systems architects research methods to increase throughput (the amount of work done in a given time period) systems architects research methods to increase throughput (the amount of work done in a given time period) e.g., parallel processing – splitting the computation across multiple CPUs e.g., parallel processing – splitting the computation across multiple CPUs e.g., networking – connecting computers to share information and work e.g., networking – connecting computers to share information and work

7 Software software refers to the programs that execute on computers software refers to the programs that execute on computers 3 basic software categories 3 basic software categories 1. systems software: programs that directly control the execution of hardware components (e.g., operating systems) 2. development software: programs that are used as tools in the development of other programs (e.g. Microsoft.NET, Java SDK) 3. applications software: all other programs, which perform a wide variety of tasks (e.g., web browsers, word processors, games) 4. related many careers in computer science are to the design, development, testing, and maintenance of software many careers in computer science are to the design, development, testing, and maintenance of software language designers develop and extend programming languages for easier and more efficient solutions language designers develop and extend programming languages for easier and more efficient solutions programmers design and code algorithms for execution on a computer programmers design and code algorithms for execution on a computer systems analysts analyze program designs and manage development systems analysts analyze program designs and manage development

8 Subfields of CS

Introduction To Software Engineering Chapter #6 of book Chapter #6 of book

What is Software Engineering? Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software Is it related to Engineering? Is it related to Engineering? Suppose you have a large complex device and you are asked to design it and supervise its construction. Suppose you have a large complex device and you are asked to design it and supervise its construction.

What is SE? How can you estimate the cost in time, money and other resources required to complete the project How can you estimate the cost in time, money and other resources required to complete the project How can you divide the project into manageable pieces? How can you divide the project into manageable pieces? How can you ensure that the project pieces produced are compatible? How can you ensure that the project pieces produced are compatible? How can you measure progress? How can you measure progress?

Difference b/w Engineering and Software Engineering Systems in normal engineering can be constructed using off-shelf components e.g. car designer would not design radio, door locks etc however in software engineering we can reuse a component only if we redesign it Systems in normal engineering can be constructed using off-shelf components e.g. car designer would not design radio, door locks etc however in software engineering we can reuse a component only if we redesign it Traditional engineering deals with development of products that are acceptable as long as they perform their task however in SE a software either performs correctly or incorrectly with no tolerance level. Traditional engineering deals with development of products that are acceptable as long as they perform their task however in SE a software either performs correctly or incorrectly with no tolerance level.

Difference(cont) There is no measure/quality metrics to determine properties of a software as there exists Mean Time To Failure incase of device wear and tear however software do not wear out so how to measure their efficiency. There is no measure/quality metrics to determine properties of a software as there exists Mean Time To Failure incase of device wear and tear however software do not wear out so how to measure their efficiency. Research in SE is currently progressing in tow levels: Practitioners and Theoreticians Research in SE is currently progressing in tow levels: Practitioners and Theoreticians Professional Organizations: ACM, IEEE, etc. Professional Organizations: ACM, IEEE, etc.

Software Development Life Cycle

Traditional Development Phases

7-16 Analysis Stage Requirements Requirements Application oriented Application oriented Specifications Specifications Technically oriented Technically oriented Software requirements document Software requirements document

7-17 Design Stage Analysis concentrates on what the proposed system should do, design concentrates on how the system will accomplish this goal. Analysis concentrates on what the proposed system should do, design concentrates on how the system will accomplish this goal. Methodologies and tools Methodologies and tools Human interface (psychology and ergonomics) Human interface (psychology and ergonomics)

7-18 Implementation Stage Create system from design Create system from design Write programs Write programs Create data files Create data files Develop databases Develop databases Role of “software analyst” versus “programmer” Role of “software analyst” versus “programmer”

Testing Stage Validation testing Validation testing Confirm that system meets specifications Confirm that system meets specifications Defect testing Defect testing Find bugs Find bugs