-
Notifications
You must be signed in to change notification settings - Fork 0
Home
nbollis edited this page Oct 21, 2022
·
7 revisions
Welcome to the Learning C# wiki!
The following is an outline of the course content and will be updated (and links added) as the course develops.
UNIT 1 - THE BASICS
- why code? the purpose of a program (automation of work)
- CPU, RAM, and disk; time cost of storing/retrieving data from RAM vs. disk
- input and output (from/to console, from/to disk)
- storing data in primitive types (int, double, etc.)
- conditionals (if/else, switch)
- code flexibility, code readability/cleanliness, and bugs
- code styles to strive for, patterns to avoid
- methods and parameters
- loops (for, while)
- funny things about programming: integer math, min/max capacity of primitive types, etc.
UNIT 2 - DEBUGGING
- printing to console
- breakpoints
- unit tests & assertions
UNIT 3 - OBJECT-ORIENTED PROGRAMMING [WIP]
- objects (data storage, equality of objects); constructors
- pointers and memory; null pointers
- static vs instance variables
UNIT 4 - DATA STRUCTURES AND ALGORITHMS [WIP]
- data structures (array, list; pros and cons, how to choose which to use)
- algorithms and computational efficiency
- formalism: O-notation
- hashcodes (+hashsets, dictionaries)
UNIT 5 - ADVANCED AND MISCELLANEOUS TOPICS [WIP]
- linq
- try/catch/throw and exceptions
- parallelization and parallel debugging
- race conditions, locks, lock contention
- partitioning
- interfaces, abstract methods/classes
- inheritance
UNIT 6 - PROJECT MANAGEMENT [WIP]
- team-based programming on large, persistent projects
- github - cloning, forks, branches, pull requests, merge conflicts, code review
- libraries and nuget packages
- memory management and garbage collection
- performance (CPU, RAM) profiling
- unit tests and code coverage
- continuous integration
- Docker & containerization