Embedded C Application Design Principles Training Course
This instructor-led live training, available either online or on-site, is specifically designed for C developers who want to master the principles of embedded C design.
By the conclusion of this training, participants will be equipped to:
- Grasp the design considerations essential for creating reliable embedded C programs
- Clearly define the functionality of an embedded system
- Establish the program logic and structure necessary to achieve desired outcomes
- Create robust and error-free embedded applications
- Achieve optimal performance from the target hardware
Course Format:
- Interactive lectures and discussions
- Practical exercises and practice sessions
- Hands-on implementation within a live laboratory environment
Customization Options:
- To request customized training for this course, please reach out to us to make arrangements.
Course Outline
Introduction
- What constitutes design?
- Differences between C and Embedded C
The Lifecycle of an Embedded Application
- The development process
- The maintenance process
- The extended lifecycle
Design Tools
- Open source versus proprietary solutions
- Compilers, assemblers, and linkers
- Libraries
- Debuggers
- Simulators
- IDEs
Challenges in Embedded Design
- Design constraints in embedded computing
- Cost considerations
- Performance and efficiency
- Power consumption
- Thermal management
Defining Design Goals
- Simplicity in design
- Defining functionality
- Defining program logic and structure
System Reliability
- Inspection and maintenance
- Uptime requirements
- Points of failure
Code Reusability
- Design without redundancy
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 factors
Summary and Conclusion
Requirements
- Fundamental knowledge of embedded systems
- Practical experience in embedded C programming
- Understanding of basic electronics principles
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 Serbia (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 Serbia (online or in-person) is designed for intermediate-level developers, architects, and analysts who want to learn and apply DDD concepts and practices to their software projects.
Upon completion of this training, participants will be able to:
- Understand fundamental DDD concepts, such as bounded contexts and entities, and their application in software projects.
- Apply strategic DDD to define and design the domain model, identify subdomains, and establish clear boundaries.
- Implement tactical DDD using patterns like CQRS, factories, and event sourcing.
- Effectively refactor and modernize legacy systems using DDD techniques.
- Design and implement architectures that are product-focused, domain-oriented, and team-aligned.
- 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 strategic approach for managing complex behaviors during the software development process.
Domain-Driven Design: Concepts and Practices for Senior Developers
21 HoursDomain-Driven Design (DDD) is a software development approach that focuses on designing systems around the business domain, leveraging a shared ubiquitous language along with tactical and strategic modeling techniques.
This live training, led by an instructor and available either online or onsite, is designed for advanced senior developers who want to apply DDD principles to create robust, maintainable, and scalable systems.
Upon completing this training, participants will be able to:
- Identify and model core domain concepts using a ubiquitous language and bounded contexts.
- Implement tactical DDD patterns, including entities, value objects, aggregates, repositories, and domain services.
- Design context maps and strategic boundaries to manage complexity across teams and microservices.
- Integrate DDD practices into Agile teams and CI/CD workflows to enhance collaboration and delivery efficiency.
Course Format
- Interactive lectures and discussions.
- Numerous exercises and practical activities.
- Hands-on implementation within a live-lab environment.
Customization Options
- To request customized training for this course, please contact us to make arrangements.
Design Patterns
14 HoursNumerous proven patterns are readily accessible to everyone. Often, the key lies in adapting their names and applying them within a specific technology. This approach can save hundreds of hours that would otherwise be devoted to design and testing phases. Training Goals This course has two primary goals: first, it enables you to reuse well-established patterns, and second, it empowers you to create and reuse patterns tailored to your organization. It helps you estimate 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, and developers, as well as operational managers and software division managers. Course Style The course focuses on use cases and their relationship with a specific pattern. Most of the 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 relies on empathy, definition, ideation, prototyping, and testing. This course variant places significant emphasis on the Empathize phase, aiming to link identified pain points with the genuine requirements of internal stakeholders. It utilizes dynamic, collaborative activities to convert insights into tangible results.
This instructor-led, live training (available online or onsite) targets beginner to intermediate teams and leaders who want to enhance their empathy capabilities, strengthen relationships with internal clients, and convert pain points into meaningful opportunities for improvement.
Upon completing this training, participants will be able to:
- Utilize empathy-based techniques to uncover and validate client needs.
- Translate mapped pain points into clear, actionable requirements.
- Participate in dynamic role-plays and simulations to practice client-centered conversations.
- Collaboratively redefine problem statements from the client’s viewpoint.
Course Format
- Interactive lectures and guided discussions.
- Dynamic, hands-on role-plays and empathy exercises.
- Group workshops for 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 gain a deeper understanding of their internal clients and accurately identify the problems that require resolution.
This instructor-led live training, available both online and onsite, targets beginner to intermediate-level teams and leaders who aim to strengthen their relationships with internal clients, minimize resistance to change, and enhance operational efficiency through practical, collaborative techniques.
Upon completion of this training, participants will be capable of:
- Employing active listening and interviewing skills to extract meaningful insights about internal clients.
- Developing empathy maps to document user needs and pain points.
- Distinguishing between genuine root causes and perceived issues using tools such as the 5 Whys and problem trees.
- Formulating clear, actionable problem statements (POVs) to direct solution development.
Course Format
- Interactive lectures and discussions.
- Hands-on practical exercises and role-playing scenarios.
- 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 Serbia (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 Serbia (online or onsite) is designed for beginner to intermediate professionals seeking 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 Serbia (online or onsite) is aimed at 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
4 HoursOverview:
The Design Thinking (DT) methodology comprises five distinct stages: empathize, define the problem, ideate, prototype, and test.
In today’s increasingly complex landscape, we often face challenges that require specialized approaches. Design Thinking serves as a powerful tool for navigating such complexity. By mastering design thinking, professionals can address complex issues more effectively, communicate with greater clarity, persuade with greater efficiency, improve business outcomes, and enhance both organizational and personal performance and behavior.
- How Design Thinking Works: Learn from people and problems, identify patterns, design a model (noting model drift), test the model, evaluate the model, and re-engineer.
- The relationship between Design Thinking, innovation, and entrepreneurship.
- Design Thinking methods and tools: persona development, stakeholder mapping, customer journey mapping, service blueprints, and business model innovation.
- Application of Design Thinking: cultivating a design mindset, driving disruptive innovation, employing an iterative approach, using agile estimation techniques, fostering critical thinking, problem solving, teamwork, leadership readiness, communication skills, technological proficiency, forward-thinking, intercultural and ethical competency, emotional intelligence, self-awareness, negotiation skills, and conflict resolution.
Objectives:
- Understand the fundamentals and nuances of Design Thinking.
- Explore key concepts, factors, theories, types, and models within Design Thinking.
- Experiment with, experience, and practice Design Thinking.
Delivery:
This is a one-day (4 hours) training course and consists 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 other activities (15% - videos, reading).
Note: Due to the nature of this course, there is a minimum group size of 3 participants.
Design Thinking Fundamentals
14 HoursIn an increasingly complex global landscape, we encounter challenges that often require specialized strategies. Design Thinking provides a powerful framework for addressing such complexity. By mastering Design Thinking, individuals can tackle intricate problems more effectively, communicate with greater clarity, persuade with higher efficiency, improve business outcomes, and enhance both organizational and personal performance.
Program Objectives:
- Gain an introduction to Design Thinking and its applications across various industries
- Identify the benefits of Design Thinking and its critical role in developing effective solutions
- Understand the central role of the customer in the Design Thinking process
- Explore the tools used in Design Thinking and learn how to apply them in practice
Design Patterns in C#
14 HoursTarget audience:
Technical Team Leaders, Software Developers
Learning objectives:
The goal of this training is to develop the ability to design sophisticated development and project structures in C#.
During the course, participants will become familiar with MSDN resources and tools that support the development process, such as Microsoft Visual Studio and ReSharper.
Design Patterns (GoF) for Java
21 HoursThis instructor-led, live training in Serbia (online or onsite) is designed for intermediate Java developers seeking to apply design patterns to improve software structure, maintainability, and scalability.
Upon completion of this training, participants will be able to:
- Grasp the purpose and advantages of using design patterns.
- Effectively apply Creational, Structural, and Behavioral patterns in Java.
- Enhance code reusability, scalability, and maintainability.
- Refactor existing codebases by employing design patterns.
Design Patterns in PHP
14 HoursThis instructor-led live training in Serbia (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.