Software Development Concepts (C#)
Software Development Concepts using C# (IN251) was a ten-week introduction to programming, built entirely on small console applications running on .NET. It starts at the very bottom, declaring a variable, and works up one concept at a time. I came in as a sysadmin who writes a fair amount of PowerShell, so the honest framing is that a lot of the logic was familiar. The value for me was seeing how a compiled, statically typed language makes you say out loud what scripting lets you leave implicit.
What the course covered
The early weeks were fundamentals: declaring variables and constants, and formatting strings for output. C#'s interpolation and format specifiers, like printing a number as currency, mapped cleanly onto things I already do in PowerShell, just with types attached. Right away there was a wrinkle that scripting had spared me. Console input arrives as a string, so turning "19" into a number I could do math on meant parsing it, and doing that safely meant wrapping the read in a loop that rejects bad input instead of crashing.
From there the course walked the standard building blocks. Conditionals came next, comparison operators, if and else-if chains, and the switch statement, with a later exercise on when each one reads better. Then loops: while loops, nested loops, running totals, and a sentinel value to break out cleanly. A string-parsing week had me stepping through a sentence character by character to count words, which is exactly the kind of index-and-substring work a language usually hides. Functions followed, with typed parameters and return values, and finally arrays, passing them into functions to find a maximum or tag each element even or odd.
The written units filled in the background: the history from structured programming to object-oriented design, UML diagrams, debugging method, and software testing levels.
Takeaway
This is an introductory course, and it does not pretend otherwise. What it gave me was the discipline underneath the scripting I already knew. Static typing, explicit parsing, and functions with real signatures force a rigor that PowerShell lets you skip, and that structure is the part worth keeping.