C Programming (5 ECTS)
Code: TX00GL99-3003
General information
- Timing
- 25.05.2025 - 31.12.2025
- Implementation is running.
- Number of ECTS credits allocated
- 5 ECTS
- Virtual portion
- 5 ECTS
- Mode of delivery
- Online
- Unit
- School of ICT and Industrial Management
- Campus
- Karaportti 2
- Teaching languages
- English
- Seats
- 0 - 500
- Degree programmes
- Information and Communication Technology
- Teachers
- Virve Prami
- Teacher in charge
- Janne Salonen
- Groups
-
ATX25TVNonStop virtual studies year 2025
- Course
- TX00GL99
Objective
This course prepares you to understand and apply key programming concepts using one of the most influential programming languages in history. With its hands-on approach and clear progression, the course enables you to:
- Understand the basics of algorithms and structured programming.
- Write and debug interactive C programs.
- Use arrays, functions, loops, and conditionals effectively.
- Manipulate data using pointers, structs, and files.
- Manage memory dynamically and work with advanced features like unions, enums, and bitwise operations.
- Grasp low-level mechanisms such as storage classes, function pointers, and preprocessor macros.
By mastering these skills, you will be ready to take on new challenges in software development, embedded systems, or academic programming projects.
Content
Module 1: Introduction to Programming
In this module, you will explore the foundational principles of programming, including how computers process instructions, how programs are structured, and how to design, write, and interact with simple C programs. The lessons guide you step by step from abstract thinking to practical implementation using the C programming language.
Module 2: Structured Programming
In this module, you will learn how to build programs that make decisions, repeat actions, and handle collections of data efficiently. These skills allow you to create more dynamic and interactive programs. You will explore conditional statements, loops, and arrays using the C programming language.
Module 3: Modular Programming
In this module, you will learn how to structure your C programs into modular components using functions and global variables. Modular programming helps you write reusable, maintainable, and organized code by dividing programs into logical building blocks. You’ll also explore the switch...case statement, which allows cleaner decision-making in multi-branch situations.
Module 4: Data Structures
In this module, you will deepen your understanding of data handling in C by learning to work with more advanced data structures and memory management techniques. You will explore strings, records, files, pointers, multidimensional arrays, dynamic memory, and linked data structures. These tools are essential for building efficient, flexible, and real-world C programs.
Module 5: Special Features of the C Language
In this module, you will explore advanced features of the C language that give you greater control over how programs behave and manage memory. These topics will deepen your understanding of how C works under the hood and allow you to write more efficient, flexible, and portable programs. You will learn about variable storage duration and scope, macros and preprocessing, command-line arguments, and how to work with low-level data using unions, bitwise operations, bit fields, and function pointers.
Final Test
Location and time
All content is accessed directly through Moodle, allowing you to study at your own pace and on your own schedule.
Materials
Can be find via course pace.
Teaching methods
This course includes:
- 5 learning modules
- Hands-on programming exercises
- Module-specific quizzes
- Final test to assess overall understanding
All content is accessed directly through Moodle, allowing you to study at your own pace and on your own schedule.
Employer connections
N/A
Exam schedules
Before taking the Final Test, make sure you have fully completed all course modules:
- Module 1–5 Theory Lessons
- Practice Exercises in each module
- Module Quizzes after each theory section
Completing all Practice Exercises and Quizzes is mandatory to unlock the Final Test. Once you have successfully completed them, the Final Test will become available.
International connections
N/A
Completion alternatives
N/A
Student workload
Depends on Students starting level.
Content scheduling
Before taking the Final Test, make sure you have fully completed all course modules:
- Module 1–5 Theory Lessons
- Practice Exercises in each module
- Module Quizzes after each theory section
Completing all Practice Exercises and Quizzes is mandatory to unlock the Final Test. Once you have successfully completed them, the Final Test will become available.
Further information
Cross-study students from other universities register for online courses through the cross-study service of their home university's study information system.
Metropolia degree students do not register for online courses through OMA, but according to the instructions found at this link: https://users.metropolia.fi/~salja/nonstoplinkit/index.htm
Evaluation scale
Hyväksytty/Hylätty
Assessment criteria, approved/failed
Pass after all of five (5) Modules and the Final Test has been done.
Assessment methods and criteria
Pass after Student has fully completed all course modules and Final Test has been passed.
? Module 1–5 Theory Lessons
? Practice Exercises in each module
? Module Quizzes after each theory section
The Final Test consists of:
- 40 automatically graded questions (multiple choice, matching, and true/false)
- 5 short programming exercises
You must complete both parts to pass the test and receive a grade.
Qualifications
There are no formal prerequisites. Basic computer usage skills (such as file handling and typing) are sufficient. The course starts from the ground up, making it an ideal starting point for new programmers.