Qwasar Blog

Why We Do Engineering Labs at Qwasar

Written by Caitlin Carlton | Aug 23, 2024 4:12:04 PM

At Qwasar, we integrate practical, hands-on experiences into our curriculum. One of the standout components of our Master’s degree is the Engineering Labs. Our Engineering Labs are designed to simulate professional engineering environments and projects, encouraging students to work in teams, use today’s technologies, and develop solutions to complex problems. This unique blend of theory, today’s tools, practice, and project freedom not only enhances technical skills but also fosters essential soft skills like teamwork, communication, and problem-solving. Whether it's building a sophisticated application or experimenting with cutting-edge technologies, our students gain invaluable experience that prepares them for the dynamic tech industry.

What are Engineering Labs?

Engineering Labs are group-based projects designed to mirror real-world engineering tasks and challenges. These labs provide an opportunity for students to apply their theoretical knowledge in various practical scenarios, pushing them to think critically and solve problems creatively. By working on these projects, students can explore and learn technologies that are highly relevant and commonly used in today’s development landscape.

Currently, Engineering Labs are offered exclusively to our Master’s students, ensuring a focused and advanced level of engagement. Each project can last anywhere from 1 to 3 months, allowing flexibility to accommodate the complexity of the task and the varied schedules of our full-time and part-time students. This structure not only helps students deepen their technical skills but also enhances their ability to work collaboratively, manage time effectively, and adapt to new and evolving technologies.

 

How Do Engineering Labs Work?

Assignment Structure

The labs start with a well-defined assignment structure. Each lab begins with providing prerequisites and references to ensure that all students have the necessary foundational knowledge. We outline the technologies that are allowed for use, setting a clear framework while still encouraging innovation. Students are divided into groups, promoting collaboration and peer learning from the outset.

Workflow

Engineer Labs are designed to mirror professional engineering environments. Students can utilize Library time or schedule additional meetings with their team members to work on their projects. This flexibility helps them balance lab work with other commitments. As the project progresses, teams collaborate, brainstorm, and develop their solutions. At the end of the project, each group presents their work, demonstrating their solutions and the process they followed.

Evaluation Criteria

Evaluation of the learners is comprehensive and multifaceted. We assess the thought process behind the solutions, ensuring students approached problems critically and creatively. The quality of the code is closely examined, reflecting the technical skills and best practices. Teamwork is also a crucial component, as we evaluate how effectively students collaborated and communicated. Finally, we hold group discussions where students can share their experiences and insights, promoting a deeper understanding of the concepts and fostering a culture of continuous learning.


Examples of Engineering Labs

Lab Example 1: Marry Me

Description of the Project: The "Marry Me" Lab is an engaging project where students are tasked with designing and developing a comprehensive web application for wedding planning. This project requires students to create a user-friendly interface that allows couples to plan and manage various aspects of their wedding, such as guest lists, seating arrangements, vendor coordination, and budgeting. The goal is to deliver a seamless and enjoyable user experience for individuals planning their big day.

Technologies Used:

  • Front-End: HTML, CSS, JavaScript, React
  • Back-End: Node.js, Express.js
  • Database: MongoDB
  • APIs: Integration with third-party APIs for services like invitations and venue booking
  • Tools: Git for version control, Docker for containerization, Heroku for deployment

Key Learning Outcomes:

  • Full-Stack Development: Students gain hands-on experience in both front-end and back-end development, understanding how to build a complete web application from scratch.
  • API Integration: Learning how to integrate and manage third-party APIs, which is crucial for adding additional functionalities to the application.
  • Project Management: Enhanced project management skills through team collaboration, task distribution, and maintaining timelines.
  • User Experience (UX) Design: Emphasis on creating a user-friendly and intuitive interface, improving skills in UX design.
  • Problem-Solving: Development of critical thinking and problem-solving abilities as students address real-world challenges encountered during the project.
  • Technical Documentation: Importance of maintaining comprehensive documentation for the project's code, design decisions, and user guidelines.

Lab Example 2: Corewar

Description of the Project: The Corewar Lab is an intricate and challenging project where students develop programs that run in a virtual machine (VM). Each program's objective is to execute a special "live" instruction, ensuring its survival while competing with other programs in the same memory space. The project is divided into three distinct parts: creating the Virtual Machine, developing an Assembler, and writing Programs. This lab is coded entirely in C, providing students with deep insights into low-level programming and virtual machine architecture.

Technologies Used:

  • Programming Language: C
  • Tools: GCC (GNU Compiler Collection), Makefile
  • Development Environment: Unix-based systems
  • Libraries and APIs: Standard C libraries for file handling, memory management, and system operations

Key Learning Outcomes:

  • Understanding of Virtual Machines: Students gain practical experience in developing a sandbox environment where multiple programs can run simultaneously, learning about memory management and process execution.
  • Assembler Development: This component teaches students the core principles of assembling and compiling code, converting assembly language into machine-readable code.
  • Low-Level Programming: The project emphasizes the importance of low-level programming in C, enhancing students' understanding of computer architecture and system operations.
  • Debugging and Testing: Students develop critical debugging and testing skills, as they need to ensure that their virtual machine correctly executes and manages the lifecycle of each program.
  • Team Collaboration: Through group work, students improve their collaboration and communication skills, essential for tackling complex, multi-part projects.
  • Algorithmic Thinking: The lab requires students to think algorithmically to solve problems related to instruction execution, memory management, and inter-process communication.

These project examples highlight the diverse and advanced nature of the Engineering Labs at Qwasar, where students not only learn theoretical concepts but also apply them in practical, real-world scenarios, preparing them for successful careers in the tech industry.

Why Students Love Engineering Labs

We wanted to know what our students thought, so we sent them a survey! The student reviews reveal diverse experiences and insights from their group projects, highlighting successes and challenges.

Goal Setting and Timelines
Some groups successfully outlined their objectives, while others struggled due to ambiguous deadlines and unforeseen circumstances. Better-defined roles and hard deadlines were common needs.

Adaptability to Changes
Most groups adapted well to changes, whether pivoting to new technologies or redistributing workloads. However, a lack of proactive communication sometimes led to last-minute rushes and incomplete features.

Organizational Strategies
Students used GitHub, Jira, and Discord for task management and communication. While these tools were helpful, inconsistent use and complexity were issues for some. Effective communication, both synchronous and asynchronous, was crucial, though more regular coding sessions could have improved progress.

Contributions and Availability
Students had mixed feelings about contributions and availability. Many acknowledged their peers' efforts, while others felt the workload was uneven. Some recognized their own limitations in availability and contribution, expressing a desire to be more proactive in future projects.

Conflict Resolution and Group Dynamics
Conflicts were generally resolved through communication and collaborative problem-solving. Some groups had excellent chemistry, while others faced motivational challenges. Clear communication and mutual respect were essential.

Areas for Improvement 

Students identified several areas for improvement:

  • Clearer goals and timelines.
  • Better communication and collaboration.
  • More time for planning and learning.
  • Honesty about expectations and contributions.
  • Regular meetings for deeper work and team bonding.

Overall, the importance of clear goal setting, effective communication, and adaptability in overcoming challenges emerged as common themes in ensuring successful project completion.

How Engineering Labs Benefit Students

Engineering Labs have a profound impact on students, offering significant benefits that extend beyond traditional classroom learning. These labs provide immersive, hands-on experiences that bridge the gap between theoretical knowledge and practical application.

Real-World Problem Solving: Engineering Labs immerse students in real-world problems, in the same format as on-the-job projects, enhancing their problem-solving skills and preparing them for professional engineering challenges.

Teamwork: Students have to work in teams - as they would on the job.

Technical Proficiency in Modern Tools and Languages: The types of projects given are specifically designed to expose students to modern tools and languages - ones that are in high demand in the job marketplace. Most university projects don’t fall into this category.

Adaptability: Being that students have the freedom to choose how they do their lab projects, they will also be faced with moments when their path of choice isn’t working and they will have to adapt. These are highly valuable learning moments - as they help build an engineer’s ability to anticipate and avoid problems in the future thanks to previous build experience.

Confidence: Students build confidence that when they are given projects on the job, that they can navigate the process and deliver what’s been asked. This is particularly important for roles where there aren’t strong mentors available but they’re still expected to be resourceful and perform.

Our Engineering Labs are a favorite feature of many students in our program, and have provided great material for technical portfolios as well.