Computer Programming With C# - Part 2

*#1 Most Popular Online Course in Computer Science* You can enroll today & get certified from EasyShiksha & HawksCode

Computer Programming With C# - Part 2 Description

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"



      Accessing Non-Static Data of the Class

      Hiding Fields with Local Variables

      Visibility of Fields and Methods



      Static Classes and Static Members 

Chapter 15. Text Files


      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



Chapter 18. Dictionaries, Hash-Tables and Sets 

      Dictionary Data Structure.


      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





      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

Fundamentals Of Computer Programming With C# Part-I

Course Content

course-lock Custom Classes course-lock Elements of the Class course-lock Usage of Class and Objects course-lock Nature of Objects course-lock Encoding of Files and Using of Cyrillic and Unico course-lock Modifiers and Access Levels course-lock Access Level internal course-lock interface course-lock implementation course-lock Methods course-lock Accessing Non-Static Fields from Non-Static Method course-lock Calling Non-Static Methods course-lock Hiding Fields with Local Variables course-lock Access Level public course-lock How to Decide Which Access Level to Use course-lock Declaring a Constructor course-lock Declaring a Constructor course-lock Order of Initialization of the Fields course-lock Constructor with Variable Number of Arguments course-lock Default Constructor course-lock union and intersection course-lock line stack course-lock static stack course-lock The Body of a Property course-lock Streams course-lock Basic Operations with Streams course-lock Binary and Text Streams course-lock Relationship between Text and Binary Streams course-lock Full and Relative Paths course-lock Reading a Text File Line by Line – Example course-lock File Encodings. Reading in Cyrillic course-lock Reading a Cyrillic Content course-lock The StreamWriter Class course-lock Printing the Numbers [1…20] in a Text File – Example course-lock Occurrences of a Substring in a File – Example course-lock Abstract Data Structures course-lock Abstract Data Structure List course-lock Linked List (Dynamic Implementation) (1) course-lock Comparing the Static and the Dynamic Lists course-lock The ArrayList Class course-lock Generic Collections course-lock Prime Numbers in Given Interval – Example course-lock Converting a List to Array and Vice Versa course-lock Linked Stack (Dynamic Implementation) course-lock Abstract Data Type Queue course-lock Queue Usage – Example course-lock Tree Data Structures course-lock Tree Implementation – Example course-lock Depth-First-Search (DFS) Traversal course-lock Breadth-First Search (BFS) course-lock Binary Trees course-lock Binary Tree Traversal course-lock Ordered Binary Search Trees course-lock Ordered Binary Search Trees – Example course-lock Ordered Binary Trees – Implementation of the Main Class course-lock Searching for an Element course-lock Balanced Trees course-lock Graphs course-lock Graphs – Presentations course-lock Dictionary Data Structure course-lock The Abstract Data Structure “Dictionary” (Associative Array, Map) course-lock Implementation of Dictionary with Red-Black Tree course-lock IComparableK Interface course-lock Hash-Tables course-lock Class Dictionary K, V course-lock Hashing and Hash-Functions course-lock Collisions with Hash-Functions course-lock Interface IEqualityComparerT course-lock Open Addressing Methods for Collision Resolution course-lock The Set Data Structure course-lock Implementation with Hash-Table – HashSet T course-lock Why Are Data Structures So Important course-lock Typical Algorithm Complexities course-lock Complexity by Several Variables course-lock Complexity by Memory course-lock Comparison between Basic Data Structures course-lock Singly Doubly Linked List (LinkedList T ) course-lock Stack course-lock Set, Implemented with a Hash-Table (HashSet_ T _) course-lock Set, Implemented with a Balanced Tree (SortedSetT) course-lock Set, Implemented with a Balanced Tree (SortedSetT) course-lock Sorting Students course-lock Sorting a Phone Book course-lock Searching in a Phone Book course-lock Choosing a Data Structure – Conclusions course-lock Power Collections for .NET course-lock Let’s Review Classes and Objects course-lock Fundamental Principles of OOP course-lock The base Keyword (1) course-lock Constructors with Inheritance course-lock The System.Object Class course-lock The Object.ToString() Method course-lock Transitive Properties of inheritance course-lock class diagram - Example of generalizatio course-lock abstraction - Abstract data example course-lock Interfaces course-lock Abstraction and Interface course-lock Encapsulation – Examples course-lock Abstract Class – Example course-lock Virtual Methods – Example course-lock Cohesion and Couplin course-lock Why Is Code Quality Important course-lock Why Should We Write Quality Code course-lock Managing Complexity course-lock Avoid Abbreviations course-lock Names of Classes, Interfaces and Other Types course-lock Names of Enumeration Types course-lock Method Names course-lock High-Quality Classes course-lock Extension Methods course-lock Extension Methods for Interfaces course-lock Arrays of Anonymous Types course-lock Using Lambda Expressions with Anonymous Types course-lock LINQ Queries course-lock Joining Data with LINQ course-lock Basic Principles of Solving Computer Programming Problems course-lock Basic Principles of Solving Computer Programming Problems course-lock Decompose the Task into Smaller Subtasks course-lock First Subtask a Single Swap course-lock Third Subtask Combining Swaps course-lock Sorting Numbers course-lock Verify Your Ideas! course-lock orting Numbers Verifying the Idea course-lock Choose Appropriate Data Structures! course-lock ChoosCan We Use Another Data Structure course-lock Sorting Numbers Choosing a Data Structures course-lock Think about the Efficiency! course-lock The Efficiency Is a Matter of Compromise course-lock Test Your Solution! course-lock Borderline Cases course-lock Borderline Case Shuffling Zero Cards course-lock Shuffling Cards – Performance Tests course-lock General Conclusions course-lock Problem 1 Extract Text from HTML Document course-lock Clarification of the Statement of the Problem course-lock Test the Input File Reading Code course-lock Testing the Tag Removal Code course-lock Remove the Empty Lines Test Again course-lock A New Idea Processing the Text Char by Char course-lock How to Fix the Problem course-lock Figure Out an Idea for a Solution course-lock Think of Another Idea course-lock Step 1 The Class Cell course-lock Testing the Complete Solution of the Problem (1) course-lock Dividing the Task into Subtasks course-lock Testing the Class Part course-lock Problem 1 Counting the Uppercase course-lock Let’s Consider the Data Structures course-lock Step 2 Splitting Up the Text in Separate Words course-lock A Word on Performance course-lock Step 1 Check to Find If a Number Is a Prime course-lock Testing the Next Prime Number Finder course-lock Problem 3 Evaluate an Arithmetic Expression course-lock Testing the Extraction of Numbers course-lock Small Corrections and Repeated Testing course-lock Problem 1 Spiral Matrix course-lock Checking the Idear course-lock Implementing the First Few Steps course-lock Problem 2 Counting Words in a Text File course-lock Checking the Idea course-lock Checking the Line by Line Algorithm course-lock Think about the Data Structures course-lock Testing the Line by Line Algorithm course-lock Testing the Char by Char Algorithm course-lock Testing for Performance course-lock Abbreviations course-lock Complexity course-lock Quality Code (3)

What You Need For This Course?

  • Access to Smart Phone / Computer
  • Good Internet Speed (Wifi/3G/4G)
  • Good Quality Earphones / Speakers
  • Basic Understanding of English
  • Dedication & Confidence to clear any exam

Internship Students Testimonials

Relevant Courses

easyshiksha badges
Frequently Asked Questions

Q.Is the course 100% online? Does it require any offline classes too?

The following course is fully online, and hence there is no need for any physical classroom session. The lectures and assignments can be accessed anytime and anywhere through a smart web or mobile device.

Q.When can I start the course?

Anyone can choose a preferred course and start immediately without any delay.

Q.What are the course and session timings?

As this is a purely online course program, you can choose to learn at any time of the day and for as much time as you want. Though we follow a well-established structure and schedule, we recommend a routine for you as well. But it finally depends on you, as you have to learn.

Q.What will happen when my course is over?

If you have completed the course, you would be able to have lifetime access to it for future reference too.

Q.Can I download the notes and study material?

Yes, you can access and download the content of the course for the duration. And even have lifetime access to it for any further reference.

Q. What software/tools would be needed for the course and how can I get them?

All the software/tools that you need for the course would be shared with you during the training as and when you need them.

Q. Do I get the certificate in a hard copy?

No, only a soft copy of the certificate will be awarded, which can be downloaded and printed, if required.

Q. I’m unable to make a payment. What to do now?

You can try to make the payment through a different card or account (maybe a friend or family). If the problem persists, email us at

Q. The payment got deducted, but the updated transaction status is showing “failed”. What to do now?

Due to some technical faults, this can happen. In such a case the amount deducted will be transferred to the bank account in the next 7-10 working days. Normally the bank takes this much time to credit the amount back into your account.

Q. The payment was successful but it still shows ‘Buy Now’ or not showing any videos on my dashboard? What should I do?

At times, there may be a slight delay in your payment reflecting on your EasyShiksha dashboard. However, if the problem is taking longer than 30 minutes, please let us know by writing to us at from your registered email id, and attach the screenshot of the payment receipt or transaction history. Soon after verification from the backend, we will update the payment status.

Q. What is the refund policy?

If you have enrolled, and are facing any technical problem then you can request a refund. But once the certificate has been generated, we shall not refund that.

Q.Can I just enrol in a single course?

Yes! You surely can. To begin this, just click the course of your interest and fill in the details to enrol. You are ready to learn, once the payment is made. For the same, you earn a certificate too.

My questions are not listed above. I need further help.

Please contact us at:

Experience the Speed: Now Available on Mobile!

Download EasyShiksha Mobile Apps from Android Play Store, Apple App Store, Amazon App Store, and Jio STB.

Curious to learn more about EasyShiksha's services or need assistance?

Our team is always here to collaborate and address all your doubts.