Embedded C Application Design Principles Training Course
This instructor-led training, available online or on-site, is designed for C developers who want to master the principles of embedded C design.
Upon completion of this training, participants will be able to:
- Understand the design factors that contribute to the reliability of embedded C programs
- Define the functionality of an embedded system
- Define the program logic and structure to achieve the desired outcomes
- Design reliable, error-free embedded applications
- Optimize performance on the target hardware
Course Format:
- Interactive lectures and discussions
- Exercises and practice sessions
- Hands-on implementation in a live-lab environment
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 Reusability
- 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
I liked the platform we used. It was really nice and easy to use. I liked the typescript section, the part about namespaces and modules.
Robert - DB Global Technology
Course - JavaScript - Advanced Programming
Upcoming Courses
Related Courses
Creative Problem Solving with Gamification Techniques (Design Thinking)
14 HoursThis instructor-led, live training in Italy (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 in Italy (online or onsite) is tailored for intermediate-level developers, architects, and analysts who aim to learn and apply DDD concepts and practices to their software projects.
By the end of this training, participants will be able to:
- Understand fundamental DDD concepts (such as bounded contexts and entities) and their practical application in software development.
- Apply strategic DDD techniques to define the domain model, identify subdomains, and establish clear boundaries.
- Execute tactical DDD by implementing patterns like CQRS, factories, and event sourcing.
- Effectively refactor and modernize legacy systems using DDD strategies.
- Design and implement architectures oriented toward products, domains, and teams.
- Leverage data mesh to build a domain-oriented data platform that supports data discovery and governance.
Introduction to Domain Driven Design
14 HoursDomain-Driven Design (DDD) is a robust software development methodology that centers on modeling intricate software behaviors by synchronizing technical execution with essential business concepts. This course examines how DDD empowers teams to manage complexity and mitigate risk through strategic and tactical patterns. Participants will learn to establish a "Ubiquitous Language," delineate clear boundaries via Bounded Contexts, and employ key building blocks such as Entities, Value Objects, and Aggregates. The objective is to develop flexible, maintainable software architectures that stay aligned with the evolving business domain.
Domain-Driven Design: Concepts and Practices for Senior Developers
21 HoursDomain-Driven Design (DDD) is a software development methodology that focuses on building systems around the core business domain, utilizing a shared ubiquitous language along with strategic and tactical modeling techniques.
This instructor-led live training, available online or on-site, is designed for experienced senior developers aiming to leverage DDD principles to create robust, maintainable, and scalable systems.
Upon completion of this course, participants will be capable of:
- Identifying and modeling core domain concepts through ubiquitous language and bounded contexts.
- Implementing tactical DDD patterns, including entities, value objects, aggregates, repositories, and domain services.
- Designing context maps and strategic boundaries to effectively manage complexity across teams and microservices.
- Integrating DDD practices into Agile workflows and CI/CD pipelines to enhance team collaboration and delivery efficiency.
Course Format
- Interactive lectures and group discussions.
- Extensive exercises and practical activities.
- Hands-on implementation within a live laboratory environment.
Customization Options
- For customized training arrangements, please reach out to us.
Design Patterns
14 HoursA wide array of proven and reliable patterns is readily accessible to all. Often, the process simply involves adapting nomenclature and implementing the pattern within a specific technology. This approach can save hundreds of hours that would otherwise be devoted to design and testing phases. Training Objectives This course aims to achieve two primary goals: first, enabling you to leverage well-established patterns, and second, empowering 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 specific patterns. Target Audience Software designers, business analysts, project managers, programmers and developers, as well as operational managers and software division managers. Course Approach The course focuses on use cases and their relationship with specific patterns. 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-centric approach to problem-solving that leverages empathy, definition, ideation, prototyping, and testing. This course places significant emphasis on the Empathize phase, focusing on linking identified pain points to the genuine needs of internal stakeholders, and utilizing dynamic, collaborative activities to convert insights into actionable results.
This instructor-led, live training (available online or onsite) is designed for beginner to intermediate-level teams and leaders who aim to enhance their empathy skills, strengthen relationships with internal stakeholders, and transform pain points into meaningful improvement opportunities.
Upon completion of this training, participants will be able to:
- Utilize empathy-driven techniques to uncover and validate stakeholder needs.
- Convert mapped pain points into clear, actionable requirements.
- Engage in dynamic role plays and simulations to practice stakeholder-centric conversations.
- Collaboratively redefine problem statements from the stakeholder’s perspective.
Course Format
- Interactive lectures and guided discussions.
- Dynamic, hands-on role plays and empathy exercises.
- Group workshops focused on collaborative problem reframing.
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 approach to problem-solving that leverages empathy, definition, ideation, prototyping, and testing. By concentrating on the initial two phases—Empathize and Define—teams can deepen their understanding of internal stakeholders and accurately pinpoint the issues requiring resolution.
This instructor-led live training, available online or on-site, targets beginner to intermediate teams and leaders who aim to strengthen their rapport with internal stakeholders, minimize resistance to change, and enhance operational efficiency through practical, collaborative techniques.
Upon completing this training, participants will be able to:
- Utilize active listening and interviewing methods to gather valuable insights about internal stakeholders.
- Develop empathy maps to articulate user needs and identify pain points.
- Distinguish between actual root causes and perceived issues using tools such as the '5 Whys' and problem trees.
- Formulate clear, actionable Problem of View (POV) statements to direct solution development.
Course Format
- Interactive lectures and discussions.
- Practical, hands-on exercises and role-playing scenarios.
- Collaborative group workshops and plenary feedback sessions.
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 HoursIn this instructor-led, live workshop training in Italy (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 Italy (online or onsite) targets beginner to intermediate-level professionals aiming to understand and apply Design Thinking methodologies to drive innovation and enhance business solutions.
By the end of this training, participants will be able to:
- Understand the core principles of Design Thinking and its role in innovation.
- Apply the five phases of Design Thinking to problem-solving.
- Utilize ideation techniques and tools to foster creativity.
- Implement Design Thinking strategies to improve processes and enhance efficiency.
Innovative Leadership through Design Thinking
14 HoursThis instructor-led, live training in Italy (online or onsite) is designed for beginner-level leaders and HR professionals who wish to learn and apply Design Thinking methodologies to foster innovation, enhance problem-solving capabilities, and engage teams effectively.
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) process comprises five distinct stages: empathize, define the problem, ideate, prototype, and test.
In our increasingly complex world, we encounter challenges that often require specialized approaches. Design Thinking provides the framework to address these complexities. Mastering DT enables professionals to handle difficult problems effectively, communicate with greater clarity, persuade more efficiently, improve business outcomes, and enhance both organizational and individual performance.
- How DT works: Learning from people and the problem context, identifying patterns, designing models (accounting for model drift), testing the model, evaluating the model, and re-engineering as needed.
- The relationship between DT, innovation, and entrepreneurship.
- DT methods and tools: persona development, stakeholder mapping, customer journey mapping, service blueprints, and business model innovation.
- Application of DT: Cultivating a design mindset, driving disruptive innovation, applying iterative approaches and agile estimation techniques, fostering critical thinking, problem-solving, teamwork, leadership readiness, communication skills, technological savvy, forward-thinking, intercultural and ethical competency, emotional intelligence, self-awareness, negotiation skills, and conflict resolution.
Objectives:
- To understand the fundamentals and nuances of DT.
- To explore key concepts, factors, theories, types, and models within DT.
- To experiment with, experience, and practice DT.
Delivery:
This is a one-day (4-hour) training course consisting of:
- Lectures (40% - presentation of theories, concepts, models, and interactions),
- Group exercises (30% - group dynamics, games, group discussion, and mock-conflict resolution exercises),
- Individual activities (15% - writing, designing, and peer discussion)
- And others (15% - videos, reading).
Note: Due to the nature of this course, there is a minimum group size of 3.
Design Patterns (GoF) for Java
21 HoursThis instructor-led, live training in Italy (online or onsite) is aimed at intermediate-level Java developers who wish to apply design patterns to improve software structure, maintainability, and scalability.
By the end of this training, participants will be able to:
- Understand the purpose and benefits of design patterns.
- Apply Creational, Structural, and Behavioral patterns effectively in Java.
- Improve code reusability, scalability, and maintainability.
- Refactor existing codebases using design patterns.
Design Patterns in PHP
14 HoursThis instructor-led, live training in Italy (online or onsite) is designed for 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.
JavaScript - Advanced Programming
14 HoursThis training is tailored for JavaScript developers who aim to design and implement advanced Internet applications. The course focuses on establishing best practices in JavaScript programming and identifying common pitfalls. A key objective is to explore object-oriented programming concepts using JavaScript syntax.
Kubernetes Design Patterns
21 HoursThe rapid advancement of microservices and container technologies in recent years has fundamentally transformed how we design, develop, deploy, and operate software. Today's applications need to be optimized for scalability, elasticity, resilience against failures, and adaptability to change. To meet these modern demands, architecture requires a distinct set of patterns and practices. In this training, we explore strategies to identify, comprehend, and adapt to these evolving requirements.
Target Audience
This course is designed for individuals who have a foundational understanding of container technology and Kubernetes concepts but may lack practical, real-world experience. The content is grounded in use cases and lessons learned from actual projects, aiming to inspire participants to build and manage even more effective cloud-native applications.
- Developers
- Operations staff
- DevOps professionals
- QA Engineers
- IT Project Managers
Course Format
- Interactive lectures and discussions
- Extensive exercises and practical sessions
- Hands-on implementation within a live laboratory environment
Course Customization Options
- To arrange a customized training session for this course, please contact us to discuss your specific needs.