Skip to content

Latest commit

 

History

History
120 lines (80 loc) · 3.04 KB

README.md

File metadata and controls

120 lines (80 loc) · 3.04 KB

Programming101-CSharp

Course materials & problems for HackBulgaria's Programming 101 with C#. Starting November 2015.

Partners

The course is happening thanks to the following companies:

Nemetschek Bulgaria SAP Labs Bulgaria

Hosting Partners

SiteGround

Course Program

Week 1

  • Working with Visual Studio - projects, solutions, compiling & running.
  • Basic cmd commands
  • Introducing C# with syntax, types & language constructs
  • Problem solving & debugging with C#

Week 2

  • Working with methods in C#: named parameters, params keyword, yield, ref, out. Reference types and value types. Overloads and optional parameters.
  • More built-in types: DateTime, CultureInfo, formatting strings, the TryParse/TryGet concept, Math, Random
  • Working with source control systems: git and TFS

Week 3

  • Introducing C# OOP concepts & Solving OOP problems
    • classes/structs/enums: members (fields/properties/methods)
    • modifiers (encapsulation)
    • namespaces
    • Objects, base Object type, class/struct
    • base methods: ToString(), Equals(), GetHashCode()
    • constructors
    • redefining operators
    • static members

Week 4

  • Second take on C# OOP concepts
    • Interfaces & standard interfaces: IEnumerable, IComparable
    • Inheritence & Abstract Classes
    • Polymorhism
    • Overloading vs Overriding vs Hiding
    • When to use inheritance and when to use a member
      • is vs has

Week 5

  • Introducing Generic Types
  • Introducing C# Collections & data structures in C#
  • Solving problems with different data structures.
  • Nullable types

Week 6

  • Introducing delegates and events
  • Working with nested & anonymous Classes
  • Static constructors
  • Introducing exceptions in C#

Week 7

  • Introducing LINQ and working with LINQ over collections
  • Introducing lambda expressions
  • Introducing IO in C# - working with files and streams
  • Introducing XML as a data format. Working with LIQN to XML
  • Data serialization to XML and binary

Week 8

  • Introducing Test Driven Development
  • Introducing review process in software development
  • Working with tools like stylecop
  • Intoducing some basic UI with WinForms
  • Solving problems in teams

Week 9

  • Introducing Threads and background workers and tasks.
  • async / await concept

Week 10

  • Looking at the bigger picture - objected oriented design
  • Desining larger systems & making bigger software projects using everything we know up to now.

Week 11

  • Introducing NuGet and working with 3rd party libraries.
    • Working with JSON serializers and HTTP clients

Week 12

  • Introducing databases - SQL, connections & data readers.

Week 13

  • Introducing the concept for ORM with Entity Framework

Week 14, 15, 16

  • Introducing Reflection in C#
  • How does it work? CLR, Virtual machines & .NET overview
  • Working with technologies
    • ASP.NET, MVC
    • ASP.NET, WebAPI
    • WPF & XAML