Intermediate and Advanced Programming in C with Mini-Project - Part 1 & 2
Tue 28 Jan 2025 10:00 AM - Wed 29 Jan 2025 2:30 PM
Dumfries and Galloway College, DG1 4FD
Description
Summary
Welcome back to the world of C programming! You've grasped the fundamentals and are ready to take your skills to the next level. This course dives into intermediate and advanced C concepts, along with a mini project to test your newfound knowledge.
Eligibility
You need to be a Dumfries and Galloway region resident at the age of 19 and above, the caveat to that is that you're a school leaver with no positive destination in mind.
Pre-Requisite
This course is designed for programmers with a basic understanding of C who want to enhance their skills.
Course Duration
Two Days (1000 to 1430 hours GMT) with a 30 minutes break in both sessions.
Course Objectives
- Deepen understanding of core C concepts like memory management and pointers.
- Explore advanced topics like structures, unions, and file handling.
- Learn dynamic memory allocation techniques using malloc and calloc.
- Develop proficiency in function pointers and recursion.
- Design and implement a mini-project to showcase learned concepts.
Outline
Day 1
Memory Management in C (1 hour)
- Pointers - declaration, initialization, pointer arithmetic
- Dereferencing pointers and accessing data
- Understanding memory addresses and segmentation faults
Advanced Data Structures (1 hour)
- Structures - defining and using structures
- Unions - declaring and manipulating unions
- Arrays of structures and structures within structures
Dynamic Memory Allocation (1 hour)
- malloc and calloc functions for memory allocation
- Realloc function for resizing memory blocks
- Free function for deallocating memory
- Avoiding memory leaks and dangling pointers
Hands-on Lab 1 (30 min)
- Practice with pointers, structures, and memory allocation
- Implement functions manipulating complex data structures
Day 2
Function Pointers and Recursion (1 hour)
- Declaring and using function pointers
- Passing functions as arguments
- Understanding function call stack and recursion
- Recursive functions and solving problems using recursion
Advanced C Topics (1 hour)
- Preprocessor directives (#define, #include)
- Bitwise operators and their applications
- File Handling in C (fopen, fclose, fgetc, fputc)
- Reading from and writing to files
Mini-Project Introduction and Planning (30 min)
- Introduce the mini-project concept and purpose
- Discuss potential project ideas based on learned concepts (e.g., student record management, simple game)
- Break participants into small teams and allocate project themes
- Facilitate group brainstorming and planning (requirements, functionalities)
Mini-Project Execution (1 hour)
Course Wrap-up and Mini-Project Showcase (1 hour)
- Q&A and Discussion on advanced C topics
- Each team presents their mini-project idea and approach
- Discuss lessons learned and best practices during project development
- Course Feedback
Note: This outline prioritizes hands-on learning. Labs and the mini-project should be designed to solidify concepts and encourage teamwork. Consider offering project templates or guidance for beginners while allowing flexibility for experienced participants.
Location
Dumfries and Galloway College, DG1 4FD