1.1. Introduction

1.1.1. Motivation

This book serves as lecture notes for an introductory computer programming course: IST 1551 at Missouri S&T.

I had in mind that most of my students are probably being formally exposed to computer science for the first time. As an introductory textbook, I therefore intend to focus on the essential topics of computer science, while covering some ideas in information systems when teaching to provide some real world management context to facilitate understanding and learning.

C# is gaining popularity in recent years, but this book is about the common topics of a general computer language. For the students who come to the class with background in other computer langues, they will be able to easily associate their prior learning with the covered topics and enhance their concepts and skills in computer science. Basic procedural language skills will be introduced first, followed by introduction to data structure, algorithm design, and finally class and object-oriented programming, plus some selected 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] )