Author: Jeffrey C. Carver
Publisher: CRC Press
ISBN: 1498743862
Category : Computers
Languages : en
Pages : 311
Book Description
Software Engineering for Science provides an in-depth collection of peer-reviewed chapters that describe experiences with applying software engineering practices to the development of scientific software. It provides a better understanding of how software engineering is and should be practiced, and which software engineering practices are effective for scientific software. The book starts with a detailed overview of the Scientific Software Lifecycle, and a general overview of the scientific software development process. It highlights key issues commonly arising during scientific software development, as well as solutions to these problems. The second part of the book provides examples of the use of testing in scientific software development, including key issues and challenges. The chapters then describe solutions and case studies aimed at applying testing to scientific software development efforts. The final part of the book provides examples of applying software engineering techniques to scientific software, including not only computational modeling, but also software for data management and analysis. The authors describe their experiences and lessons learned from developing complex scientific software in different domains. About the Editors Jeffrey Carver is an Associate Professor in the Department of Computer Science at the University of Alabama. He is one of the primary organizers of the workshop series on Software Engineering for Science (http://www.SE4Science.org/workshops). Neil P. Chue Hong is Director of the Software Sustainability Institute at the University of Edinburgh. His research interests include barriers and incentives in research software ecosystems and the role of software as a research object. George K. Thiruvathukal is Professor of Computer Science at Loyola University Chicago and Visiting Faculty at Argonne National Laboratory. His current research is focused on software metrics in open source mathematical and scientific software.
Software Engineering for Science
Author: Jeffrey C. Carver
Publisher: CRC Press
ISBN: 1498743862
Category : Computers
Languages : en
Pages : 311
Book Description
Software Engineering for Science provides an in-depth collection of peer-reviewed chapters that describe experiences with applying software engineering practices to the development of scientific software. It provides a better understanding of how software engineering is and should be practiced, and which software engineering practices are effective for scientific software. The book starts with a detailed overview of the Scientific Software Lifecycle, and a general overview of the scientific software development process. It highlights key issues commonly arising during scientific software development, as well as solutions to these problems. The second part of the book provides examples of the use of testing in scientific software development, including key issues and challenges. The chapters then describe solutions and case studies aimed at applying testing to scientific software development efforts. The final part of the book provides examples of applying software engineering techniques to scientific software, including not only computational modeling, but also software for data management and analysis. The authors describe their experiences and lessons learned from developing complex scientific software in different domains. About the Editors Jeffrey Carver is an Associate Professor in the Department of Computer Science at the University of Alabama. He is one of the primary organizers of the workshop series on Software Engineering for Science (http://www.SE4Science.org/workshops). Neil P. Chue Hong is Director of the Software Sustainability Institute at the University of Edinburgh. His research interests include barriers and incentives in research software ecosystems and the role of software as a research object. George K. Thiruvathukal is Professor of Computer Science at Loyola University Chicago and Visiting Faculty at Argonne National Laboratory. His current research is focused on software metrics in open source mathematical and scientific software.
Publisher: CRC Press
ISBN: 1498743862
Category : Computers
Languages : en
Pages : 311
Book Description
Software Engineering for Science provides an in-depth collection of peer-reviewed chapters that describe experiences with applying software engineering practices to the development of scientific software. It provides a better understanding of how software engineering is and should be practiced, and which software engineering practices are effective for scientific software. The book starts with a detailed overview of the Scientific Software Lifecycle, and a general overview of the scientific software development process. It highlights key issues commonly arising during scientific software development, as well as solutions to these problems. The second part of the book provides examples of the use of testing in scientific software development, including key issues and challenges. The chapters then describe solutions and case studies aimed at applying testing to scientific software development efforts. The final part of the book provides examples of applying software engineering techniques to scientific software, including not only computational modeling, but also software for data management and analysis. The authors describe their experiences and lessons learned from developing complex scientific software in different domains. About the Editors Jeffrey Carver is an Associate Professor in the Department of Computer Science at the University of Alabama. He is one of the primary organizers of the workshop series on Software Engineering for Science (http://www.SE4Science.org/workshops). Neil P. Chue Hong is Director of the Software Sustainability Institute at the University of Edinburgh. His research interests include barriers and incentives in research software ecosystems and the role of software as a research object. George K. Thiruvathukal is Professor of Computer Science at Loyola University Chicago and Visiting Faculty at Argonne National Laboratory. His current research is focused on software metrics in open source mathematical and scientific software.
Computer Science
Author: Edward K. Blum
Publisher: Springer Science & Business Media
ISBN: 1461411688
Category : Computers
Languages : en
Pages : 470
Book Description
Computer Science: The Hardware, Software and Heart of It focuses on the deeper aspects of the two recognized subdivisions of Computer Science, Software and Hardware. These subdivisions are shown to be closely interrelated as a result of the stored-program concept. Computer Science: The Hardware, Software and Heart of It includes certain classical theoretical computer science topics such as Unsolvability (e.g. the halting problem) and Undecidability (e.g. Godel’s incompleteness theorem) that treat problems that exist under the Church-Turing thesis of computation. These problem topics explain inherent limits lying at the heart of software, and in effect define boundaries beyond which computer science professionals cannot go beyond. Newer topics such as Cloud Computing are also covered in this book. After a survey of traditional programming languages (e.g. Fortran and C++), a new kind of computer Programming for parallel/distributed computing is presented using the message-passing paradigm which is at the heart of large clusters of computers. This leads to descriptions of current hardware platforms for large-scale computing, such as clusters of as many as one thousand which are the new generation of supercomputers. This also leads to a consideration of future quantum computers and a possible escape from the Church-Turing thesis to a new computation paradigm. The book’s historical context is especially helpful during this, the centenary of Turing's birth. Alan Turing is widely regarded as the father of Computer Science, since many concepts in both the hardware and software of Computer Science can be traced to his pioneering research. Turing was a multi-faceted mathematician-engineer and was able to work on both concrete and abstract levels. This book shows how these two seemingly disparate aspects of Computer Science are intimately related. Further, the book treats the theoretical side of Computer Science as well, which also derives from Turing's research. Computer Science: The Hardware, Software and Heart of It is designed as a professional book for practitioners and researchers working in the related fields of Quantum Computing, Cloud Computing, Computer Networking, as well as non-scientist readers. Advanced-level and undergraduate students concentrating on computer science, engineering and mathematics will also find this book useful.
Publisher: Springer Science & Business Media
ISBN: 1461411688
Category : Computers
Languages : en
Pages : 470
Book Description
Computer Science: The Hardware, Software and Heart of It focuses on the deeper aspects of the two recognized subdivisions of Computer Science, Software and Hardware. These subdivisions are shown to be closely interrelated as a result of the stored-program concept. Computer Science: The Hardware, Software and Heart of It includes certain classical theoretical computer science topics such as Unsolvability (e.g. the halting problem) and Undecidability (e.g. Godel’s incompleteness theorem) that treat problems that exist under the Church-Turing thesis of computation. These problem topics explain inherent limits lying at the heart of software, and in effect define boundaries beyond which computer science professionals cannot go beyond. Newer topics such as Cloud Computing are also covered in this book. After a survey of traditional programming languages (e.g. Fortran and C++), a new kind of computer Programming for parallel/distributed computing is presented using the message-passing paradigm which is at the heart of large clusters of computers. This leads to descriptions of current hardware platforms for large-scale computing, such as clusters of as many as one thousand which are the new generation of supercomputers. This also leads to a consideration of future quantum computers and a possible escape from the Church-Turing thesis to a new computation paradigm. The book’s historical context is especially helpful during this, the centenary of Turing's birth. Alan Turing is widely regarded as the father of Computer Science, since many concepts in both the hardware and software of Computer Science can be traced to his pioneering research. Turing was a multi-faceted mathematician-engineer and was able to work on both concrete and abstract levels. This book shows how these two seemingly disparate aspects of Computer Science are intimately related. Further, the book treats the theoretical side of Computer Science as well, which also derives from Turing's research. Computer Science: The Hardware, Software and Heart of It is designed as a professional book for practitioners and researchers working in the related fields of Quantum Computing, Cloud Computing, Computer Networking, as well as non-scientist readers. Advanced-level and undergraduate students concentrating on computer science, engineering and mathematics will also find this book useful.
Elements of Software Science
Author: Maurice Howard Halstead
Publisher: Elsevier Publishing Company
ISBN:
Category : Computers
Languages : en
Pages : 152
Book Description
Book Designed for Computer Professional Linguists, Psychologists, & Mathematicians. Summarizes the Research in Field of Human/Machine Interaction.
Publisher: Elsevier Publishing Company
ISBN:
Category : Computers
Languages : en
Pages : 152
Book Description
Book Designed for Computer Professional Linguists, Psychologists, & Mathematicians. Summarizes the Research in Field of Human/Machine Interaction.
Computing Handbook
Author: Teofilo Gonzalez
Publisher: CRC Press
ISBN: 1439898537
Category : Computers
Languages : en
Pages : 2326
Book Description
The first volume of this popular handbook mirrors the modern taxonomy of computer science and software engineering as described by the Association for Computing Machinery (ACM) and the IEEE Computer Society (IEEE-CS). Written by established leading experts and influential young researchers, it examines the elements involved in designing and implementing software, new areas in which computers are being used, and ways to solve computing problems. The book also explores our current understanding of software engineering and its effect on the practice of software development and the education of software professionals.
Publisher: CRC Press
ISBN: 1439898537
Category : Computers
Languages : en
Pages : 2326
Book Description
The first volume of this popular handbook mirrors the modern taxonomy of computer science and software engineering as described by the Association for Computing Machinery (ACM) and the IEEE Computer Society (IEEE-CS). Written by established leading experts and influential young researchers, it examines the elements involved in designing and implementing software, new areas in which computers are being used, and ways to solve computing problems. The book also explores our current understanding of software engineering and its effect on the practice of software development and the education of software professionals.
Scientific Programming and Computer Architecture
Author: Divakar Viswanath
Publisher: MIT Press
ISBN: 0262036290
Category : Computers
Languages : en
Pages : 625
Book Description
A variety of programming models relevant to scientists explained, with an emphasis on how programming constructs map to parts of the computer. What makes computer programs fast or slow? To answer this question, we have to get behind the abstractions of programming languages and look at how a computer really works. This book examines and explains a variety of scientific programming models (programming models relevant to scientists) with an emphasis on how programming constructs map to different parts of the computer's architecture. Two themes emerge: program speed and program modularity. Throughout this book, the premise is to "get under the hood," and the discussion is tied to specific programs. The book digs into linkers, compilers, operating systems, and computer architecture to understand how the different parts of the computer interact with programs. It begins with a review of C/C++ and explanations of how libraries, linkers, and Makefiles work. Programming models covered include Pthreads, OpenMP, MPI, TCP/IP, and CUDA.The emphasis on how computers work leads the reader into computer architecture and occasionally into the operating system kernel. The operating system studied is Linux, the preferred platform for scientific computing. Linux is also open source, which allows users to peer into its inner workings. A brief appendix provides a useful table of machines used to time programs. The book's website (https://github.com/divakarvi/bk-spca) has all the programs described in the book as well as a link to the html text.
Publisher: MIT Press
ISBN: 0262036290
Category : Computers
Languages : en
Pages : 625
Book Description
A variety of programming models relevant to scientists explained, with an emphasis on how programming constructs map to parts of the computer. What makes computer programs fast or slow? To answer this question, we have to get behind the abstractions of programming languages and look at how a computer really works. This book examines and explains a variety of scientific programming models (programming models relevant to scientists) with an emphasis on how programming constructs map to different parts of the computer's architecture. Two themes emerge: program speed and program modularity. Throughout this book, the premise is to "get under the hood," and the discussion is tied to specific programs. The book digs into linkers, compilers, operating systems, and computer architecture to understand how the different parts of the computer interact with programs. It begins with a review of C/C++ and explanations of how libraries, linkers, and Makefiles work. Programming models covered include Pthreads, OpenMP, MPI, TCP/IP, and CUDA.The emphasis on how computers work leads the reader into computer architecture and occasionally into the operating system kernel. The operating system studied is Linux, the preferred platform for scientific computing. Linux is also open source, which allows users to peer into its inner workings. A brief appendix provides a useful table of machines used to time programs. The book's website (https://github.com/divakarvi/bk-spca) has all the programs described in the book as well as a link to the html text.
Software Engineering and Computer Games
Author: Rudy von Bitter Rucker
Publisher: Addison Wesley Longman
ISBN:
Category : Computers
Languages : en
Pages : 654
Book Description
This book solves the dilemma of wanting to learn Windows-based sorfware engineering without knowing Windows programming. The basics in Windows programming are explained alongside ideas of object-oriented sortware engineering. (Midwest).
Publisher: Addison Wesley Longman
ISBN:
Category : Computers
Languages : en
Pages : 654
Book Description
This book solves the dilemma of wanting to learn Windows-based sorfware engineering without knowing Windows programming. The basics in Windows programming are explained alongside ideas of object-oriented sortware engineering. (Midwest).
Real-World Software Projects for Computer Science and Engineering Students
Author: Varun Gupta
Publisher: CRC Press
ISBN: 1000388107
Category : Education
Languages : en
Pages : 114
Book Description
Developing projects outside of a classroom setting can be intimidating for students and is not always a seamless process. Real-World Software Projects for Computer Science and Engineering Students is a quick, easy source for tackling such issues. Filling a critical gap in the research literature, the book: Is ideal for academic project supervisors. Helps researchers conduct interdisciplinary research. Guides computer science students on undertaking and implementing research-based projects This book explains how to develop highly complex, industry-specific projects touching on real-world complexities of software developments. It shows how to develop projects for students who have not yet had the chance to gain real-world experience, providing opportunity to become familiar with the skills needed to implement projects using standard development methodologies. The book is also a great source for teachers of undergraduate students in software engineering and computer science as it can help students prepare for the risk and uncertainty that is typical of software development in industrial settings.
Publisher: CRC Press
ISBN: 1000388107
Category : Education
Languages : en
Pages : 114
Book Description
Developing projects outside of a classroom setting can be intimidating for students and is not always a seamless process. Real-World Software Projects for Computer Science and Engineering Students is a quick, easy source for tackling such issues. Filling a critical gap in the research literature, the book: Is ideal for academic project supervisors. Helps researchers conduct interdisciplinary research. Guides computer science students on undertaking and implementing research-based projects This book explains how to develop highly complex, industry-specific projects touching on real-world complexities of software developments. It shows how to develop projects for students who have not yet had the chance to gain real-world experience, providing opportunity to become familiar with the skills needed to implement projects using standard development methodologies. The book is also a great source for teachers of undergraduate students in software engineering and computer science as it can help students prepare for the risk and uncertainty that is typical of software development in industrial settings.
Advances in Computer and Information Sciences and Engineering
Author: Tarek Sobh
Publisher: Springer Science & Business Media
ISBN: 1402087411
Category : Computers
Languages : en
Pages : 602
Book Description
Advances in Computer and Information Sciences and Engineering includes a set of rigorously reviewed world-class manuscripts addressing and detailing state-of-the-art research projects in the areas of Computer Science, Software Engineering, Computer Engineering, and Systems Engineering and Sciences. Advances in Computer and Information Sciences and Engineering includes selected papers from the conference proceedings of the International Conference on Systems, Computing Sciences and Software Engineering (SCSS 2007) which was part of the International Joint Conferences on Computer, Information and Systems Sciences and Engineering (CISSE 2007).
Publisher: Springer Science & Business Media
ISBN: 1402087411
Category : Computers
Languages : en
Pages : 602
Book Description
Advances in Computer and Information Sciences and Engineering includes a set of rigorously reviewed world-class manuscripts addressing and detailing state-of-the-art research projects in the areas of Computer Science, Software Engineering, Computer Engineering, and Systems Engineering and Sciences. Advances in Computer and Information Sciences and Engineering includes selected papers from the conference proceedings of the International Conference on Systems, Computing Sciences and Software Engineering (SCSS 2007) which was part of the International Joint Conferences on Computer, Information and Systems Sciences and Engineering (CISSE 2007).
Computer Science and Educational Software Design
Author: Pierre Tchounikine
Publisher: Springer Science & Business Media
ISBN: 3642200036
Category : Education
Languages : en
Pages : 190
Book Description
Developing educational software requires thinking, problematizing, representing, modeling, implementing and analyzing pedagogical objectives and issues, as well as conceptual models and software architectures. Computer scientists face the difficulty of understanding the particular issues and phenomena to be taken into account in educational software projects and of avoiding a naïve technocentered perspective. On the other hand, actors with backgrounds in human or social sciences face the difficulty of understanding software design and implementation issues, and how computer scientists engage in these tasks. Tchounikine argues that these difficulties cannot be solved by building a kind of “general theory” or “general engineering methodology” to be adopted by all actors for all projects: educational software projects may correspond to very different realities, and may be conducted within very different perspectives and with very different matters of concern. Thus the issue of understanding each others’ perspectives and elaborating some common ground is to be considered in context, within the considered project or perspective. To this end, he provides the reader with a framework and means for actively taking into account the relationships between pedagogical settings and software, and for working together in a multidisciplinary way to develop educational software. His book is for actors engaged in research or development projects which require inventing, designing, adapting, implementing or analyzing educational software. The core audience is Master’s and PhD students, researchers and engineers from computer science or human and social sciences (e.g., education, psychology, pedagogy, philosophy, communications or sociology) interested in the issues raised by educational software design and analysis and in the variety of perspectives that may be adopted.
Publisher: Springer Science & Business Media
ISBN: 3642200036
Category : Education
Languages : en
Pages : 190
Book Description
Developing educational software requires thinking, problematizing, representing, modeling, implementing and analyzing pedagogical objectives and issues, as well as conceptual models and software architectures. Computer scientists face the difficulty of understanding the particular issues and phenomena to be taken into account in educational software projects and of avoiding a naïve technocentered perspective. On the other hand, actors with backgrounds in human or social sciences face the difficulty of understanding software design and implementation issues, and how computer scientists engage in these tasks. Tchounikine argues that these difficulties cannot be solved by building a kind of “general theory” or “general engineering methodology” to be adopted by all actors for all projects: educational software projects may correspond to very different realities, and may be conducted within very different perspectives and with very different matters of concern. Thus the issue of understanding each others’ perspectives and elaborating some common ground is to be considered in context, within the considered project or perspective. To this end, he provides the reader with a framework and means for actively taking into account the relationships between pedagogical settings and software, and for working together in a multidisciplinary way to develop educational software. His book is for actors engaged in research or development projects which require inventing, designing, adapting, implementing or analyzing educational software. The core audience is Master’s and PhD students, researchers and engineers from computer science or human and social sciences (e.g., education, psychology, pedagogy, philosophy, communications or sociology) interested in the issues raised by educational software design and analysis and in the variety of perspectives that may be adopted.
What Can Be Computed?
Author: John MacCormick
Publisher: Princeton University Press
ISBN: 0691170665
Category : Computers
Languages : en
Pages : 404
Book Description
An accessible and rigorous textbook for introducing undergraduates to computer science theory What Can Be Computed? is a uniquely accessible yet rigorous introduction to the most profound ideas at the heart of computer science. Crafted specifically for undergraduates who are studying the subject for the first time, and requiring minimal prerequisites, the book focuses on the essential fundamentals of computer science theory and features a practical approach that uses real computer programs (Python and Java) and encourages active experimentation. It is also ideal for self-study and reference. The book covers the standard topics in the theory of computation, including Turing machines and finite automata, universal computation, nondeterminism, Turing and Karp reductions, undecidability, time-complexity classes such as P and NP, and NP-completeness, including the Cook-Levin Theorem. But the book also provides a broader view of computer science and its historical development, with discussions of Turing's original 1936 computing machines, the connections between undecidability and Gödel's incompleteness theorem, and Karp's famous set of twenty-one NP-complete problems. Throughout, the book recasts traditional computer science concepts by considering how computer programs are used to solve real problems. Standard theorems are stated and proven with full mathematical rigor, but motivation and understanding are enhanced by considering concrete implementations. The book's examples and other content allow readers to view demonstrations of—and to experiment with—a wide selection of the topics it covers. The result is an ideal text for an introduction to the theory of computation. An accessible and rigorous introduction to the essential fundamentals of computer science theory, written specifically for undergraduates taking introduction to the theory of computation Features a practical, interactive approach using real computer programs (Python in the text, with forthcoming Java alternatives online) to enhance motivation and understanding Gives equal emphasis to computability and complexity Includes special topics that demonstrate the profound nature of key ideas in the theory of computation Lecture slides and Python programs are available at whatcanbecomputed.com
Publisher: Princeton University Press
ISBN: 0691170665
Category : Computers
Languages : en
Pages : 404
Book Description
An accessible and rigorous textbook for introducing undergraduates to computer science theory What Can Be Computed? is a uniquely accessible yet rigorous introduction to the most profound ideas at the heart of computer science. Crafted specifically for undergraduates who are studying the subject for the first time, and requiring minimal prerequisites, the book focuses on the essential fundamentals of computer science theory and features a practical approach that uses real computer programs (Python and Java) and encourages active experimentation. It is also ideal for self-study and reference. The book covers the standard topics in the theory of computation, including Turing machines and finite automata, universal computation, nondeterminism, Turing and Karp reductions, undecidability, time-complexity classes such as P and NP, and NP-completeness, including the Cook-Levin Theorem. But the book also provides a broader view of computer science and its historical development, with discussions of Turing's original 1936 computing machines, the connections between undecidability and Gödel's incompleteness theorem, and Karp's famous set of twenty-one NP-complete problems. Throughout, the book recasts traditional computer science concepts by considering how computer programs are used to solve real problems. Standard theorems are stated and proven with full mathematical rigor, but motivation and understanding are enhanced by considering concrete implementations. The book's examples and other content allow readers to view demonstrations of—and to experiment with—a wide selection of the topics it covers. The result is an ideal text for an introduction to the theory of computation. An accessible and rigorous introduction to the essential fundamentals of computer science theory, written specifically for undergraduates taking introduction to the theory of computation Features a practical, interactive approach using real computer programs (Python in the text, with forthcoming Java alternatives online) to enhance motivation and understanding Gives equal emphasis to computability and complexity Includes special topics that demonstrate the profound nature of key ideas in the theory of computation Lecture slides and Python programs are available at whatcanbecomputed.com