Your browser is ancient!
Upgrade to a different browser to experience this site.

Building Objects in C

What You'll Learn

  • Create data structures in C
  • Understand the difference in structure between C and Python
  • Learn the potential security holes associated with C
6 Modules
24 Hours
4 hrs per module (approx.)
Rating

About Building Objects in C

In this course, learn how Python was built in C and, by extension, languages like Java and JavaScript. Review object-oriented programming syntax from several languages and use your knowledge of C to build a library that integrates high-level data structures like strings, lists, and dictionaries. Learn how to make your program run as efficiently as possible by covering memory allocation, de-allocation, and object lifecycle.

Skills You'll Gain

  • Data Structures
  • Object-Oriented Programming (OOP)
  • Programming Languages

What You'll Earn

Certificate of Completion:
Certificates of completion acknowledge knowledge acquired upon completion of a non-credit course or program.
Experience Type
100% Online
Format
Self-Paced
Subject
  • Data Science
Platform
Coursera
Welcome Message

Welcome to Building Objects in C, a course designed to teach you how high-level languages like Python, Java, and JavaScript are built using C. You will explore object-oriented programming syntax across languages and apply your knowledge to create libraries that include strings, lists, and dictionaries. Gain practical experience in memory allocation, deallocation, and object lifecycle to optimize program efficiency.

This abbreviated syllabus description was created with the help of AI tools and reviewed by staff. The full syllabus is available to those who enroll in the course.

Course Schedule

Module 1: Object Oriented Programming: History

  • Reading: Help Us Learn More About You!
  • Reading: Syllabus
  • Video: Object Oriented Programming: A Historical Perspective
  • Video: Brian Kernighan: C and C++ at Bell Labs
  • Video: Video: C++ Bjarne Stroustrup: Inventing C++
  • Video: Comparing Object Oriented Programming Approaches Across Languages
  • Reading: Textbook Chapter 6: Structures
  • Graded Assignment: Object Oriented Programming

Module 2: Part 1: Object Oriented Progrmming

  • Video: Implementing Python-like Object Oriented Patterns in C
  • Video: Implementing the Python String (str) Class in C
  • Reading: Textbook: Chapter 6 - Structures
  • Graded: Implement a Python str class

Module 3: Part 2: Object Oriented Programming

  • Video: Implementing the Python List (list) Class in C
  • Video: Implementing the Python Dictionary (dict) Class in C
  • Reading: Textbook: Chapter 6 - Structures
  • Graded Assignment: Abstraction and Encapsulation
  • Graded: Implement a Python list class
  • Graded: Implement a Python dict class

Module 4: Encapsulation

  • Video: Implementing Encapsulation and Interfaces in C
  • Video: Exploring the Map Abstraction across Languages
  • Video: A Quick Look at Unique Aspects of the C++ Object Oriented Pattern
  • Video: Implementing Encapsulation in C-Based Objects
  • Video: Building an Iterator Abstraction in C
  • Reading: Textbook: Chapter 6 - Structures
  • Video: Bonus: Detroit Office Hours
  • Reading: Additional Resources for Week 3
  • Graded: Encapsulation
  • Graded: Iteration

Module 5: Part 1: Tree Maps and Hash Maps

  • Video: Introduction: Building a HashMap and LinkedTreeMap in C
  • Video: Understanding Hash Computations
  • Video: Building a HashMap object in C
  • Reading: Textbook: Chapter 6 - Structures

Module 6: Part 2: Tree Maps and Hash Maps

  • Video: Using Binary Trees as Data Structures
  • Video: Inserting Data Into a LinkedTreeMap in C
  • Video: Counting Words in Python and in C using a LinkedHashMap
  • Reading: Textbook: Chapter 6 - Structures
  • Video: Welcome to the CC4E Epilogue
  • Video: Guido van Rossum: Inside the Object Implementations in Python
  • Video: Looking at Guido's Implementation of String and List Classes in Python 0.0.9
  • Video: Looking at Guido's Implementation of the Dictionary Class in Python 0.0.9
  • Video: Looking at the Python 3.7 re-implementation of the Dictionary class
  • Video: Guido van Rossum: Designing the Python Object Oriented Pattern
  • Video: Code Walkthrough: Exploring Reference Counting in the Python String Object
  • Video: Code Walkthrough: Building the Python 0.0.9 list() Implementation
  • Video: Code Walkthrough: Building the Python 0.0.9 dict() Implementation
  • Video: Code Walkthrough: Building the Python 3.7 dict() Implementation
  • Reading: Additional Resources for Week 5
  • Graded: Build a HashMap
  • Graded: Build a LinkedTreeMap
  • Graded: Throwback: Count words
Grading Policy

Course materials and assignments remain open for self-paced learning. Learners must achieve an overall grade of 80% or higher to pass and earn the certificate. Each graded item in this course is worth 12.5% of your final grade.

Course content developed by U-M faculty and managed by the university. Faculty titles and affiliations are updated periodically.

Intermediate Level

Some related experience required

Enrollment Options

Individuals

This experience is available to individual learners on the following platforms:

U-M Community

Students, faculty, staff, and alumni of the University of Michigan get free access.

Organizations

Special pricing and tailored programming bundles available for organizational partners.

What are Coursera and edX?

Michigan Online learning experiences may be hosted on one or more learning platforms. Platform features may vary, including payment models, social communities, and learner support.

Coursera

  • Hosts online courses, series, and Teach-Outs from Michigan Online
  • Enroll and preview courses anytime
  • May earn a non-credit certificate from Coursera

edX

  • Hosts online courses and series from Michigan Online
  • Many offer a free (limited) audit option
  • May earn a non-credit certificate from edX

For more information visit the What are Coursera and edX? FAQ section

Reviews and Ratings

4.7

7 Ratings from Coursera

Michigan Online
For You

Sign up for a Michigan Online account to customize your experience!