We may earn an affiliate commission when you visit our partners.
Course image
Petra Bonfert-Taylor and Rémi SHARROCK

In this course you will define your own data types in C, and use the newly created types to more efficiently store and process your data.

Many programming languages provide a number of built-in data types to store things such as integers, decimals, and characters in variables, but what if you wanted to store more complex data?

Read more

In this course you will define your own data types in C, and use the newly created types to more efficiently store and process your data.

Many programming languages provide a number of built-in data types to store things such as integers, decimals, and characters in variables, but what if you wanted to store more complex data?

Defining your own data types in C allows you to more efficiently store and process data such as a customer's name, age and other relevant data, all in one single variable! You will also gain experience with programming concepts that are foundational to any programming language.

Why learn C and not another programming language? Did you know that smartphones, your car’s navigation system, robots, drones, trains, and almost all electronic devices have some C-code running under the hood? C is used in any circumstance where speed and flexibility are important, such as in embedded systems or high-performance computing.

At the end of this short course, you will reach the fifth milestone of the C Programming with Linux Specialization, unlocking the door to a career in computer engineering.

Your job Outlook:

- Programmers, developers, engineers, managers, and related industries within scientific computing and data science;

- Embedded systems such as transportation, utility networks, and aerospace;

- Robotics industry and manufacturing;

- IoT (Internet of Things) used in smart homes, automation, and wearables.

- IEEE, the world’s largest technical professional organization for the advancement of technology, ranks C as third of the top programming languages of 2021 in demand by employers. (Source: IEEE Spectrum)

This course has received financial support from the Patrick & Lina Drahi Foundation.

Enroll now

What's inside

Syllabus

Welcome
Week 1: Structures
By the end of Week 1, you will be able to create, initialize, and modify variable of new data type structures, as well as understand how much memory is used for these variables. You will also learn to define, initialize, and modify arrays of structures and then pass these structures to functions by value.
Read more
Week 2: Structures and pointers
By the end of Week 2, you will be able to create/dereference pointers to structures, pass structures to functions (where they can be modified), and dynamically allocate memory to store a variable of data type structure. You will also be able to explain the difference between the direct and the indirect member selection operators.
Week 3: Linked lists
By the end of Week 3,you will be able to create and initialize a linked list of structures, as well as perform basic operations on them: swapping elements, sorting through by alphabet or numerically, and searching through a linked list for a particular member.
Concluding the course

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Suitable for learners looking to advance to computer engineering
Develops foundational programming concepts
Covers linked lists, a data structure commonly used in programming
Taught by Petra Bonfert-Taylor and Rémi SHARROCK, who are experienced professionals in the field
Requires a basic understanding of C programming

Save this course

Save C Programming: Advanced Data Types - 5 to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in C Programming: Advanced Data Types - 5 with these activities:
Participate in study groups or online forums
Engaging in study groups or online forums allows you to interact with fellow students, exchange ideas, and reinforce your understanding of course concepts.
Show steps
  • Join or create study groups with classmates or connect with online communities.
  • Participate in discussions, ask questions, and share your knowledge.
  • Work together to solve problems or complete assignments.
  • Provide feedback and support to other participants.
Compile a glossary of C programming terms
Creating a glossary of C programming terms will help you reinforce your vocabulary and improve your understanding of the key concepts covered in the course.
Show steps
  • Identify and list important terms related to C programming.
  • Provide clear and concise definitions for each term.
  • Organize the terms alphabetically or by category.
  • Review the glossary regularly to refresh your memory and enhance retention.
Participate in coding competitions
Participating in coding competitions can challenge your understanding of C programming and push you to apply your skills in a competitive environment.
Show steps
  • Identify coding competitions that are relevant to C programming.
  • Register for the competition and familiarize yourself with the rules.
  • Practice solving coding problems related to the competition's topics.
  • Participate in the competition and attempt to solve as many problems as possible.
  • Review your performance and identify areas for improvement.
One other activity
Expand to see all activities and additional details
Show all four activities
Mentor junior students or beginners in C programming
Mentoring others can solidify your understanding of C programming while also helping others learn and grow.
Show steps
  • Identify opportunities to mentor junior students or beginners.
  • Share your knowledge and experience, guiding them through concepts and techniques.
  • Provide feedback on their code and assignments.
  • Encourage them to ask questions and seek clarification.

Career center

Learners who complete C Programming: Advanced Data Types - 5 will develop knowledge and skills that may be useful to these careers:
Software Developer
Software Developers design, develop, test, deploy, and maintain software applications. They use their knowledge of programming languages, software engineering principles, and computer science fundamentals to create software that meets specific needs. C Programming is an important skill for Software Developers, as it is the foundation for many modern programming languages and operating systems. This course can help you develop the skills you need to become a successful Software Developer.
Systems Analyst
Systems Analysts work with clients and users to analyze their business needs and develop and implement software solutions to meet those needs. They use their knowledge of systems analysis and design, programming languages, and software engineering principles to create software that meets specific requirements. C Programming is an important skill for Systems Analysts, as it is the foundation for many modern programming languages and operating systems. This course can help you develop the skills you need to become a successful Systems Analyst.
Computer Programmer
Computer Programmers write, modify, test, and maintain computer programs. They use their knowledge of programming languages, software engineering principles, and computer science fundamentals to develop software that meets specific needs. C Programming is an important skill for Computer Programmers, as it is the foundation for many modern programming languages and operating systems. This course can help you develop the skills you need to become a successful Computer Programmer.
Database Administrator
Database Administrators design, develop, and maintain databases. They use their knowledge of database management systems, programming languages, and software engineering principles to create databases that are efficient, reliable, and secure. C Programming is an important skill for Database Administrators, as it is the foundation for many modern programming languages and operating systems. This course can help you develop the skills you need to become a successful Database Administrator.
Web Developer
Web Developers design, develop, and maintain websites and web applications. They use their knowledge of web technologies, programming languages, and software engineering principles to create websites that are user-friendly, functional, and visually appealing. C Programming is an important skill for Web Developers, as it is the foundation for many modern programming languages and operating systems. This course can help you develop the skills you need to become a successful Web Developer.
Network Engineer
Network Engineers design, develop, and maintain computer networks. They use their knowledge of network protocols, hardware, and software to create networks that are reliable, efficient, and secure. C Programming is an important skill for Network Engineers, as it is the foundation for many modern networking protocols and operating systems. This course can help you develop the skills you need to become a successful Network Engineer.
IT Architect
IT Architects design, develop, and maintain IT systems. They use their knowledge of IT infrastructure, programming languages, and software engineering principles to create systems that are scalable, efficient, and secure. C Programming is an important skill for IT Architects, as it is the foundation for many modern programming languages and operating systems. This course can help you develop the skills you need to become a successful IT Architect.
Security Analyst
Security Analysts design, develop, and maintain security systems. They use their knowledge of security protocols, hardware, and software to create systems that protect networks and data from unauthorized access, use, disclosure, disruption, modification, or destruction. C Programming is an important skill for Security Analysts, as it is the foundation for many modern security protocols and operating systems. This course can help you develop the skills you need to become a successful Security Analyst.
Data Scientist
Data Scientists use their knowledge of programming languages, statistical methods, and machine learning to analyze data and extract insights. C Programming is an important skill for Data Scientists, as it is the foundation for many modern programming languages and operating systems. This course can help you develop the skills you need to become a successful Data Scientist.
Machine Learning Engineer
Machine Learning Engineers design, develop, and maintain machine learning systems. They use their knowledge of programming languages, statistical methods, and machine learning to create systems that can learn from data and make predictions. C Programming is an important skill for Machine Learning Engineers, as it is the foundation for many modern programming languages and operating systems. This course can help you develop the skills you need to become a successful Machine Learning Engineer.
Computer Scientist
Computer Scientists research and develop new computer technologies and applications. They use their knowledge of programming languages, software engineering principles, and computer science fundamentals to create new ways to solve problems and improve our lives. This course may help you develop the skills you need to become a successful Computer Scientist, as C Programming is the foundation for many modern programming languages and operating systems.
Software Engineer
Software Engineers apply the principles of software engineering to the design, development, testing, and maintenance of software systems. They use their knowledge of programming languages, software engineering principles, and computer science fundamentals to create software that is reliable, efficient, and secure. This course may help you develop the skills you need to become a successful Software Engineer, as C Programming is the foundation for many modern programming languages and operating systems.
Information Technology Specialist
Information Technology Specialists provide technical support to users of computer systems and software. They use their knowledge of hardware, software, and operating systems to diagnose and solve computer problems. This course may help you develop some of the skills you need to become a successful Information Technology Specialist, as C Programming is the foundation for many modern operating systems.
Network Administrator
Network Administrators install, maintain, and repair computer networks. They use their knowledge of network protocols, hardware, and software to diagnose and solve network problems. This course may help you develop some of the skills you need to become a successful Network Administrator, as C Programming is the foundation for many modern networking protocols and operating systems.
Computer Technician
Computer Technicians install, maintain, and repair computers and computer systems. They use their knowledge of hardware, software, and operating systems to diagnose and solve computer problems. This course may help you develop some of the skills you need to become a successful Computer Technician, as C Programming is the foundation for many modern operating systems.

Reading list

We've selected 14 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in C Programming: Advanced Data Types - 5.
This classic book must-read for anyone who wants to learn C. It covers all the basics of the language, from data types to pointers to functions. It's also a great reference for experienced C programmers.
Comprehensive introduction to algorithms. It covers all the basics of algorithms, as well as some more advanced topics such as graph algorithms and dynamic programming.
Comprehensive guide to data structures and algorithms in C. It covers all the basics of data structures and algorithms, as well as some more advanced topics such as graph algorithms and dynamic programming.
Comprehensive introduction to concrete mathematics. It covers all the basics of concrete mathematics, such as sets, relations, and graphs.
Comprehensive introduction to discrete mathematics. It covers all the basics of discrete mathematics, such as sets, relations, and graphs.
Comprehensive introduction to thinking and problem-solving. It covers all the basics of thinking and problem-solving, such as how to identify the problem, how to generate solutions, and how to evaluate solutions.
Concise introduction to computer science. It covers all the basics of computer science, such as algorithms, data structures, and software engineering.
Comprehensive guide to C programming in Linux. It covers all the basics of the language, as well as some more advanced topics such as system programming and networking.
Comprehensive guide to C programming for embedded systems. It covers all the basics of the language, as well as some more advanced topics such as real-time programming and hardware interfacing.
Classic introduction to algorithms and data structures. It covers all the basics of algorithms and data structures, and it's written in a clear and concise style.
Classic introduction to problem-solving. It covers all the basics of problem-solving, such as how to identify the problem, how to generate solutions, and how to evaluate solutions.
Great introduction to the C programming language for beginners. It covers all the basics of the language, and it's written in a clear and concise style.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to C Programming: Advanced Data Types - 5.
C Programming: Language Foundations - 2
Most relevant
C Programming: Using Linux Tools and Libraries - 7
Most relevant
C Programming: Pointers and Memory Management - 4
Most relevant
C Programming: Advanced Data Types
Most relevant
Linux Basics: The Command Line Interface - 6
Most relevant
C Programming: Modular Programming and Memory Management ...
Most relevant
ARM Cortex (STM32) Fundamentals: Building Embedded Systems
Most relevant
Embedded Systems using C
Most relevant
Microcontroller Embedded C Programming: Absolute Beginners
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser