Welcome to the Dart Introduction Course repository by Bayt-al-Hikmah! This collection of lecture notes is designed for beginners and intermediate learners aiming to master Dart programming fundamentals. Whether you're new to coding or refreshing your skills, these notes provide structured, step-by-step guidance through core concepts.
Bayt-al-Hikmah (House of Wisdom) is dedicated to preserving and disseminating knowledge, inspired by the historic intellectual center of the Islamic Golden Age. These lectures emphasize clear explanations, practical examples, and hands-on exercises to build a strong foundation in the Dart language.
-
Basic familiarity with computers and file management.
-
No prior programming experience required (though helpful).
-
Dart SDK and an IDE like Visual Studio Code with the Dart extension.
-
Install the Dart SDK:
-
Download from dart.dev.
-
Follow the instructions for your OS (Windows, macOS, or Linux).
-
-
Install an editor/IDE: Visual Studio Code with the Dart extension is recommended for beginners.
-
Test your setup: Run a "Hello, World!" program (example in Lecture 1) using:
dart run hello_world.dart
This 5-lecture series covers essential Dart topics progressively. Each lecture includes:
-
Theoretical explanations.
-
Code examples and snippets.
-
Exercises for practice.
-
References for further reading.
| Lecture | Topic | Key Concepts Covered |
|---|---|---|
| Lecture 1 | Variables and Input-Output | Variables, data types (int, double, String, etc.), user input/output with stdin/stdout. |
| Lecture 2 | Control Flow | Logical/comparison operators, if-else, switch-case, for/while/do-while loops. |
| Lecture 3 | Functional Programming, Libraries, and Packages | Functions, functional programming concepts, importing libraries and packages. |
| Lecture 4 | Object-Oriented Programming and Error Handling | Classes, objects, inheritance, try-catch, error handling. |
| Lecture 5 | File Handling and Asynchronous Programming | File I/O, async/await, Futures, working with asynchronous operations. |
-
Exercises: Each lecture ends with coding challenges. Solutions can be added in a separate /exercises folder.
-
Mini-Project Ideas:
-
Lecture 2: Simple calculator app using control flow.
-
Lecture 3: Task manager using functions and packages.
-
Lecture 5: File-based to-do list with asynchronous file handling.
-
-
Resources: dart.dev for documentation, pub.dev for packages, and Exercism for problems.
We welcome contributions! Help expand these notes with:
-
Corrections or clarifications.
-
Additional examples or exercises.
-
Translations or adaptations.
This project is licensed under the MIT License – feel free to use, modify, and distribute.
Questions? Open an issue or reach out via:
-
GitHub: @Bayt-al-Hikmah
-
Email: alitighiouart2001@gmail.com
Happy coding! 🚀 Let's build wisdom through code.