Embedded C Application Design Principles Training Course
This instructor-led, live training (available online or on-site) is designed for C developers who wish to master the design principles of embedded C.
By the end of this training, participants will be able to:
- Grasp the design considerations that ensure the reliability of embedded C programs
- Define the functionality of an embedded system
- Establish the program logic and structure to achieve desired outcomes
- Design a reliable, error-free embedded application
- Maximize performance on the target hardware
Format of the Course:
- Interactive lecture and discussion
- Exercises and practice
- Hands-on implementation in a live-lab environment
Course Customization Options:
- To request a customized training for this course, please contact us to arrange.
Course Outline
Introduction
- What is design?
- C vs Embedded C
The Life-Cycle of an Embedded Application
- The development process
- The maintenance process
- The extended life cycle
Design Tools
- Open source vs proprietary
- Compiler, assemblers and linkers
- Libraries
- Debuggers
- Simulators
- IDEs
Embedded Design Challenges
- Embedded computing design constraints
- Cost considerations
- Performance and efficiency
- Power consumption
- Thermal management
Defining the Design Goals
- Keeping it simple
- Defining the functionality
- Defining the program logic and structure
System Reliability
- Inspection and maintenance
- Uptime requirements
- Points of failure
Code Reusablility
- Redundancy-free design
Code Abstraction
- Information hiding
- Context-free modules
Code Modularization
- Decomposition
- Loose coupling
- Strong cohesion
- Acyclic dependencies
Code Maintainability
- Readability
- Testability
- Configurability
- Performance upgrades
Hardware Considerations
- Scalable Thermal Design Power (TDP)
- Integrated graphics
- Other
Summary and Conclusion
Requirements
- Basic knowledge of embedded systems
- Experience with embedded C programming
- Understanding of electronics fundamentals
Audience:
- Developers
Open Training Courses require 5+ participants.
Embedded C Application Design Principles Training Course - Booking
Embedded C Application Design Principles Training Course - Enquiry
Embedded C Application Design Principles - Consultancy Enquiry
Testimonials (2)
The explanations and interactivity of the trainer, he really brought the subject well; and even-though I was probably not experienced enough, I did learn a lot from it!
Pieter Bruynseels - Spot Buy Center BV
Course - Design Patterns
Monika's energy and huge knowledge, useful tools, adjusting the speed of training to the group
Natalia Kalinowska - Politechnika Lodzka
Course - Design Thinking Fundamentals
Upcoming Courses
Related Courses
Creative Problem Solving with Gamification Techniques (Design Thinking)
14 HoursThis instructor-led, live training in South Korea (online or onsite) is aimed at beginner-level to intermediate-level participants who wish to solve everyday workplace challenges through gamification techniques.
By the end of this training, participants will be able to:
- Understand the principles of Design Thinking and its application to problem-solving.
- Incorporate gamification techniques to foster engagement and innovation.
- Develop creative and practical solutions to common workplace issues.
- Collaborate effectively across teams to implement problem-solving strategies.
- Apply iterative approaches to refine solutions through feedback and experimentation.
Domain Driven Design: Concepts and Practices
21 HoursThis instructor-led live training (available online or onsite) is aimed at intermediate-level developers, architects, and analysts who wish to learn and apply DDD concepts and practices to their software projects.
By the end of this training, participants will be able to:
- Grasp core DDD concepts (bounded contexts, entities, etc.) and their application in software projects.
- Apply strategic DDD to define and design the domain model, identify subdomains, and establish boundaries.
- Implement tactical DDD using patterns such as CQRS, factories, and event sourcing.
- Refactor and modernize legacy systems effectively with DDD techniques.
- Design and implement product, domain, and team-oriented architectures.
- Utilize data mesh to create a domain-oriented data platform supporting data discovery and governance.
Introduction to Domain Driven Design
14 HoursDomain-Driven Design (DDD) is a strategic approach for managing complex business logic during software development.
Domain-Driven Design: Concepts and Practices for Senior Developers
21 HoursDomain-Driven Design (DDD) is a software development methodology that focuses on aligning system design with the business domain, utilizing a shared ubiquitous language along with strategic and tactical modeling techniques.
This instructor-led training, available both online and onsite, targets advanced senior developers who aim to implement DDD principles to build robust, scalable, and maintainable systems.
Upon completion of this training, participants will be capable of:
- Identifying and modeling core domain concepts through ubiquitous language and bounded contexts.
- Applying tactical DDD patterns, including entities, value objects, aggregates, repositories, and domain services.
- Designing context maps and establishing strategic boundaries to manage complexity across teams and microservices.
- Integrating DDD practices into Agile teams and CI/CD workflows to enhance collaboration and delivery efficiency.
Course Format
- Interactive lectures and group discussions.
- Extensive exercises and practical applications.
- Hands-on implementation within a live-lab environment.
Course Customization Options
- For customized training arrangements, please contact us.
Design Patterns
14 HoursNumerous established and proven patterns are readily accessible to all. Often, the challenge lies merely in renaming them and adapting them to specific technologies. This approach can save hundreds of hours that would otherwise be devoted to design and testing. Training Goals This course has two main objectives: first, to enable you to leverage widely recognized patterns, and second, to empower you to create and reuse patterns tailored to your organization. It assists you in estimating how patterns can reduce costs, systematize the design process, and generate a code framework based on your patterns. Audience Software designers, business analysts, project managers, programmers, developers, operational managers, and software division managers. Course Style The course focuses on use cases and their relationship with a specific pattern. Most examples are explained in UML and in simple Java examples (the language can change if the course is booked as a closed course). It guides you through the sources of the patterns as well as showing you how to catalogue and describe patterns which can be reused across your organization.
Design Thinking: Empathize with Internal Clients
7 HoursDesign Thinking is a human-centered methodology for solving problems through empathy, definition, ideation, prototyping, and testing. This version of the course places a strong emphasis on the Empathize stage, focusing on connecting previously identified pain points to the real needs of internal clients, and applying dynamic, collaborative activities to transform insights into actionable outcomes.
This instructor-led, live training (online or onsite) is aimed at beginner-level to intermediate-level teams and leaders who wish to deepen their empathy skills, strengthen relationships with internal clients, and translate pain points into meaningful opportunities for improvement.
By the end of this training, participants will be able to:
- Apply empathy-based techniques to uncover and validate client needs.
- Translate mapped pain points into clear, actionable needs.
- Engage in dynamic role plays and simulations to practice client-centered conversations.
- Collaboratively redefine problem statements from the client’s perspective.
Format of the Course
- Interactive lecture and guided discussions.
- Dynamic, hands-on role plays and empathy exercises.
- Group workshops for collaborative problem reframing.
Course Customization Options
- To request a customized version tailored to a specific internal process (e.g., procurement or equipment provisioning), please contact us to arrange.
Design Thinking: Empathize & Define for Internal Clients
7 HoursDesign Thinking is a human-centered methodology for solving problems through empathy, definition, ideation, prototyping and testing. Focusing on the first two stages — Empathize and Define — helps teams better understand internal clients and define the right problems to solve.
This instructor-led, live training (online or onsite) is aimed at beginner-level to intermediate-level teams and leaders who wish to strengthen their connection with internal clients, reduce resistance to change, and improve operational efficiency through practical, collaborative methods.
By the end of this training, participants will be able to:
- Use active listening and interviewing techniques to gather meaningful insights about internal clients.
- Create empathy maps and capture user needs and pain points.
- Differentiate real root problems from perceived issues using tools like the 5 Whys and problem trees.
- Draft clear, actionable problem statements (POVs) that guide solution work.
Format of the Course
- Interactive lecture and discussion.
- Practical, hands-on exercises and role-plays.
- Group workshops and plenary feedback sessions.
Course Customization Options
- To request a customized version tailored to a specific internal process (e.g., procurement or equipment provisioning), please contact us to arrange.
Design Thinking Workshop for Software Developers
14 HoursDuring this instructor-led live workshop training in South Korea (online or onsite), participants will learn how to apply the five stages of Design Thinking to better understand the problems experienced by end-users of a product or service, then develop the best approach for resolving them.
By the end of this training, participants will be able to:
- Use creative strategies to match customers' needs with technologically feasible solutions.
- Formulate a strategy to increase customer value and enhance product and service offerings.
Design Thinking: Innovation Methodologies
24 HoursThis instructor-led, live training in South Korea (online or onsite) is designed for beginner to intermediate-level professionals seeking to understand and apply Design Thinking methodologies to drive innovation and enhance business solutions.
By the conclusion of this training, participants will be able to:
- Understand the fundamental principles of Design Thinking and its role in fostering innovation.
- Apply the five phases of Design Thinking to address problems.
- Use ideation techniques and tools to encourage creativity.
- Implement Design Thinking strategies to improve processes and increase efficiency.
Innovative Leadership through Design Thinking
14 HoursThis instructor-led live training in South Korea (online or onsite) is designed for beginner-level leaders and HR professionals who aim to learn and apply Design Thinking methodologies to encourage innovation, strengthen problem-solving abilities, and effectively engage teams.
By the end of this training, participants will be able to:
- Equip participants with tools and methodologies to foster innovation and team engagement.
- Develop skills in empathy mapping, ideation, and prototyping for solving complex challenges.
- Apply Design Thinking principles to leadership and HR scenarios.
- Promote a culture of innovation within tech teams.
Design Thinking: Innovation & Creative Problem Solving
4 HoursOverview:
The Design Thinking (DT) framework comprises five distinct stages: empathize, define the problem, ideate, prototype, and test.
In today’s increasingly complex landscape, many challenges require specialized strategies. Design Thinking serves as a powerful tool for navigating these complexities. By mastering Design Thinking, individuals can address difficult issues more effectively, communicate with greater clarity, persuade with more impact, drive superior business outcomes, and elevate both organizational culture and personal performance.
- Core Mechanics of DT: Gaining insights from users and the problem itself, identifying patterns, developing models (noting model drift), testing the model, evaluating results, and re-engineering as necessary.
- The interplay between DT, innovation, and entrepreneurship.
- Essential DT methods and tools: persona creation, stakeholder mapping, customer journey mapping, service blueprints, and business model innovation.
- Practical applications of DT: cultivating a design mindset, pursuing disruptive innovation, adopting an iterative approach, utilizing agile estimation techniques, enhancing critical thinking and problem-solving skills, fostering teamwork, preparing leadership capabilities, improving communication, leveraging technology, thinking ahead, building intercultural and ethical competency, boosting emotional intelligence and self-awareness, and sharpening negotiation and conflict resolution skills.
Objectives:
- To grasp the fundamental principles and subtle nuances of DT.
- To explore key concepts, influencing factors, theories, types, and models within DT.
- To engage in experimentation, experiential learning, and practical application of DT.
Delivery:
This one-day (4-hour) training program includes the following components:
- Lectures (40%): Presentation of theories, concepts, models, and interactive discussions.
- Group Exercises (30%): Activities focusing on group dynamics, games, collaborative discussions, and mock conflict resolution scenarios.
- Individual Activities (15%): Tasks involving writing, design work, and peer discussions.
- Other Materials (15%): Videos and reading assignments.
Note: Due to the interactive nature of this course, a minimum group size of 3 participants is required.
Design Thinking Fundamentals
14 HoursIn today's increasingly complex environment, we often encounter challenges that require specialized approaches. Design Thinking provides the framework to navigate these intricate problems. By mastering Design Thinking, individuals can address complex issues more effectively, improve communication, persuade more efficiently, drive better business outcomes, and enhance both organizational dynamics and personal performance.
Program Objectives:
- Gain an introduction to Design Thinking and its application across various industries.
- Recognize the benefits of Design Thinking and its critical role in developing effective solutions.
- Comprehend the pivotal role of the customer in the Design Thinking process.
- Learn about the tools used in Design Thinking and how to apply them in practice.
Design Patterns in C#
14 HoursTarget Audience:
Technical Team Leaders, Software Developers
Learning Objectives:
This training aims to equip participants with the skills to design advanced development and project structures in C#.
Throughout the course, students will become familiar with MSDN resources and essential tools that support the development process, such as Microsoft Visual Studio and ReSharper.
Design Patterns (GoF) for Java
21 HoursThis instructor-led live training, offered South Korea (online or in person), is tailored for intermediate Java developers aiming to apply design patterns to improve software structure, maintainability, and scalability.
By the end of this training, participants will be able to:
- Comprehend the objectives and advantages of utilizing design patterns.
- Effectively implement Creational, Structural, and Behavioral patterns within Java.
- Enhance the reusability, scalability, and maintainability of code.
- Refactor existing codebases through the application of design patterns.
Design Patterns in PHP
14 HoursThis instructor-led, live training in South Korea (online or onsite) is aimed at intermediate-level PHP developers who wish to apply design patterns effectively in their projects.
By the end of this training, participants will be able to:
- Understand the purpose and benefits of design patterns.
- Identify and implement appropriate design patterns for common scenarios.
- Structure PHP applications using industry-recognized best practices.
- Integrate patterns into modern frameworks such as Symfony or Zend.