Embedded C Application Design Principles Training Course
This instructor-led live training, available online or on-site, is designed for C developers who want to master the design principles of embedded C.
Upon completion of this training, participants will be able to:
- Understand the design factors that ensure reliability in embedded C programs
- Define the functionality of an embedded system
- Establish the program logic and structure required to achieve desired outcomes
- Design robust and error-free embedded applications
- Achieve optimal performance from the target hardware
Course Format:
- Interactive lectures and discussions
- Exercises and practical practice
- Hands-on implementation in a live-lab environment
Course Customization Options:
- To request 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
- Compilers, assemblers, and linkers
- Libraries
- Debuggers
- Simulators
- IDEs
Challenges in Embedded Design
- Constraints of embedded computing design
- Cost considerations
- Performance and efficiency
- Power consumption
- Thermal management
Defining Design Goals
- Keeping it simple
- Defining 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
- Acylic 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 fundamental electronics concepts
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 Sweden (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 Sweden (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 robust software engineering methodology that centers on modeling intricate business logic by aligning technical solutions with fundamental business concepts. This course delves into how DDD enables teams to manage complexity and mitigate risks through strategic and tactical patterns. Participants will acquire the skills to establish a "Ubiquitous Language," delineate clear boundaries via Bounded Contexts, and leverage essential building blocks such as Entities, Value Objects, and Aggregates. The objective is to develop flexible, maintainable software architectures that stay harmonious with the evolving business landscape.
Domain-Driven Design: Concepts and Practices for Senior Developers
21 HoursDomain-Driven Design (DDD) is a methodology for software development that focuses on building systems around the business domain, leveraging a shared ubiquitous language along with strategic and tactical modeling techniques.
This instructor-led live training, available either online or on-site, targets senior developers at an advanced level who want to utilize DDD principles to design robust, scalable, and maintainable systems.
Upon completion of this training, participants will be equipped to:
- Identify and model core domain concepts through the use of ubiquitous language and bounded contexts.
- Implement tactical DDD patterns, including entities, value objects, aggregates, repositories, and domain services.
- Create context maps and strategic boundaries to effectively manage complexity across teams and microservices.
- Embed DDD practices within Agile teams and CI/CD workflows to enhance collaboration and delivery efficiency.
Course Format
- Interactive lectures and discussions.
- Extensive exercises and practical application.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To arrange a customized training session for this course, please contact us.
Design Patterns
14 HoursNumerous established design patterns are readily accessible. Often, the key lies in adapting the naming conventions and applying the pattern within a specific technological context. Doing so can save hundreds of hours that would otherwise be devoted to design and testing phases. This course aims to achieve two main objectives: first, it enables you to leverage widely recognized patterns, and second, it empowers you to develop and reuse patterns tailored to your organization. You will learn to estimate how patterns can reduce costs, systematize the design process, and generate a code framework based on your custom patterns. The intended audience includes software designers, business analysts, project managers, programmers, developers, as well as operational and software division managers. The course style emphasizes use cases and their relationship with specific patterns. Most examples are explained using UML and simple Java examples (the programming language may vary if the course is booked as a closed session). It guides you through the sources of patterns and shows you how to catalogue and describe patterns that can be reused across your organization.
Design Thinking: Empathize with Internal Clients
7 HoursDesign Thinking is a human-centered approach to problem-solving that relies on empathy, definition, ideation, prototyping, and testing. This course places significant emphasis on the Empathize stage, focusing on linking previously identified challenges to the true needs of internal clients. It uses dynamic, collaborative activities to turn insights into actionable results.
This instructor-led live training, available online or onsite, is designed for beginner to intermediate teams and leaders. It aims to deepen empathy skills, strengthen relationships with internal clients, and transform pain points into meaningful opportunities for improvement.
Upon completion of this training, participants will be able to:
- Use empathy-based techniques to uncover and validate client needs.
- Convert mapped pain points into clear, actionable needs.
- Participate in dynamic role plays and simulations to practice client-centered conversations.
- Redefine problem statements collaboratively from the client’s perspective.
Course Format
- Interactive lectures and guided discussions.
- 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 relies on empathy, definition, ideation, prototyping, and testing. By concentrating on the initial two phases—Empathize and Define—teams can gain a deeper understanding of internal clients and accurately identify the problems that need addressing.
This instructor-led live training, available online or onsite, is designed for beginner to intermediate teams and leaders who want to strengthen their relationships with internal clients, minimize resistance to change, and enhance operational efficiency through practical and collaborative methods.
Upon completion of this training, participants will be capable of:
- Employing active listening and interviewing techniques to collect valuable insights about internal clients.
- Developing empathy maps to document user needs and pain points.
- Distinguishing between actual root causes and perceived issues using tools such as the 5 Whys and problem trees.
- Drafting clear, actionable problem statements (POVs) to guide solution development.
Course Format
- Interactive lectures and discussions.
- Practical, hands-on 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 in Sweden (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, and 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 live, instructor-led training in Sweden (online or on-site) is designed for beginner to intermediate professionals who wish to understand and apply Design Thinking methodologies to drive innovation and improve 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 Sweden (online or onsite) targets beginner-level leaders and HR professionals seeking to learn and apply Design Thinking methodologies to foster innovation, enhance problem-solving capabilities, 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) process encompasses five distinct stages: empathize, define the problem, ideate, prototype, and test.
In an increasingly complex world, we encounter challenges that often require specialized approaches. Design Thinking provides the framework for addressing these complex issues effectively. Mastering design thinking enables professionals to handle complexity with ease, communicate more effectively, persuade with greater efficiency, improve business outcomes, and enhance both organizational and personal behavior and performance.
- Understanding how DT functions: learning from people and problems, identifying patterns, designing models (including model drift), testing models, evaluating results, and re-engineering.
- The relationship between Design Thinking, innovation, and entrepreneurship.
- Key DT methods and tools: personas, stakeholder maps, customer journey maps, service blueprints, and business model innovation.
- Applications of DT: cultivating a design mindset, driving disruptive innovation, adopting an iterative approach, utilizing agile estimation techniques, enhancing critical thinking and problem-solving skills, fostering teamwork, preparing for leadership roles, improving communication skills, developing technological savvy, encouraging forward thinking, building intercultural and ethical competency, boosting emotional intelligence, increasing self-awareness, sharpening negotiating skills, and mastering conflict resolution.
Objectives:
- To grasp the fundamentals and nuances of DT.
- To explore key concepts, factors, theories, types, and models within DT.
- To experiment with, experience, and practice DT techniques.
Delivery:
This is a one-day (4-hour) training course structured as follows:
- Lectures (40%): Presentation of theories, concepts, models, and interactive discussions.
- Group exercises (30%): Activities focusing on group dynamics, games, group discussions, and mock conflict resolution.
- Individual activities (15%): Tasks involving writing, designing, and peer discussions.
- Other components (15%): Videos and reading materials.
Note: Due to the collaborative nature of this course, a minimum group size of 3 participants is required.
Design Patterns (GoF) for Java
21 HoursThis instructor-led, live training in Sweden (online or onsite) targets intermediate-level Java developers who wish to apply design patterns to improve software structure, maintainability, and scalability.
Upon completion of this training, participants will be capable of:
- Gaining a clear understanding of the purpose and advantages of design patterns.
- Effectively implementing Creational, Structural, and Behavioral patterns within Java.
- Enhancing code reusability, scalability, and maintainability.
- Refactoring existing codebases through the application of design patterns.
Design Patterns in PHP
14 HoursThis instructor-led, live training in Sweden (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.
JavaScript - Advanced Programming
14 HoursThis training is tailored for JavaScript developers who design and implement advanced web applications. The curriculum focuses on sharing best practices in JavaScript programming and highlighting common pitfalls. A key aspect of the course is exploring object-oriented programming techniques using JavaScript syntax.
Kubernetes Design Patterns
21 HoursThe recent advancement of microservices and containers has fundamentally transformed the way we design, develop, deploy, and operate software. Today's applications must be engineered for scalability, elasticity, resilience against failures, and adaptability to change. These evolving demands necessitate a new set of architectural patterns and practices. This training explores methods to identify, comprehend, and adapt to these modern requirements.
Audience
This course is designed for individuals who possess a foundational knowledge of container technology and Kubernetes concepts but may lack extensive practical experience. Drawing on use cases and lessons learned from real-world projects, the training aims to inspire participants to create and manage high-quality cloud-native applications.
- Developers
- Operations staff
- DevOps professionals
- QA Engineers
- IT Project Managers
Course Format
- Interactive lectures and discussions
- Numerous exercises and practical activities
- Hands-on implementation in a live-lab environment
Course Customization Options
- To request customized training for this course, please contact us to arrange.