The University of Arizona
banner image

CSC 453: Compilers & Systems Software

Working with a Group for the Programming Assignments

Motivation for Groupwork

Group work skills are desired in industry and academics, but students often dread working in groups [Student culture vs group work in computer science, Student satisfaction with groupwork in undergraduate computer science : do things get better?]. In compilers working with a group helps in that the group can become a study group to help understand concepts, groups often write better code that is easier to understand and read, working with a group exercises skills such as effectively breaking up a larger problem and sharing a repository, and practically a group can help with the amount of work involved in writing a compiler In this class, the programming assignments that build the compiler will take most of your time to complete, and it really helps to share some of this work with others. Often in compilers, initially learning the concepts such as how to add a new token to the lexer takes a bit of time. However once you know how to do it, the repetition of doing it for every token is best shared with a group.

Groupwork Logistics

You may choose to be in a group of any size between 1 and 5 people. No matter what size group you are in (yes even those who decide to work by themselves), at least one week before PAx is due you will need to fill out the group declaration form (coming soon) AS A GROUP.

Groups cannot change once the group declaration form for a particular programming assignment has been filled out. However, you can change groups for each PAx.

Each group will only submit one assignment and the README will need to repeat who is in the group. The grade for the assignment becomes the PAx grade for each member of the group. Each PAx is only 3% of the total course grade. If things go poorly in your group, your overall grade will not be impacted much and you can figure out a new group for the next assignment.

The programming assignments are primarily intended to be learning experiences. Each student will still have to understand all of the concepts, and how their group compiler works. Eight-five percent (85%) of the course grade is due to individual assignments and exams.

Suggestions for Breaking Up the MeggyJava Compiler Project

Here are some ideas for breaking up the programming assignments: