This site is from a past semester! The current version will be here when the new semester starts.
TIC4002 2021 Jan-May
  • Full Timeline
  • Week 1 [Mon, Jan 11th]
  • Week 2 [Fri, Jan 15th]
  • Week 3 [Fri, Jan 22nd]
  • Week 4 [Fri, Jan 29th]
  • Week 5 [Fri, Feb 5th]
  • Week 6 [Fri, Feb 12th]
  • Week 7 [Fri, Feb 19th]
  • Week 8 [Fri, Mar 5th]
  • Week 9 [Fri, Mar 12th]
  • Week 10 [Fri, Mar 19th]
  • Week 11 [Fri, Mar 26th]
  • Week 12 [Fri, Apr 2nd]
  • Week 13 [Fri, Apr 9th]
  • Textbook
  • Admin Info
  • Dashboards
  •  Individual Project (iP):
  • Individual Project Info
  • iP Upstream Repo
  • iP Showcase
  • iP Code Dashboard
  • iP Progress Dashboard

  •  Team Project (tP):
  • Team Project Info
  • tP Upstream Repo (AB3)
  • Team List
  • tP Code Dashboard
  • tP Progress Dashboard
  • Report Bugs
  • Forum
  • Instructors
  • Announcements
  • Files (handouts, submissions etc.)
  • MS Teams link
  • Java Coding Standard
  • Git Conventions
  • Participation Dashboard
  • Week 3 [Fri, Jan 22nd] - Admin Info

    1. Submit post-lecture quiz counted for participation

    1 Submit post-lecture quiz counted for participation

    • Post-lecture quiz: Read weekly topics allocated for this week and submit the post-lecture quiz before the following lecture.

    + Other info relevant to this week:

    Admin Peer Evaluations

    This module leverages peer feedback/evaluations in many ways. In particular, we do several rounds of peer evaluations using TEAMMATES.

    Tool: TEAMMATES (for Peer Evaluations)

    We use the TEAMMATES online peer evaluation system. TEAMMATES is a project run by NUS SoC students and used by over 0.5 million users from over 1000 universities.

    Preparation: When the first feedback session is open on TEAMMATES, you will receive an eamil from TEAMMATES. There is nothing for you to do until then.

    When you do receive that email, it will contain a unique link that you can use to access TEAMMATES without logging in first. Logging in to TEAMMATES using a Google account is optional (but doing so will allow you to see all your TEAMMATES sessions in one page).

    Submitting peer evaluations is compulsory. If you routinely miss submitting peer evaluations, you can lose participation marks.

    Session: Practice Peer Evaluation

    • Objective: to give you a chance to familiarize with the TEAMMATES tool
    • Held early in the semester
    • Submission is compulsory. However, your responses will not considered for grading as this session is for practice only.

    Session: Midterm Peer Evaluation

    • Held about two weeks into the tP coding phase
    Important questions included in the evaluation:

    Some of these questions (e.g., contribution to DG) are omitted from the midterm peer evaluation but are in the final peer evaluation (they are given here for your reference)

    Q The team members' contribution to the User Guide is,

    Q The team members' contribution to the Developer Guide is,

    Q The team members' contribution to the team-based tasks is,

    Q The team members' contribution to the product implementation (excluding UG, DG, and team-based tasks) is,

    Q The team members' conduct in the project and during tutorials,

    • Evaluated based on the following criteria, on a scale Poor/Below Average/Average/Good/Excellent:

    Peer Evaluation Criteria: Professional Conduct

    • Professional Communication :
      • Communicates sufficiently and professionally. e.g. Does not use offensive language or excessive slang in project communications.
      • Responds to communication from team members in a timely manner (e.g. within 24 hours).
    • Punctuality: Does not cause others to waste time or slow down project progress by frequent tardiness.
    • Dependability: Promises what can be done, and delivers what was promised.
    • Effort: Puts in sufficient effort to, and tries their best to keep up with the module/project pace. Seeks help from others when necessary.
    • Quality: Does not deliver work products that seem to be below the student's competence level i.e. tries their best to make the work product as high quality as possible within her competency level.
    • Meticulousness:
      • Rarely overlooks submission requirements.
      • Rarely misses compulsory module activities such as pre-module survey.
    • Teamwork: How willing are you to act as part of a team, contribute to team-level tasks, adhere to team decisions, etc. Honors all collectively agreed-upon commitments e.g., weekly project meetings.

    Q The competency of the team member demonstrated in the project and during the tutorials,

    • Considered only for bonus marks, A+ grades, and tutor recruitment
    • Evaluated based on the following criteria, on a scale Poor/Below Average/Average/Good/Excellent:

    Peer Evaluation Criteria: Competency

    • Technical Competency: Able to gain competency in all the required tools and techniques.
    • Mentoring skills: Helps others when possible. Able to mentor others well.
    • Communication skills: Able to communicate (written and spoken) well. Takes initiative in discussions.

    Q [Optional] Any ANONYMOUS feedback you want to give the classmates you reviewed above?

    Q [Optional] Any CONFIDENTIAL comments about any team members?

    Session: Final Peer Evaluation

    • Held at the end of the tP.
    • This peer evaluation is compulsory. Not only it will count for weekly participation, those who don't submit will not get a chance to rebut peer evaluations received.
    • This session includes all questions from the Midterm Peer Evaluation:

    Q The team members' contribution to the User Guide is,

    Q The team members' contribution to the Developer Guide is,

    Q The team members' contribution to the team-based tasks is,

    Q The team members' contribution to the product implementation (excluding UG, DG, and team-based tasks) is,

    Q The team members' conduct in the project and during tutorials,

    • Evaluated based on the following criteria, on a scale Poor/Below Average/Average/Good/Excellent:

    Peer Evaluation Criteria: Professional Conduct

    • Professional Communication :
      • Communicates sufficiently and professionally. e.g. Does not use offensive language or excessive slang in project communications.
      • Responds to communication from team members in a timely manner (e.g. within 24 hours).
    • Punctuality: Does not cause others to waste time or slow down project progress by frequent tardiness.
    • Dependability: Promises what can be done, and delivers what was promised.
    • Effort: Puts in sufficient effort to, and tries their best to keep up with the module/project pace. Seeks help from others when necessary.
    • Quality: Does not deliver work products that seem to be below the student's competence level i.e. tries their best to make the work product as high quality as possible within her competency level.
    • Meticulousness:
      • Rarely overlooks submission requirements.
      • Rarely misses compulsory module activities such as pre-module survey.
    • Teamwork: How willing are you to act as part of a team, contribute to team-level tasks, adhere to team decisions, etc. Honors all collectively agreed-upon commitments e.g., weekly project meetings.

    Q The competency of the team member demonstrated in the project and during the tutorials,

    • Considered only for bonus marks, A+ grades, and tutor recruitment
    • Evaluated based on the following criteria, on a scale Poor/Below Average/Average/Good/Excellent:

    Peer Evaluation Criteria: Competency

    • Technical Competency: Able to gain competency in all the required tools and techniques.
    • Mentoring skills: Helps others when possible. Able to mentor others well.
    • Communication skills: Able to communicate (written and spoken) well. Takes initiative in discussions.

    Q [Optional] Any ANONYMOUS feedback you want to give the classmates you reviewed above?

    Q [Optional] Any CONFIDENTIAL comments about any team members?

    • In addition, it contains these additional questions:

    Q Do you agree with the contributions claimed by team members, as stated in their PPP?

    Session: Responses to Peer Evaluations

    • This is a chance for you to submit your objections to the ratings you received in the Final Peer Evaluation.

    How peer evaluations are used

    • Peer evaluations are rarely used directly to calculate marks. They are fare mostly used to flag cases that need further investigation.
    • Before using peer evaluations in grading, we consider factors such as the following:
      • Is there a consensus among team members? We do not want an extreme input from one team member to unduly affect the outcome. In many cases, we discard the highest and lowest ratings received before calculating the average.
      • Do the other data points (e.g., LoC written, tutor feedback, commit history) corroborates the peer evaluations?

    Guidelines for giving peer feedback

    Giving constructive feedback to others is a valuable skill for software engineers. It is also an intended learning outcome of this module. Half-hearted/trivial feedback will not earn participation marks.

    Here are some things to keep in mind:

    • Assume you are giving feedback to a colleague, not a friend. Keep the tone of your feedback reasonably professional. Do not use offensive language or slang.
    • The feedback should be honest and consistent. Giving positive qualitative feedback (e.g. Thanks for all the hard work! and negative ratings (e.g. Equal share - 40%) to the same team member is not being honest.
    • State your expectations early. All too often students give positive/neutral feedback early (hoping that the team member will improve later) and trash the team member in the final evaluation (because the he/she did not improve as expected). However, this could be confusing to the recipient. It is better to give negative feedback early so that the team member gets a clear signal that he/she needs to improve.

    Guidelines for interpreting contribution ratings

    When you receive results of a peer evaluation question about contribution, use it mainly to compare the team view to your own view.

    • Example 1:
      Your view (of your own contribution) : E+10% i.e., 10% more than an equal share
      Team view (of your own contribution): E+8%
      Conclusion: The team's view is quite similar to yours.
    • Example 2:
      Your view (of your own contribution) : E+15% i.e., 10% more than an equal share
      Team view (of your own contribution): E+3%
      Conclusion: The team's thinks you did significantly less than you claimed you did.

    Admin Standards/Conventions

    Given below are the standards and conventions to follow in this module.

    Java
    Git
    • REQUIRED Follow the Git commit message subject conventions in the SE-EDU Git conventions.
    • OPTIONAL Follow conventions for the commit message body.
    Markdown
    Documentation

    Admin tP: Supervision

    One of the lecturers will be assigned as your team's tutor (aka project supervisor).

    It is not appropriate for instructors to contribute to graded components of your project work. For example, if you are faced with a design decision in your project, a tutor will not make that decision for you.
    Reason: to ensure fairness across teams, and to ensure the work you submit for grading is entirely your own

    Following from the above, don't expect instructors to answer questions that are specific to graded deliverables (e.g., ask which design alternative is better -- that's a decision you need to make yourself). However, you can still raise such questions in the module forum where the professor can answer the question in a general way that's not unfair to other teams (and other teams can benefit from the answer as well).

    How to make project decisions (given instructors are not going to make them for you)? Here are some tips:

    • Quickly try out the alternatives. Rather than get into a analysis-paralysis state, quickly prototype the alternatives to figure out which works better.
    • Go with the team consensus/majority. As most project components are graded by peers, the majority view within the team is a good approximation of how the result will be judged.
    • Go with the simpler alternative that's good enough for the current iteration. That way, if the decision was the wrong one, you'll find out sooner and the cost will be less. A common rookie pitfall is the temptation to look for an ideal future-proof solution -- usually, there is no such thing. Most alternatives can get the job done, it's just that costs and benefits vary.
    • Look at what other teams are doing. That will help you detect if you are going in the wrong direction entirely, and also might lead you to more alternatives to consider.
    • Keep an eye on the results: e.g., Did the design alternative you chose make the code more complex, harder to test, easier to break, harder to modify etc. This will help you decide if you made the right choice.
    • If you realized you picked the wrong alternative, change if you can. Often, the choice you picked may still be good enough to survive the project. In that case, leave it be, but make a mental note about it (you can even document it in the Developer Guide) for future reference -- that's how you build up experience.

    Admin Apdx B (Policies) → Policy on grading smaller/larger teams : OPTIONAL

    Policy on grading smaller/larger teams : OPTIONAL

    As most of the work is graded individually, team sizes of 4 or 6 are not expected to affect your grade. While managing larger teams is harder, larger teams have more collective know-how, which can cancel each other. We'll give some consideration when grading 3-person teams.