Teamwork Policy for Compiler Design Course Project
Objective
To ensure effective collaboration, communication, and accountability among team members working on the Compiler Design Course Project focused on the generation of Three-Address Code for Mini-Java Language.
Team Composition
- Each team must consist of at most three members.
- Teams should be formed based on mutual agreement among members/students.
- Each member is expected to contribute equally to the project.
Example of Roles and Responsibilities Assignments
Team Leader
- Coordinates meetings and manages project timelines.
- Serves as the primary point of contact with the instructor.
- Ensures that tasks are assigned and deadlines are met.
Developer 1
- Focuses on building the parser and lexer using ANTLR.
- Responsible for writing the ANTLR grammar file and generating the parser.
Developer 2
- Works on semantic analysis and symbol table management.
- Implements type checking and scope resolution functionalities.
Developer 3 (if applicable)
- Focuses on Three-Address Code generation and output formatting.
- Assists in testing and validation of the generated code.
Note: Roles can be adjusted based on team preferences and strengths but must be discussed in the project final report.
Communication
Regular Meetings
- Teams are required to meet at least once a week to discuss progress, challenges, and next steps.
- Meetings can be held in-person or virtually, depending on team preferences.
Communication Channels
- Establish a preferred communication platform (e.g., Slack, Discord, email) for ongoing discussions and updates.
- Document important decisions and discussions in a shared document accessible to all members.
Task Management
Task Breakdown
- Divide the project into manageable tasks and assign them to team members based on their roles.
- Use project management tools (e.g., Trello, Asana, GitHub Projects) to track progress.
Accountability
- Each member is responsible for completing their assigned tasks on time.
- Team members should support each other in overcoming challenges and ensuring project milestones are met.
Conflict Resolution
Open Communication
- Encourage open discussion of any conflicts or disagreements among team members.
Mediation
- If conflicts cannot be resolved internally, seek assistance from the instructor or course facilitator for mediation.
Submission and Documentation
Collaborative Work
- All code and documentation should reflect the collaborative effort of the team.
Version Control
- Use version control systems (e.g., Git) to manage code changes and maintain a history of contributions by each member.
Evaluation Criteria
- Team performance will be evaluated based on:
- Quality of contributions from each member.
- Collaboration and communication effectiveness.
- Adherence to deadlines and project milestones.
Conclusion
This teamwork policy aims to foster a positive and productive working environment for all team members. By following these guidelines, teams can effectively collaborate on the Compiler Design Course Project, ensuring a successful outcome while enhancing individual learning experiences.