Welcome to "Computer Programming With C# - Part 2"!
In this advanced C# programming course, we will delve deeper into the world of C# and explore more advanced topics and techniques to help you become a proficient C# developer. Building on the foundation laid in "Computer Programming With C# - Part 1," this course will take your C# skills to the next level.
Object-Oriented Programming (OOP) Concepts: Review essential OOP concepts such as inheritance, encapsulation, polymorphism, and abstraction. Understand how to create and use classes and objects effectively to design scalable and maintainable code.
Advanced Data Structures: Dive into more complex data structures like linked lists, stacks, queues, and trees. Learn how to implement and manipulate these data structures efficiently in C#.
Exception Handling: Explore techniques to handle errors and exceptions gracefully in your C# programs. Discover best practices to create robust and fault-tolerant applications.
File I/O: Learn how to read from and write to files using C#. Understand different file handling methods and scenarios, including text and binary file operations.
Multithreading and Asynchronous Programming: Gain an understanding of multithreading concepts and how to create parallel applications using threads. Dive into asynchronous programming with async/await to build responsive and efficient applications.
LINQ (Language-Integrated Query): Discover the power of LINQ, which allows you to perform powerful queries on various data sources. Learn how to use LINQ to simplify data manipulation and querying in C#.
Delegates and Events: Understand delegates and events, which are essential elements of the C# event-driven programming model. Learn how to implement event handling to build responsive applications.
Advanced C# Features: Explore some of the more advanced C# features, such as custom attributes, indexers, extension methods, and more. Gain a deep understanding of these features and their practical applications.
C# Best Practices and Design Patterns: Learn coding best practices, common design patterns, and principles that will help you write maintainable, efficient, and clean C# code.
Introduction to ASP.NET Core: If time allows, get an introduction to ASP.NET Core, the cross-platform, open-source framework for building modern web applications in C#. Learn the basics of web development using ASP.NET Core.
Throughout the course, you'll work on hands-on projects and coding exercises to reinforce your learning. By the end of "Computer Programming With C# - Part 2," you'll have a solid grasp of advanced C# concepts and be ready to tackle more complex software development challenges.
Whether you're looking to enhance your skills for personal projects or aspiring to pursue a career as a C# developer, this course will equip you with the knowledge and confidence to take your C# programming to new heights. Let's embark on this journey of advanced C# programming together
Chapter 14. Defining Classes
โ Custom Classes
โ Usage of Class and Objects
โ Organizing Classes in Files and Namespaces
โ Modifiers and Access Levels (Visibility)
โ Declaring Classes
โ The Reserved Word "this"
โ Fields
โ Methods
โ Accessing Non-Static Data of the Class
โ Hiding Fields with Local Variables
โ Visibility of Fields and Methods
โ Constructors
โ Properties
โ Static Classes and Static Members
Chapter 15. Text Files
โ Streams
โ Reading from a Text File
โ Writing to a Text File
โ Input / Output Exception Handling
โ Text Files – More Examples
Chapter 16. Linear Data Structures
โ Abstract Data Structures
โ List Data Structures
Chapter 17. Trees and Graphs
โ Tree Data Structures
โ Trees
โ Graphs
Chapter 18. Dictionaries, Hash-Tables and Sets
โ Dictionary Data Structure.
โ Hash-Tables
โ The "Set" Data Structure
Chapter 19. Data Structures and Algorithm Complexity
โ Why Are Data Structures So Important?.
โ Algorithm Complexity .
โ Comparison between Basic Data Structures .
โ When to Use a Particular Data Structure?
โ Choosing a Data Structure – Examples
โ External Libraries with .NET Collections
Chapter 20. Object-Oriented Programming Principles
โ Let’s Review: Classes and Objects
โ Object-Oriented Programming (OOP)
โ Fundamental Principles of OOP
โ Inheritance
โ Abstraction
โ Encapsulation
โ Polymorphism
โ Cohesion and Coupling
โ Object-Oriented Modeling (OOM)
โ UML Notation
โ Design Patterns
Chapter 21. High-Quality Programming Code
โ Why Is Code Quality Important?
โ What Does Quality Programming Code Mean?
โ Why Should We Write Quality Code?
โ Identifier Naming
โ Code Formatting
โ High-Quality Classes
โ High-Quality Methods
โ Proper Use of Variables
โ Proper Use of Expressions
โ Use of Constants
โ Proper Use of Control Flow Statements
โ Defensive Programming
โ Code Documentation
โ Code Refactoring
โ Unit Testing
โ Additional Resources
Chapter 22. Lambda Expressions and LINQ
โ Extension Methods
โ Lambda Expressions .
โ LINQ Queries
โ Nested LINQ Queries
โ LINQ Performance
Chapter 23. Methodology of Problem Solving
โ Basic Principles of Solving Computer Programming Problems
โ Use Pen and Paper
โ Generate Ideas and Give Them a Try!
โ Decompose the Task into Smaller Subtasks
โ Verify Your Ideas!
โ If a Problem Occurs, Invent a New Idea!
โ Choose Appropriate Data Structures!
โ Think about the Efficiency!
โ Implement Your Algorithm!
โ Write the Code Step by Step!
โ Test Your Solution!
โ General Conclusions
Chapter 24. Sample Programming Exam – Topic #1
โ Problem 1: Extract Text from HTML Document
โ Problem 2: Escape from Labyrinth
โ Problem 3: Store for Car Parts
Chapter 25. Sample Programming Exam – Topic #2
โ Problem 1: Counting the Uppercase / Lowercase Words in a Text
โ Problem 2: A Matrix of Prime Numbers
โ Problem 3: Evaluate an Arithmetic Expression
Chapter 26. Sample Programming Exam – Topic #3
โ Problem 1: Spiral Matrix
โ Problem 2: Counting Words in a Text File
โ Problem 3: School