Skip to content

demirium/complete-c-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 Complete C Programming Course

A comprehensive, practical guide to C programming from absolute basics to advanced concepts. Created by a student, for students.


📚 Overview

This repository contains a complete C programming education series based on university-level coursework (CMPE113 & CMPE114). It's designed to take you from your very first "Hello, World!" to understanding pointers, memory management, and file I/O.

What makes this special?

  • Written from a student's perspective with real struggles in mind 🥸
  • Consistent, clear structure across all sections
  • Hundreds of tested, working code examples
  • Addresses common beginner mistakes and confusions
  • Completely free and open to all

If you want to examine some examples, you can also view my other repo: https://github.com/demirium/basic-c-exercises

Don't worry, it's much more organised now hihihi :D


🗺️ Learning Path

This course is divided into two main sections:

Level: Beginner
Prerequisites: None

Topics Covered:

  1. Introduction to C programming
  2. Variables and data types
  3. User input with scanf
  4. Conditional statements (if/else, switch)
  5. Loops (for, while)
  6. Standard libraries (math.h, stdlib.h)

Start here if: You've never programmed in C before, or need a solid foundation in the basics.


Level: Intermediate to Advanced
Prerequisites: CMPE113 or equivalent knowledge

Topics Covered:

  1. Pointers and memory addresses
  2. Arrays (single and multi-dimensional)
  3. String manipulation
  4. Structures and custom types
  5. File I/O and processing

Start here if: You know basic C syntax and are ready for pointers, arrays, and memory management.


🎯 Who Is This For?

  • 🆕 Complete beginners wanting to learn C from scratch
  • 📚 University students taking introductory C programming courses
  • 🔄 Self-learners seeking a structured curriculum
  • 👨‍🏫 Educators looking for teaching materials and examples
  • 💼 Developers refreshing their C fundamentalss
  • 🎮 Aspiring game/systems programmers building a strong foundation

🚀 Getting Started

1. Choose Your Starting Point

Never programmed before?
→ Start with CMPE113 from the beginning

Know basic programming concepts?
→ Skim CMPE113 and move to CMPE114 when ready

Already know C basics?
→ Jump straight to CMPE114

2. Set Up Your Environment

You'll need:

  • A C compiler (GCC recommended)
  • A text editor or IDE (VS Code, Code::Blocks, Dev-C++, or Xcode for Mac)
  • Terminal/Command Prompt access

Installation guides:

  • Windows: Install MinGW-w64 or use WSL
  • Mac: Install Xcode Command Line Tools
  • Linux: GCC is usually pre-installed, or use sudo apt install gcc

(I recommend using VSCode with the C/C++ extension. If you are a MacOS user, you can use Xcode. This is the best way to get started with C programming.)

3. Start Learning!

Each section has:

  • 📖 A comprehensive README.md explaining concepts
  • 💻 Multiple example files (ex-1.c, ex-2.c, etc.)
  • 🎯 A larger practical example/project
  • 🧪 Practice suggestions

📂 Repository Structure

C-Projects/
│
├── CMPE113/              # Beginner: Fundamentals
│   ├── 1 - Introduction/
│   ├── 2 - Variables/
│   ├── 3 - Getting Inputs/
│   ├── 4 - If Else/
│   ├── 5 - Switch Case/
│   ├── 6 - For Loop/
│   ├── 7 - While Loop/
│   ├── 8 - Math Library/
│   └── 9 - Stdlib Basics/
│
├── CMPE114/              # Advanced: Pointers, Arrays, Files
│   ├── 1 - Pointers/
│   ├── 2 - Arrays/
│   ├── 3 - One Dimensional Arrays/
│   ├── 4 - Second Dimensional Arrays/
│   ├── 5 - Strings/
│   ├── 6 - Structures/
│   └── 7 - File Processing/
│
├── Homeworks/            # Practice problems and assignments
└── Lab Exam Questions/   # Additional practice materials

🌟 Features

Each section includes:

  • Clear explanations - Concepts broken down into digestible pieces
  • Multiple examples - From simple to complex
  • Common mistakes - Learn from typical errors
  • Practice suggestions - Ideas for hands-on learning
  • FAQ sections - Answers to frequent questions
  • Real-world applications - Practical uses of each concept

📈 Recommended Study Plan

For Complete Beginners (12 weeks)

Weeks 1-2: CMPE113 sections 1-3 (Introduction, Variables, Inputs)
Weeks 3-4: CMPE113 sections 4-5 (Conditionals, Switch)
Weeks 5-6: CMPE113 sections 6-7 (Loops)
Weeks 7-8: CMPE113 sections 8-9 (Libraries) + Build a project!
Weeks 9-10: CMPE114 sections 1-3 (Pointers, Arrays)
Weeks 11-12: CMPE114 sections 4-7 (Advanced arrays, Strings, Structs, Files)

For Students with Programming Experience (6-8 weeks)

Weeks 1-2: Review CMPE113, focus on areas you're weak in
Weeks 3-4: CMPE114 Pointers and Arrays (take your time here!)
Weeks 5-6: CMPE114 Strings and Structures
Weeks 7-8: CMPE114 File I/O + Build a complete project


🎯 Goals and Philosophy

This course aims to:

  1. Build solid fundamentals - No shortcuts, proper understanding from day one!
  2. Explain the "why" - Not just "how" but "why does this work this way?"
  3. Address real struggles - Focus on concepts that actually confuse students
  4. Encourage experimentation - Breaking code teaches as much as working code
  5. Prepare for real use - Skills directly applicable to real projects

💡 Study Tips

  • 📝 Type code yourself - Don't just read, practice! Practice is everything hihihi.
  • 🐛 Debug actively - Use print statements and debuggers
  • 🧪 Experiment freely - Modify examples to see what happens
  • 📖 Read error messages - They're trying to help you!
  • 🤝 Collaborate - Discuss concepts with study partners
  • Take breaks - Complex topics need time to sink in
  • 🔄 Review regularly - Revisit earlier sections to reinforce learning

🤝 Contributing

This is an open educational resource! Contributions are welcome:

  • 🐛 Report bugs or typos
  • 💡 Suggest clearer explanations
  • 📝 Add more examples or exercises
  • 🌍 Translate materials to other languages
  • ⭐ Star the repo if you find it helpful!

🙏 Acknowledgments

This project exists thanks to:

  • My own journey through CMPE113 and CMPE114
  • Classmates who studied and struggled alongside me
  • The global C programming community
  • Everyone who believes quality education should be accessible to all
  • You, for choosing to learn!

📞 Contact & Feedback

Found this helpful? Have questions or suggestions?

  • Open an issue on GitHub
  • Share with others who might benefit
  • Let me know what worked and what didn't

Your feedback helps make this resource better for everyone! 🌟


Start Your Journey Today! 🚀

Whether you're pursuing a career in programming, building projects for fun, or just curious about how computers work, mastering C gives you a superpower that never goes out of style.


Author: Tolga
Courses: CMPE113 (Complete ✅) | CMPE114 (In Progress 🚧)
Last Updated: January 2026

⭐ Star this repo if it helps you learn!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages