Software Systems provides a comprehensive introduction to the concepts, tools, and programming languages that form the foundation of modern software development and systems programming. Designed for students and aspiring software developers, the text explores the architecture of software systems, operating environments, programming languages, and web technologies that are essential for building reliable and efficient applications.
The book begins by introducing software systems, the Unix operating system, and the C programming language, establishing the core principles of systems programming and operating system interaction. Readers learn how software communicates with hardware, manages resources, and supports networked applications through Internet programming concepts.
The second half of the text expands into widely used scripting and web development technologies, including Python, Perl, XML, XHTML, DHTML, JavaScript, and Java applets. These chapters provide practical exposure to programming for automation, web development, and interactive applications while demonstrating how different technologies work together within modern computing environments.
By combining foundational systems concepts with hands-on programming tools, Software Systems equips students with the technical knowledge and practical skills needed to understand software architecture, develop applications, and adapt to evolving technologies in computer science and information technology.
Chapter 1: Understanding Software Systems
Chapter 2: Understanding Unix
Chapter 3: Understanding C
Chapter 4: Understanding Systems Programming
Chapter 5: Understanding Internet Programming
Chapter 6: Instant Python
Chapter 7: Instant Perl
Chapter 8: Instant XML
Chapter 9: XHTML and DHTML
Chapter 10: Instant JavaScript
Chapter 11: InstantJava Applets
Joseph
Vybihal
Joseph P. Vybihal is a Professor in the School of Computer Science at McGill University in Montreal, Quebec, Canada. He serves as the Master's Non-Thesis Advisor and as the Discipline Officer for the Department of Science. Vybihal also serves as Co-Chair of the Undergraduate Committee within the School of Computer Science, where he has contributed extensively to undergraduate education, curriculum development, and academic advising.
Danielle
Azar
Dr. Danielle Azar is an associate professor of computer science, and was the chairperson of the Computer Science and Mathematics Department. Dr. Azar holds a PhD in Computer Science from McGill University, Canada. She joined LAU as an assistant professor of computer science in 2004.
She has been teaching courses in Machine Learning, Artificial Intelligence, Heuristics, Object-Oriented Programming, Theoretical Computer Science, Advanced Algorithms, Software Engineering, Operating Systems, Algorithms and Data Structures among others both at the graduate and undergraduate levels.