Embedded C Application Design Principles Training Course
This instructor-led, live training (online or onsite) is aimed at C developers wishing to learn embedded C design principles.
By the end of this training, participants will be able to:
- Understand the design considerations that make embedded C programs reliable
- Define the functionality of an embedded system
- Define the program logic and structure to obtain the desired result
- Design a reliable, error-free embedded application
- Obtain optimal performance from 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 embedded system knowledge
- Embedded C programming experience
- An 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
Consultancy Enquiry
Testimonials (5)
Interaction and communication
Archie Dlamini - Vodacom SA
Course - JavaScript - Advanced Programming
I like the simple but informative example codes.
Yue Wang - DBS Bank Ltd
Course - Design Patterns
I liked the practical exercises for each design pattern introduced.
Carlos Aragones - Roche Diagnostics
Course - Design Patterns in C#
I really enjoyed the real examples and exercises.
Dmitry Baranovsky
Course - Introduction to Domain Driven Design
The interaction and enthusiasm he had about the training.
Richard Burgos
Course - Design Patterns in PHP
Provisional Upcoming Courses (Contact Us For More Information)
Related Courses
Creative Problem Solving with Gamification Techniques (Design Thinking)
14 HoursThis instructor-led, live training in Belgium (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 Belgium (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 an approach for handling complex behaviors when developing software.
Design Patterns
14 HoursThere are plenty of tried and tested patterns widely available to everyone. Sometimes it is a matter of changing the names and implementing the pattern in a specific technology. It can save hundreds of hours, which otherwise would be spent on design and testing. Training Goals This course has two goals: first, it allows you to reuse widely-known patterns, second, it allows you to create and reuse patterns specific to your organization. It helps you to 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 Sprint Workshop
35 HoursThis instructor-led, live training in Belgium (online or onsite) is aimed at persons who wish to learn how to carry out a successful design sprint within their organization.
By the end of this training, participants will be able to:
- Reduce the risk of bringing a new product to market.
- Gather feedback from customers on a new concept, before the product is built.
- Stir up creativity in a team to make critical decisions, faster.
Design Thinking Workshop for Software Developers
14 HoursIn this instructor-led, live workshop training in Belgium (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 Belgium (online or onsite) is aimed at beginner-level to intermediate-level 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 Belgium (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:
There are Five stages in the Design Thinking (DT) process (empathize, define the problem, ideate, prototype, test).
In an increasingly complex world, we deal with problems that may need special approaches. Design Thinking helps deal with complex problems. Mastering design-thinking helps to deal with complex problems effectively, communicate better, persuade efficiently, improve business results and enhances organizational and personal behavior and performance.
- How DT works: learn from people and problem, find patterns, design model (model drift), test the model, evaluate the model and re-engineer.
- Relationship between DT, innovation and entrepreneurship.
- DT methods and tools: persona, stakeholder map, customer journey map, service blueprint, business model innovation.
- Application of DT: design mindset, disruptive innovation, iterative approach, agile estimation technique, critical thinking, problem solving, teamwork, leadership readiness, communication skills, technology savvy, forward thinking, intercultural and ethical competency, emotional intelligence, self-awareness, negotiating skills, conflict resolution.
Objectives:
- To understand the fundamentals and nuances of DT
- To explore key concepts, factors, theories, types, and models in DT
- To experiment, experience and practice DT
Delivery:
This is a 1 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 others (15% - videos, reading).
Note: due to the nature of this course there is a minimum group size of 3
Design Patterns in C#
14 HoursTarget group:
Technical Team Leader, Software Developer
Learning objective:
The purpose of training is to acquire the ability to design advanced development / project structures in C #.
During the course, students become familiar with the MSDN resources and tools to support the development process, such as Microsoft Visual Studio, ReSharper.
Design Patterns (GoF) for Java
21 HoursThis instructor-led, live training in Belgium (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 Belgium (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 HoursThe training is designed for JavaScript developers, designing and implementing advanced Internet applications. Topics discussed during the training aimed at bringing best practices in JavaScript programming and highlight the most common mistakes. An important point of the training is to discuss the available object-oriented programming with JavaScript syntax.
Kubernetes Design Patterns
21 HoursThe evolution of microservices and containers in recent years has significantly changed how we design, develop, deploy and run software. Modern applications must be optimized for scalability, elasticity, failure, and change. Driven by these new demands, modern architectures require a different set of patterns and practices. In this training, we examine ways to identify, understand and adjust to these new requirements.
Audience
This training is intended for people who are somewhat familiar with container technology and with Kubernetes concepts but are perhaps lacking the real world experience. It is based on use cases, and lessons learnt from real life projects with the intention of making people inspired to create and manage even better cloud native applications.
- Developers
- Operations
- DevOps
- QA Engineers
- IT Project Managers
Format of the Course
- Interactive lecture and discussion
- Lots of exercises and practice
- Handson implementation in a live-lab environment
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Kubernetes Design Patterns and Extensions
14 HoursKubernetes is an open-source platform for automating all development stages of containerized applications. Design patterns are iterable solutions to software development problems pertinent to software design. Kubernetes extensions are utilized for configuring and supporting Kubernetes clusters. With the help of Kubernetes design patterns and extensions, users of the platform can achieve CI/CD approaches while maintaining scalability and flexibility of software applications.
This instructor-led, live training (online or onsite) is aimed at developers and DevOps engineers who wish to leverage Kubernetes design patterns and extensions to create enterprise applications on Kubernetes clusters.
By the end of this training, participants will be able to:
- Set up a Kubernetes cluster and configure the necessary DevOps tools.
- Understand the fundamentals of software design patterns and Kubernetes extensions.
- Utilize Kubernetes extensions and design patterns when interacting with Kubernetes API.
- Develop customized Kubernetes resources and apply dynamic controllers to a cluster.
- Manage and secure any Kubernetes environment with the help of Kubernetes plugins.
- Integrate DevOps networking models to existing and prospective Kubernetes projects.
Format of the Course
- Interactive lecture and discussion.
- Lots of 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.