-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the Learning-CSharp 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: objects (data storage, equality of objects); constructors pointers and memory; null pointers static vs instance variables
UNIT 4 - DATA STRUCTURES AND ALGORITHMS: 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 - PROJECT MANAGEMENT: 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
UNIT 6 - ADVANCED AND MISCELLANEOUS TOPICS linq parallelization and parallel debugging
- race conditions, locks, lock contention
- partitioning interfaces, abstract methods/classes inheritance