We may earn an affiliate commission when you visit our partners.
Course image
Charles Russell Severance

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.

Enroll now

What's inside

Syllabus

Object Oriented Programming: History
Part 1: Object Oriented Programming
Part 2: Object Oriented Programming
Read more
Encapsulation
Lectures
Part 1: Tree Maps and Hash Maps
Part 2: Tree Maps and Hash Maps

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides experience building a library that integrates high-level data structures like strings, lists, and dictionaries through hands-on labs and interactive materials, which helps learners apply theoretical knowledge to real-world projects
Emphasizes memory allocation, de-allocation, and object lifecycle management, which helps learners develop foundational programming skills
Covers object-oriented programming concepts such as encapsulation, inheritance, and polymorphism, which are essential for software development
Taught by Charles Russell Severance, who is known for their expertise in programming languages and software development and has multiple patents in the field of compilers and computer architecture
Explores the relationship between Python, C, Java, and JavaScript, which helps learners understand the underlying principles and similarities of programming languages

Save this course

Save Building Objects in C 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 Building Objects in C with these activities:
Review Python Basics
Refreshes fundamental Python concepts to ensure a solid foundation for building on in this course.
Browse courses on Python Basics
Show steps
  • Review variables, data types and basic operators
  • Revisit conditional statements and loops
  • Recall functions, modules and classes
Head First Python
Provides a comprehensive and engaging introduction to Python concepts, fostering a deeper understanding of the language.
Show steps
  • Read through the chapters, focusing on key concepts and examples
  • Complete the practice exercises and quizzes to reinforce understanding
  • Discuss the book's content with peers or a mentor to clarify concepts
Python Study Group
Fosters collaboration and knowledge sharing by engaging with peers, promoting a deeper understanding of Python concepts.
Show steps
  • Join or start a Python study group with fellow learners
  • Discuss course material, share resources, and work together on projects
  • Present findings and lead discussions to reinforce understanding
Six other activities
Expand to see all activities and additional details
Show all nine activities
CodinGame Python Challenges
Provides practice solving Python coding challenges to reinforce concepts and improve problem-solving skills.
Show steps
  • Register on the CodinGame platform
  • Select the Python track and start solving challenges
  • Review solutions and learn from others' approaches
HackerRank Python Challenges
Encourages problem-solving and algorithm design skills by participating in competitive coding challenges.
Show steps
  • Register on the HackerRank platform
  • Select Python-based challenges and solve them efficiently
  • Analyze solutions and learn from the approaches of others
Python Workshop: Data Analysis with Pandas
Enhances learners' understanding of data manipulation and analysis using the Pandas library, expanding their practical skills.
Show steps
  • Attend a workshop focused on using Pandas for data analysis
  • Follow along with the instructor and complete hands-on exercises
  • Discuss and ask questions to clarify concepts and techniques
Data Structures and Algorithms in Python
Explores advanced data structures and algorithms in Python, enhancing understanding of how to efficiently manage and process data.
Show steps
  • Follow tutorials on implementing linked lists, stacks and queues in Python
  • Practice implementing basic sorting and searching algorithms (e.g., bubble sort, binary search)
  • Explore more advanced algorithms like recursion, dynamic programming or graph search
Volunteer as a Python Tutor
Provides an opportunity to reinforce learning by helping others, while also developing communication and teaching skills.
Show steps
  • Sign up as a tutor on platforms like Codecademy or HackerRank
  • Answer questions and provide guidance to students learning Python
  • Engage in discussions and share knowledge with other tutors
Python Mini-Project
Challenges learners to apply Python skills by building a small project, fostering creativity and problem-solving abilities.
Show steps
  • Identify a simple problem or task that can be solved using Python
  • Design and implement the solution, including functions, classes and data structures
  • Test and debug the code to ensure it meets requirements
  • Write documentation or a README file explaining the project

Career center

Learners who complete Building Objects in C will develop knowledge and skills that may be useful to these careers:
Mobile Applications Developer
Mobile Applications Developers design, develop, and maintain the applications that we use on our phones and tablets. Mobile apps have become essential for many businesses, and the demand for Mobile Applications Developers is high. This course can help you build a strong foundation for a career in mobile application development.
Software Developer
Software Developers design, build, and maintain the software applications that we use on computers, phones, and other devices. Taking this course can help you build a strong foundation in programming and software development.  
Systems Software Developer
Systems Software Developers design, develop, and maintain the operating systems and other software that runs on computers and other devices. Understanding the concepts in this course can help you build a foundation for your career as a systems software developer. 
Information Security Analyst
Information Security Analysts plan and carry out security measures to protect an organization's computer networks and systems. They research and analyze advanced security topics and threats to design and implement safeguards against unauthorized access, use, disclosure, disruption, modification, or destruction of systems and networks. Having a strong foundation in C programming is important for a career in Information Security. This course can help build the skills necessary to understand how computer systems work and how to identify and prevent security risks.
Robotics Engineer
Robotics Engineers design, develop, and maintain the robots that are used in a variety of applications, such as manufacturing, healthcare, and space exploration. Robotics is a rapidly growing field, and the demand for Robotics Engineers is high. This course can help you build a strong foundation in programming, mathematics, and physics, which are essential skills for Robotics Engineers.
Data Scientist
Data Scientists use data to solve business problems. They collect, clean, and analyze data to identify trends and patterns. Many data scientists also write code to develop data-driven applications. This course can help you build a strong foundation in programming and data analysis, which are essential skills for Data Scientists.
Artificial Intelligence Engineer
Artificial Intelligence Engineers design, develop, and maintain the AI systems that are used in a variety of applications, including self-driving cars, facial recognition software, and natural language processing. Artificial Intelligence is a rapidly growing field, and the demand for AI Engineers is high. This course can help you build a strong foundation in programming and AI, which are essential skills for AI Engineers.
embedded systems developer
Embedded Systems Developers design, develop, and maintain the software that runs on embedded devices. Embedded devices are small computers that are used in a variety of applications, such as cars, medical devices, and industrial equipment. This course can help you learn the programming and hardware skills that are needed to become a successful Embedded Systems Developer.
Video Game Developer
Video Game Developers design, develop, and maintain the video games that we play on computers, phones, and other devices. Video game development is a complex and challenging field, but it can also be very rewarding. This course can help you learn the programming, math, and physics skills that are needed to become a successful Video Game Developer.
Database Developer
Database Developers design, develop, and maintain the databases that store and organize data for organizations. Databases are used by nearly every business, and the demand for Database Developers is high. This course can help you learn the skills needed to design and develop databases.
Machine Learning Engineer
Machine Learning Engineers design, develop, and maintain the machine learning models that power many of the applications we use today. Machine learning is a rapidly growing field, and the demand for Machine Learning Engineers is high. This course can help you build a strong foundation in programming and machine learning, which are essential skills for Machine Learning Engineers.
Web Developer
Web Developers create and maintain websites. They work with both the design and the code that makes up a website, and many web developers design and program the user interface that people interact with. Understanding the concepts in this course can help you build a foundation for your career as a web developer. 
Desktop Applications Developer
Desktop Applications Developers design, develop, and maintain computer applications that run on desktop computers. Many companies rely on software tools that are specifically designed for their industry. Building a foundation in programming can help you prepare for a career as a Desktop Applications Developer.
Computer Programmer
Computer Programmers build, write, and maintain software programs that run on computers, phones, tablets, and other devices. Building software is complex and requires in depth knowledge of how different computer systems communicate with each other. Knowledge you gain in this course can help you build a foundation for your career as a computer programmer. A degree in Computer Science is typical for most roles, but not always required.
Computer Systems Analyst
Computer Systems Analysts study how computer systems are used to solve business problems. They can work with business professionals to design solutions that improve efficiency or customer service. Some of them exclusively work on software systems and make sure those systems are running well. The knowledge you gain in this course can help you build the object-oriented programming foundation needed to excel as a Computer Systems Analyst.

Reading list

We've selected 15 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 Building Objects in C.
Monumental work on computer science, covering a wide range of topics including algorithms, data structures, and programming techniques. It valuable resource for gaining a deeper understanding of the theoretical foundations of object-oriented programming.
Classic reference on design patterns, providing a systematic catalog of proven solutions to common software design problems. It valuable resource for understanding and applying design patterns in object-oriented programming.
Introduces design patterns in a clear and engaging way. It provides a practical understanding of how to apply design patterns to improve the design and implementation of object-oriented software.
Comprehensive guide to algorithms, covering a wide range of fundamental algorithms and data structures. It provides a theoretical foundation for understanding the performance and efficiency of object-oriented programs.
Comprehensive guide to object-oriented analysis and design, providing a step-by-step approach to designing and implementing object-oriented software systems. It covers topics such as use cases, class diagrams, and design patterns.
Comprehensive introduction to algorithms, covering a wide range of fundamental algorithms and data structures. It provides a strong theoretical foundation for understanding the performance and efficiency of object-oriented programs.
Provides a comprehensive overview of object-oriented design and patterns, covering topics such as encapsulation, inheritance, and polymorphism. It offers practical guidance on how to apply design patterns to improve the quality and maintainability of object-oriented software.
Covers a wide range of data structures and algorithms, providing insights into their implementation and performance. It complements the course's focus on object-oriented programming with a practical understanding of data structures and algorithms.
Practical guide to writing clean and maintainable code. It covers topics such as naming conventions, code organization, and refactoring. It valuable resource for improving the quality and readability of object-oriented programs.
Provides a detailed introduction to computer architecture, covering topics such as processor design, memory hierarchies, and input/output systems. It offers a solid foundation for understanding the implementation of object-oriented programming in hardware.
Focuses on object-oriented programming concepts and their implementation in C++. It provides a solid foundation for understanding object-oriented design and programming principles.
Practical guide to programming in C, providing a comprehensive overview of the language and its features. It valuable resource for gaining a strong foundation in C programming, which is essential for understanding object-oriented programming in C.
Provides an in-depth understanding of operating systems, their design principles, and implementation. It offers a comprehensive overview of the concepts covered in this course, such as memory management, process scheduling, and file systems.

Share

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

Similar courses

Here are nine courses similar to Building Objects in C.
Object-Oriented Programming in Kotlin
Most relevant
A 16 Hour C# Course With Microsoft Visual Studio 2013
Programming Java for Beginners - The Ultimate Java...
Create a C# Class Definition to Track Employee Data
Object-oriented Design with C#
Garbage Collection Algorithms
C Programming: Pointers and Memory Management - 4
Make a Postage Calculator with Scala
Intermediate Object-Oriented Programming for Unity Games
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