1.1. Introduction

1.1.1. Motivation

This book, originally inspired by the work of Andrew N. Harrington and George Thiruvathukal [2021] , serves as an introductory computer programming textbook at college level.

Designed for the students who are formally introduced to computing and computer science for the first time, this book focuses on the fundamental concepts of computer science and programming, while also incorporating key ideas from information science and information systems to provide business and management contexts to bridge students’ understanding through relevant and accessible materials.

C# has gained popularity in the industry during recent years and has become the default programming language for the .NET platform. However, this book focuses on the fundamental concepts that are common across general-purpose programming languages. Students with or without prior experience in programming languages will be able to relate their existing knowledge in computing to the materials presented, and thus strengthening their understanding of core computing and programming principles.

The book begins with basic procedural programming skills, then moves on to data structures, algorithm design, and ultimately class-based object-oriented programming, along with a selection of additional relevant topics.

Although the new AI platforms are becoming strong in automated code generation, the industry will always have good use of strong computer scientists, system engineers, data scientists, and cybersecurity experts, etc., and I am sure that people who hold those positions will always need great problem-solving skills. This course and this book aim to serve that need.

1.1.2. C#, .NET, and VS Code

Albeit the overall popularity of JavaScript and Python, Java and Microsoft .NET languages remain as strong general-purpose languages. Microsoft has, in recent years, made C# a central language for their fast-evolving, open-sourced, and cross-platform .NET ecosystem. C# is general-purpose, high-level, multiple-paradigm, and is gaining market share as a popular programming language [1] [2]. Specifically, C# is widely used in areas such as building cross-platform applications, web services, and game development. In addition, the Visual Studio Code (VS Code) editor, powered by plenty of extensions, has made the editor a very powerful tool for coding and programming and worth learning.

As a general programming language, C# has been used in creating interactive websites, mobile apps, video games, augmented reality (AR) & virtual reality (VR), desktop applications, and back-end services. For example, the mobile game Pokemon Go is built with the Unity game engine and the Stack Overflow website is built with ASP.NET, both frameworks use C# as their programming language. In general, in terms of job market, C# and .NET are especially used by large enterprises.

Popular programming languages used by professional developers, StackOverflow developer annual survey 2023

Popular Programming Languages (StackOverflow Developer Annual Survey 2023 [3] )