This book is designed to introduce non-computer science engineering students to the fundamental concepts of computer systems and software engineering. Computer systems have become ubiquitous today, and software engineering has become an essential aspect of almost every field. This book aims to provide a comprehensive overview of computer systems and software engineering principles and practices, enabling students to understand and work with them more effectively. The book is divided into two main sections: "Introduction to Computer Systems" and "Introduction to Software Engineering." In the first section, you will learn about the history of computers, the components of a computer system, computer hardware, software, operating systems, computer networks, cloud computing, edge computing, usability, and interaction. In the second section, you will learn about the definition and objectives of software engineering, the characteristics of good software, the comparison with other engineering disciplines, computer system engineering, programming languages, object-oriented programming, software design process, and an introduction to programming. This book is ideal for students who do not have a background in computer science engineering but are interested in learning about computer systems and software engineering. The book assumes no prior computer science or programming knowledge and is written in a simple and accessible language.
The book also includes practice questions and answers, exercises, and projects to reinforce the concepts learned. I hope this book will be a helpful resource for students seeking a solid understanding of computer systems and software engineering. Let's get started!.