diff --git a/README.html b/README.html index f0ac142..8b50cfd 100644 --- a/README.html +++ b/README.html @@ -3,10 +3,8 @@ - - - - + + @@ -14,8 +12,7 @@ - - + @@ -23,9 +20,9 @@ const baseUrl = '/website' -

AY1718S2

For course CS3281&2 in AY1718 Semester 2

- - + @@ -23,9 +20,9 @@ const baseUrl = '/website' -

CATcher

CS3281 Students

Li Zhaoqi
@Eclipse-Dominator
Sun Xinyu
@Echomo-Xinyu
Vignesh Sankar Iyer
@vigneshsankariyer1234567890
Wong Chee Hong
@cheehongw

CS3282 Mentors

Kang Su Min
@kkangs0226
Lee Chun Wei
@chunweii

Other Current/Past Devs

  • Anubhav @anubh-v (alumni)
  • Ding Yuchen @dingyuchen (alumni)
  • Goh Yee Chong, Gabriel @gycgabriel
  • Lee Xiong Jie, Isaac @luminousleek

MarkBind

CS3281 Students

Chan Yu Cheng
@yucheng11122017
Elton Goh Jun Hao
@EltonGohJH
Lee Hyung Woon
@lhw-1
Lee Wei, David
@itsyme

CS3282 Mentors

Jovyn Tan Li Shyan
@jovyntls
Koh Rayson
@raysonkoh
Liu Yongliang
@tlylt
Ong Jun Xiong
@ong6

Other Current/Past Devs

  • Aaron Chong Jun Hao @acjh (alumni)
  • Hannah Chia Kai Xin @kaixin-hc
  • Jiang Sheng @Gisonrg (alumni)
  • Jonah Tan Jun Zi @jonahtanjz

RepoSense

CS3281 Students

Chang Si Kai
@sikai00
Charisma Kausar
@ckcherry23
David Gareth Ong
@vvidday
Marcus Tang Xin Kye
@MarcusTXK

CS3282 Mentors

Chan Jun Da
@chan-j-d
Huang Chengyu
@HCY123902
Tay Yi Hsuen
@yhtMinceraft1010X
Zhou Jiahao
@Zhou-Jiahao-1998

Other Current/Past Devs

  • Gokul Rajiv @gok99
  • Hsu Zhong Jun @dcshzj
  • Peh Xian Bin, Eugene @eugenepeh (alumni)
  • Tejas Bhuwania @Tejas2805 (alumni)

TEAMMATES

CS3281 Students

Dominic Lim Kai Jun
@domlimm
Gujar Parth Shailesh
@parth-io
Kevin Foong Wei Tong
@kevin9foong
Neo Wei Qing
@weiquu
Ong Jun Heng, Cedric
@cedricongjh
Qiu Jiasheng, Jason
@jasonqiu212
Sim Sing Yee, Eunice
@EuniceSim142
Wu Qirui
@hhdqirui

CS3282 Mentors

Dao Ngoc Hieu
@daongochieu2810
Fang Junwei, Samuel
@samuelfangjw
Wu Qirui
@hhdqirui
Zhao Jingjing
@zhaojj2209

Other Current/Past Devs

  • Chang Weng Yew, Nicolas @NicolasCwy
  • Jay Aljelo Saez Ting @jayasting98
  • Li Jianhan @jianhandev
  • Liew Xin Yi @xyliew25
  • Mok Kheng Sheng Fergus @FergusMok
  • Muhammad Ahmed Bin Anwar Bahajjaj @madanalogy (alumni)
  • Wison Kurniawan @wkurniawan07 (alumni)
  • Yen Pin Hsuan @ypinhsuan (alumni)
  • Yu Shufan @fans2619
  • Zhang Ziqing @ziqing26

- - + @@ -23,9 +20,9 @@ const baseUrl = '/website' -

CATcher

CS3281 Students

Goh Yee Chong, Gabriel
@gycgabriel
Lee Chun Wei
@chunweii
Lee Xiong Jie, Isaac
@luminousleek

CS3282 Mentors

Low Jun Kai, Sean
@seanlowjk
Ding Yuchen
@dingyuchen

Others current/past dev team members

  • Anubhav @anubh-v (alumni)
  • Kang Su Min @kkangs0226

MarkBind

CS3281 Students

Hannah Chia Kai Xin
@kaixin-hc
Jovyn Tan Li Shyan
@jovyntls
Liu Yongliang
@tlylt
Ong Jun Xiong
@ong6

CS3282 Mentors

Ryo Chandra Putra Armanda
@ryoarmanda
Jonah Tan Jun Zi
@jonahtanjz

Others current/past dev team members

  • Aaron Chong Jun Hao @acjh (alumni)
  • Ang Ze Yu @ang-zeyu
  • Jiang Sheng @Gisonrg (alumni)
  • Ong Wei Xiang @wxwxwxwx9

RepoSense

CS3281 Students

Chan Jun Da
@chan-j-d
Gokul Rajiv
@gok99
Tay Yi Hsuen
@yhtMinceraft1010X
Zhou Jiahao
@Zhou-Jiahao-1998

CS3282 Mentors

Hsu Zhong Jun
@dcshzj
Chan Ger Hean
@gerhean

Others current/past dev team members

  • Huang Chengyu @HCY123902
  • Peh Xian Bin, Eugene @eugenepeh (alumni)
  • Wang Chao @fzdy1914 (alumni)

TEAMMATES

CS3281 Students

Chang Weng Yew, Nicolas
@Nicolascwy
Fang Junwei, Samuel
@samuelfangjw
Jay Aljelo Saez Ting
@jayasting98
Liu Zhuohao
@fsgmhoward
Mok Kheng Sheng Fergus
@FergusMok
Zhao Jingjing
@zhaojj2209
Zhang Ziqing
@ziqing26

CS3282 Mentors

Tan Chee Peng
@t-cheepeng
Mo Zongran
@moziliar
Lim Zi Wei
@halfwhole
Li Jianhan
@jianhandev

Others current/past dev team members

  • Adithya Narayan Rangarajan Sreenivasan @AdithyaNarayan
  • Dao Ngoc Hieu @daongochieu2810
  • Jeremy Choo Wun Ka @ChooJeremy (alumni)
  • Muhammad Ahmed Bin Anwar Bahajjaj @madanalogy
  • Rahul Rajesh @rrtheonlyone (alumni)
  • Wison Kurniawan @wkurniawan07 (alumni)
  • Wu Qirui @hhdqirui
  • Xiao Pu @xpdavid (alumni)
  • Yen Pin Hsuan @ypinhsuan

- - + @@ -23,25 +20,25 @@ const baseUrl = '/website' -

CS3281&2 - AY2023/24, Semester II

CS3281 and CS3282 (Officially known as Thematic Systems Project I & II for legacy reasons, a more apt name would be Software Engineering in Live Projects) aim to build up your ability to work with software systems currently in-use, to build up your SE capabilities towards levels expected from engineers working at high-end software companies. Special emphasis will be placed on maintainability, efficiency, scalability, and reliability. You will work under the guidance of mentors some of whom are currently working in the industry. Both courses involve working in OSS projects that are currently being used by others.

These two courses are offered in Semester 2 only.

The two courses cannot be taken concurrently. Instead, you'll have to take CS3281 first and come back for CS3282 in a subsequent semester.

  • Reason: Our experience shows that one semester is not enough for students to reach a level where they can do project mentoring and take part in project management (which are important learning outcomes of this courses pair).
  • If you get selected for CS3281, your place in CS3282 is guaranteed in subsequent years.
  • Qualifying project work done in between the two courses can be counted for CS3282. For example, suppose you worked on a certain NUS-OSS project for CS3281 in the semester 2 of this AY. You can continue to contribute to the same project (e.g., do more PRs, review other PRs) over the next 9 months and count that work for CS3282 in the semester 2 of the following AY.
    +In fact, continuing work in between the two courses is encouraged and typical, as it helps you to build up your project expertise to match the level expected in CS3282.
  • Typically, you are expected to take CS3281 in your 2nd or 3rd year and CS3282 in your 3rd or 4th year. It is also possible to take CS3281 in the 2nd year and CS3282 in the 4th year (i.e., a gap of 3-semesters in between).

Prerequisites : CS2103/T or CS2113/T (with approval)

Structure

  • CS3281

    • Do a major contribution to a medium size OSS project
      +Students will be working in teams to add a major feature to one of the NUS-OSS Projects (of your choice) that are mentored by Dr Damith. Those who do well can stay with the project after the course and get promoted to higher positions (e.g., senior developer, area lead) of the project.
  • CS3282

    • Manage a project (take part in project administration, mentor junior developers)
      Take part in managing an OSS project, and mentoring other programmers. This requirement is fulfilled by serving as a senior developer in the NUS-OSS project(s) that you joined in CS3281.
    • Do a small contributions to one or more big OSS projects
      Pick an established external OSS project of your choice and contribute to it in relatively small ways (e.g. bug fixing) while interacting with its developers and learning how the project is run. Optionally, you can contribute to another NUS-OSS project.
    • Build up an SE expertise area
      -Pick a few SE-related expertise areas (of your choice) that can enhance your SE career prospects -- a tool/technology e.g. Node.js, Cloud, an aspect e.g. Code quality, a language e.g. Kotlin, Go -- and develop a demonstrable expertise in that area.


-[more photos...]



-[more photos...]



-[more photos...]


Workload

  • Each module will have the 4MC workload, i.e. 10 hours of workload per week in total.
  • Lectures are compulsory to attend. -
    • CS3281 lecture -- MON 1200-1400 in COM1-0204
    • CS3282 lecture -- THU 1400-1600 in COM1-0204
  • In addition, you are required to attend a compulsory full-day Code Sprint (under CS3281) on the first Saturday of the semester (Sat Jan 14th).
  • No tutorials. Ignore the tutorial timings given in Canvas/ModReg.

Assessment

Students will be assessed on each module separately, based on their contributions to the project, and their skills/expertise gained. Both modules are 100% CA with no final exam.

Enrollment

The class enrollment is capped at 20 students due to resource constraints.

There is a soft lower bound for students’ CAP of 3.9; you may still apply for CS3281&2 if they have a CAP -below 3.9, provided you can show evidence of a strong passion for software engineering e.g., side projects done.

To get the full value of these module pair, you are encouraged to stay involved with the projects beyond the semester time to experience leading/managing live projects. Furthermore, this module depends on past students mentoring current students. Such work can count for CS3282 and possibly be paid.
Please do not apply if you are not sincerely interested in staying with the projects beyond the semester to become project mentors.

Student selection is not based on ModReg. Instead, submit your application using this application form (requires NUSNET login, requires you to upload the latest transcript).

⏰ Interested students are to complete the application process by Mon 5th December 2022. Late applications will not be entertained.

The outcome of all applications are expected to be released via email around 21 December 2022.

Selection

  • Entry is competitive. We typically receive about 2-3 applications for each available vacancy. The selection is based on, -
    1. Interest and ability shown in programming, especially, in contributing to OSS projects.
    2. Performance in SE/programming modules.
    3. Compatibility between your interests and the availability of vacancies in the NUS-OSS project you want to join.

A good way to increase your chances of getting selected is to start contributing to an NUS-OSS project before you apply for the module. The more you have contributed, the more you will score in criterion 1 above.

Even contributions around the application period (up to 2 weeks after the application deadline) can count. All the NUS-OSS projects have some guidance on how to get started on contributing -- if you need more help, go ahead and post a help request in the project's issue tracker.

FAQ

  • Q: Can I apply to both CS3217 and CS3281?
    +Pick a few SE-related expertise areas (of your choice) that can enhance your SE career prospects -- a tool/technology e.g. Node.js, Cloud, an aspect e.g. Code quality, a language e.g. Kotlin, Go -- and develop a demonstrable expertise in that area.


+[more photos...]



+[more photos...]



+[more photos...]


Workload

  • Each course will have the 4 Units of workload (similar to other regular courses), i.e. 10 hours of workload per week in total.
  • Lectures are compulsory to attend. +
    • CS3281 lecture -- MON 1200-1400 in COM1-0204
    • CS3282 lecture -- THU 1400-1600 in COM1-0204
  • In addition, you are required to attend a compulsory full-day Code Sprint (under CS3281) on the first Saturday of the semester (Sat Jan 20th).
  • No tutorials. Ignore the tutorial timings given in Canvas/CourseReg.

Assessment

Students will be assessed on their contributions to the project, and their skills/expertise gained. Both courses are 100% CA with no final exam.

Enrollment

The class enrollment is capped at 20 students due to resource constraints.

There is a soft lower bound for students’ of 3.9; you may still apply for CS3281&2 if they have a GPA below 3.9, provided you can show evidence of a strong passion for software engineering e.g., side projects done.

To get the full value of these course pair, you are encouraged to stay involved with the projects beyond the semester time to experience leading/managing live projects. Furthermore, this course depends on past students mentoring current students. Such work can count for CS3282 and possibly be paid.
Please do not apply if you are not sincerely interested in staying with the projects beyond the semester to become project mentors.

Student selection is not based on CourseReg. Instead, submit your application using this application form (requires NUSNET login, requires you to upload the latest transcript).

⏰ Interested students are to complete the application process by Mon 11th December 2023. Late applications will not be entertained.

The outcome of all applications are expected to be released via email around Wed 27 December 2023.

Selection

  • Entry is competitive. We typically receive about 2-3 applications for each available vacancy. The selection is based on, +
    1. Interest and ability shown in programming, especially, in contributing to OSS projects.
    2. Performance in SE/programming courses.
    3. Compatibility between your interests and the availability of vacancies in the NUS-OSS project you want to join.

A good way to increase your chances of getting selected is to start contributing to an NUS-OSS project before you apply for the course. The more you have contributed, the more you will score in criterion 1 above.

Even contributions around the application period (up to 2 weeks after the application deadline) can count. All the NUS-OSS projects have some guidance on how to get started on contributing -- if you need more help, go ahead and post a help request in the project's issue tracker.

FAQ

  • Q: Can I apply to both CS3217 and CS3281?
    A: Yes. If you get places in both, you will be given time to decide which one to take.

  • Q: What's the difference between CS3217 and CS3281&2?
    -A: Here are some similarities/differences:

CS3217 CS3281&2
design and deliver a complete product -- includes an individual project (6 weeks) and a team project (6 weeks) work with existing applications that are currently in use (higher focus downstream value addition such as reliability, scalability, security, maintainability, etc.)
typically involves iOS ecosystem + other modern frameworks/platforms low involvement of iOS ecosystem but involves other modern application frameworks/platforms
small intake (~40-50), via a selection process, hard to get in small intake (~20), via a selection process, hard to get in
done over one semester, although most students also take CS3216 done over two semesters, with a gap in-between (i.e., takes at least 1.5 academic years to complete)
expects you to design and deliver a good product by the end of the semester expects you to manage and evolve an existing product over a longer period, guided by past devs, while guiding new devs (in later stages)
high workload, intended for strong programmers only high workload, intended for strong programmers only
  • Q: Can I take this module while doing ATAP/SIP?
    +A: Here are some similarities/differences:

CS3217 CS3281&2
design and deliver a complete product -- includes an individual project (6 weeks) and a team project (6 weeks) work with existing applications that are currently in use (higher focus downstream value addition such as reliability, scalability, security, maintainability, etc.)
typically involves iOS ecosystem + other modern frameworks/platforms low involvement of iOS ecosystem but involves other modern application frameworks/platforms
small intake (~40-50), via a selection process, hard to get in small intake (~20), via a selection process, hard to get in
done over one semester, although most students also take CS3216 done over two semesters, with a gap in-between (i.e., takes at least 1.5 academic years to complete)
expects you to design and deliver a good product by the end of the semester expects you to manage and evolve an existing product over a longer period, guided by past devs, while guiding new devs (in later stages)
high workload, intended for strong programmers only high workload, intended for strong programmers only
  • Q: Can I take this course while doing ATAP/SIP?
    A: No. Reason: You need to be available during working hours for lectures and project meetings.

  • Q: For CS3281, can I choose a project that is not one of the NUS-OSS projects?
    -A: No. Reason: As 100% of your CS3281 module grade depends on your project work, you need to work in a project that is fully under our control.

  • Q: Can CEG students take this module?
    -A: Yes.

  • Q: If selected for both CS3217 and CS3281&2, can I take both?
    -A: Discouraged (but allowed). Reason: all three modules have high workload.

Have a Question?

Please direct any questions to CS3281&2 module coordinator Dr Damith Rajapakse damith [at] comp.nus.edu.sg

+A: No. Reason: As 100% of your CS3281 course grade depends on your project work, you need to work in a project that is fully under our control.

  • Q: Can CEG students take this course?
    +A: Yes, with approval.

  • Q: If selected for both CS3217 and CS3281, can I take both?
    +A: Discouraged (but allowed). Reason: both courses have high workload.

  • Have a Question?

    Please direct any questions to CS3281&2 course coordinator Dr Damith Rajapakse damith [at] comp.nus.edu.sg

    - - + @@ -23,9 +20,9 @@ const baseUrl = '/website' -

    NUS-OSS Code Sprint 2024

    CATcher

    CS3281 Students

    Li Zhaoqi
    @Eclipse-Dominator
    Sun Xinyu
    @Echomo-Xinyu
    Vignesh Sankar Iyer
    @vigneshsankariyer1234567890
    Wong Chee Hong
    @cheehongw

    CS3282 Mentors

    Kang Su Min
    @kkangs0226
    Lee Chun Wei
    @chunweii

    Other Current/Past Devs

    • Anubhav @anubh-v (alumni)
    • Ding Yuchen @dingyuchen (alumni)
    • Goh Yee Chong, Gabriel @gycgabriel
    • Lee Xiong Jie, Isaac @luminousleek

    MarkBind

    CS3281 Students

    Chan Yu Cheng
    @yucheng11122017
    Elton Goh Jun Hao
    @EltonGohJH
    Lee Hyung Woon
    @lhw-1
    Lee Wei, David
    @itsyme

    CS3282 Mentors

    Jovyn Tan Li Shyan
    @jovyntls
    Koh Rayson
    @raysonkoh
    Liu Yongliang
    @tlylt
    Ong Jun Xiong
    @ong6

    Other Current/Past Devs

    • Aaron Chong Jun Hao @acjh (alumni)
    • Hannah Chia Kai Xin @kaixin-hc
    • Jiang Sheng @Gisonrg (alumni)
    • Jonah Tan Jun Zi @jonahtanjz

    RepoSense

    CS3281 Students

    Chang Si Kai
    @sikai00
    Charisma Kausar
    @ckcherry23
    David Gareth Ong
    @vvidday
    Marcus Tang Xin Kye
    @MarcusTXK

    CS3282 Mentors

    Chan Jun Da
    @chan-j-d
    Huang Chengyu
    @HCY123902
    Tay Yi Hsuen
    @yhtMinceraft1010X
    Zhou Jiahao
    @Zhou-Jiahao-1998

    Other Current/Past Devs

    • Gokul Rajiv @gok99
    • Hsu Zhong Jun @dcshzj
    • Peh Xian Bin, Eugene @eugenepeh (alumni)
    • Tejas Bhuwania @Tejas2805 (alumni)

    TEAMMATES

    CS3281 Students

    Dominic Lim Kai Jun
    @domlimm
    Gujar Parth Shailesh
    @parth-io
    Kevin Foong Wei Tong
    @kevin9foong
    Neo Wei Qing
    @weiquu
    Ong Jun Heng, Cedric
    @cedricongjh
    Qiu Jiasheng, Jason
    @jasonqiu212
    Sim Sing Yee, Eunice
    @EuniceSim142
    Wu Qirui
    @hhdqirui

    CS3282 Mentors

    Dao Ngoc Hieu
    @daongochieu2810
    Fang Junwei, Samuel
    @samuelfangjw
    Wu Qirui
    @hhdqirui
    Zhao Jingjing
    @zhaojj2209

    Other Current/Past Devs

    • Chang Weng Yew, Nicolas @NicolasCwy
    • Jay Aljelo Saez Ting @jayasting98
    • Li Jianhan @jianhandev
    • Liew Xin Yi @xyliew25
    • Mok Kheng Sheng Fergus @FergusMok
    • Muhammad Ahmed Bin Anwar Bahajjaj @madanalogy (alumni)
    • Wison Kurniawan @wkurniawan07 (alumni)
    • Yen Pin Hsuan @ypinhsuan (alumni)
    • Yu Shufan @fans2619
    • Zhang Ziqing @ziqing26

    - - + @@ -24,17 +21,18 @@ const baseUrl = '/website' -

    CS3281 : Thematic Systems Projects I

    CS3281 semester can be divided into three stages: Stage 1: Learning, Stage 2: Contributing, Stage 3: Managing.

    Lectures

    MON 1200-1400 in COM1-0204 (will be online in some weeks)

    Projects

    Following NUS-OSS projects will be used this semester.

    • MarkBind
    • RepoSense
    • CATcher
    • SE-EDU (only as a secondary project)
    • TEAMMATES

    See the Projects/Mentors page for more info on the current focus of each project and the list of mentors.

    Stage 1: Learning

    Duration: Week 1 - 3 (3 weeks)

    Objective: Learn the project’s codebase, workflows, tools, etc. under the guidance of the current developers.

    Things to do

    • Set up the project and complete any orientation tasks specified by the project.
    • Start submitting PRs.

    Recommendations

    • When choosing issues to fix, start with simpler issues and progressively move into more complex issues. +
  • CS3281 : Thematic Systems Projects I

    CS3281 semester can be divided into three stages: Stage 1: Learning, Stage 2: Contributing, Stage 3: Managing.

    Lectures

    MON 1200-1400 in COM1-0204

    Projects

    Following NUS-OSS projects will be used this semester.

    See the Projects/Mentors page for more info on the current focus of each project and the list of mentors.

    Stage 1: Learning

    Duration: Week 1 - 3 (3 weeks)

    Objective: Learn the project’s codebase, workflows, tools, etc. under the guidance of the current developers.

    Things to do

    Recommendations

    Stage 2: Contributing

    You can spend upto 40% of your CS3281 effort on one or more secondary NUS-OSS projects. SE-EDU projects can be selected as a secondary project too.

    Duration: Week 4 - 9 (6 weeks)

    Objective: Contribute to the project based on the project’s priorities and you role in the project.

    Things to do

    Recommendations

    Stage 3: Managing

    Objective: Learn how to play a more senior role in a big project

    Duration: Week 10 - 13 (4 weeks)

    Things to do

    Recommendations

    Stage 4: After the semester is over

    This stage is optional.

    Objective: To keep in touch with the project, accumulate credit for CS3282

    Duration: Until you start CS3282

    Things to do

    Team structure

    Will be based on the project chosen. Could be subdivided into smaller teams within the project based on the specific areas you work in.

    Grading

    As a general principle, try to do good work and become better software engineers as you do module work, and good grades will follow. Given the small class size, it will be easy to detect attempts to 'game the system' or 'optimize for grades over learning' and such behavior will not earn you high grades. In other words, follow the spirit (rather than the letter) of the grading scheme.

    Expertise Areas

    While this is not a graded deliverable (it used to be; we made it non-graded recently to reduce the workload), you are encouraged to choose your CS3281&2 work in a way that gives you an 'expertise' in a few areas.

    Objective: Gain in-depth knowledge of a few specific areas so that you are considered an expert of those areas compared to your peers.

    Just one or two semesters is certainly not enough to become an β€˜expert’ of something. Consider these modules as just the initial steps in the journey of becoming an expert. Our expectations are,

    Things you can do

    1. Consider picking one from each of the three below.

      • An Aspect: Various aspects of an SE project e.g. Testing, CI, Scalability, Requirements, Security, Performance, ...
      • A Language: e.g. Java, C#, Go, Python, Ruby, Kotlin, Elixir, JavaScript, HTML, CSS, ...
      • A Domain: Any other technical topic relevant to SE that you want to claim as your interest/expert area e.g Search Engine Optimization, Regular Expressions
    2. Learn more about them yourself. While you do that, produce evidence of your knowledge. E.g. blog posts, stackoverflow questions/answers

    3. Share interesting and useful bits of your knowledge with the class by giving short talks, to be done in CS3282 later (refer Lightning Talks deliverables explained below)

    Pre-Module Preparations


    +Following those instructions will reduce the chances of encountering problems. When you encounter problems, try to solve yourself before asking for help.
  • Your PRs will be reviewed by the project's dev team. You are expected to learn from the review comments and improve the quality of your work as you go. You will not score high if you keep repeating the same mistake even after being corrected by the reviewer multiple times.
  • Focus on learning how things are done in the project; hold back your suggestions on β€˜how to do things better’ until stage 3 (i.e. until you have a more in-depth idea about the project).
  • Stage 2: Contributing

    You can spend upto 40% of your CS3281 effort on one or more secondary NUS-OSS projects. SE-EDU projects can be selected as a secondary project too.

    Duration: Week 4 - 9 (6 weeks)

    Objective: Contribute to the project based on the project’s priorities and you role in the project.

    Things to do

    Recommendations

    Stage 3: Managing

    Objective: Learn how to play a more senior role in a big project

    Duration: Week 10 - 13 (4 weeks)

    Things to do

    Recommendations

    Stage 4: After the semester is over

    This stage is optional but highly recommended.

    Objective: To keep in touch with the project, accumulate credit for CS3282

    Duration: Until you start CS3282

    Things to do

    Team structure

    Will be based on the project chosen. Could be subdivided into smaller teams within the project based on the specific areas you work in.

    Grading

    As a general principle, try to do good work and become better software engineers as you do course work, and good grades will follow. Given the small class size, it will be easy to detect attempts to 'game the system' or 'optimize for grades over learning' and such behavior will not earn you high grades. In other words, follow the spirit (rather than the letter) of the grading scheme.

    Expertise Areas

    While this is not a graded deliverable (it used to be; we made it non-graded recently to reduce the workload), you are encouraged to choose your CS3281&2 work in a way that gives you an 'expertise' in a few areas.

    Objective: Gain in-depth knowledge of a few specific areas so that you are considered an expert of those areas compared to your peers.

    Just one or two semesters is certainly not enough to become an β€˜expert’ of something. Consider these courses as just the initial steps in the journey of becoming an expert. Our expectations are,

    Things you can do

    1. Consider picking one from each of the three below.

    2. Learn more about them yourself. While you do that, produce evidence of your knowledge. E.g. blog posts, stackoverflow questions/answers

    3. Share interesting and useful bits of your knowledge with the class by giving short talks, to be done in CS3282 later (refer Lightning Talks deliverables explained below)

    Pre-Course Preparations


    - - + @@ -24,13 +21,13 @@ const baseUrl = '/website' -

    CS3282 : Thematic Systems Project II

    Module structure

    The following are the main parts of the module:

    You can choose a combination of the following optional components to make up the remaining 25%:

    Lectures

    THU 1400-1600 in COM1-0204 (or online)

    [PM] Project Management

    Objective : To learn to manage a project.

    Contribute as a senior developer to the NUS-OSS project you joined in CS3281. Typical work includes reviewing and managing PRs, guiding new contributors, process improvements, other administrative tasks. You can also tackle development tasks that are too difficult for newer developers.

    Deliverables:

    Contributions to the project as a senior developer, and possibly, an area-lead-in-training.

    Ideally, at the end of the semester, you should reach a level in which you can at least shoulder some of the project-lead level responsibilities, technical and managerial.

    Grading:

    • Based on quality and quantity of the contributions.

    [LT] Lightning talks

    One important way you can establish credibility as an 'Expert' is by educating others about your expert area and evangelizing it. Lightning Talks is meant to promote that aspect.

    • Each student is required to give two short talks on interesting topics useful to your classmates.
    • There are three rounds of lightning talks: Round A, B, and C. However, Round B is a rehearsal for Round C i.e., only two talks, but the second one is given twice.
    • Each talk will be about 7 minutes + 3 minutes for Q&A. There will be 7-8 talks per week.
    • You may want to rehearse the talk with one or more of your team members and improve based on their feedback before delivering it to the class.
    • After the talk, you are required to post the talk summary (and the slides) as an issue in the nus-cs3282/2023 repo for future reference and further discussion.

    Grading

    • Lightning talks [5+15 = 20%] -- based on peer evaluations and instructor observations
    • Criteria: usefulness of content and quality of delivery

    [PC] Professional Conduct

    This component is measured based on peer evaluations and instructor observations

    • Peer evaluations will measure:
    • How helpful you are to classmates in peer reviewing lightning talk rehearsals, book chapter contributions, etc.
    • Instructor observations will measure:
    • Punctuality and attentiveness for lightning talks
    • Conformance to administrative requirements of the module
    • Adherence to module deadlines
    • The quality of feedback given for lightning talks (i.e. post-talk feedback)
    • Participation in class discussions

    [EP] External Project

    Objective : To learn to work with big OSS projects.

    You can choose any OSS project as your External project, provided it is be a big mature external project with an established community and experienced developers.

    Some sources of potential external projects:

    If you are not making good progress with the chosen project by week 5, you should switch to a different project. +

  • CS3282 : Thematic Systems Project II

    Course structure

    The following are the main parts of the course:

    You can choose a combination of the following optional components to make up the remaining 25%:

    Lectures

    THU 1400-1600 in COM1-0204 (or online)

    [PM] Project Management

    Objective : To learn to manage a project.

    Contribute as a senior developer to the NUS-OSS project you joined in CS3281. Typical work includes reviewing and managing PRs, guiding new contributors, process improvements, other administrative tasks. You can also tackle development tasks that are too difficult for newer developers.

    Deliverables:

    Contributions to the project as a senior developer, and possibly, an area-lead-in-training.

    Ideally, at the end of the semester, you should reach a level in which you can at least shoulder some of the project-lead level responsibilities, technical and managerial.

    Grading:

    [LT] Lightning talks

    One important way you can establish credibility as an 'Expert' is by educating others about your expert area and evangelizing it. Lightning Talks is meant to promote that aspect.

    Grading

    [PC] Professional Conduct

    This component is measured based on peer evaluations and instructor observations

    [EP] External Project

    Objective : To learn to work with big OSS projects.

    You can choose any OSS project as your External project, provided it is be a big mature external project with an established community and experienced developers.

    Some sources of potential external projects:

    If you are not making good progress with the chosen project by week 5, you should switch to a different project. Or you can try multiple projects at the same time. "The project was too slow to respond" is not a valid excuse.

    The work under this part is cumulative i.e. the work can be in more than one qualifying projects. Even work done before the semester can be counted.

    Deliverables:

    Grading:

    [IP2] 2nd Internal Project

    Contribute to another NUS-OSS project.

    Deliverables are similar to CS3281.

    Pre-Module Preparations

    +

    Grading:

    [IP2] 2nd Internal Project

    Contribute to another NUS-OSS project.

    Deliverables are similar to CS3281.

    Pre-Course Preparations

    - - + @@ -24,16 +21,16 @@ const baseUrl = '/website' -

    CS3281 Projects and Mentors

    CATCher

    Current focus:

    • Build up the sister app: WATcher
    • Retire the desktop version.
    • Find a way to make the tester's repo private during the PE (to prevent others copying bugs).
    • Improve testing.
    • Improve dev docs.
    • Set up a proper user guide.
    • [Less important] Add support for the tutor moderation phase.

    Mentors

    • Kang Su Min (@kkangs0226)
    • Lee Chun Wei (@chunweii)
    • Lee Xiong Jie, Isaac (@luminousleek)
    • Anubhav (@anubh-v) (industry)1

    MarkBind

    Current focus:

    • Make the following features best-in-class: +
  • CS3281 Projects and Mentors

    CATCher

    Current focus:

    Mentors

    • Kang Su Min (@kkangs0226)
    • Lee Chun Wei (@chunweii)
    • Lee Xiong Jie, Isaac (@luminousleek)
    • Anubhav (@anubh-v) (industry)1

    MarkBind

    Current focus:

    Mentors

    • Jonah Tan Jun Zi (@jonahtanjz)
    • Jovyn Tan Li Shyan (@jovyntls)
    • Koh Rayson (@raysonkoh)
    • Liu Yongliang (@tlylt)
    • Ong Jun Xiong (@ong6)
    • Aaron Chong Jun Hao (@acjh) (industry)1
    • Ang Ze Yu (@ang-zeyu) (industry)1
    • Jiang Sheng (@Gisonrg) (industry)1

    RepoSense

    Current focus:

    Mentors

    • Jonah Tan Jun Zi (@jonahtanjz)
    • Jovyn Tan Li Shyan (@jovyntls)
    • Koh Rayson (@raysonkoh)
    • Liu Yongliang (@tlylt)
    • Ong Jun Xiong (@ong6)
    • Aaron Chong Jun Hao (@acjh) (industry)1
    • Ang Ze Yu (@ang-zeyu) (industry)1
    • Jiang Sheng (@Gisonrg) (industry)1

    RepoSense

    Current focus:

    Mentors

    • Chan Jun Da (@chan-j-d)
    • Hsu Zhong Jun (@dcshzj)
    • Huang Chengyu (@HCY123902)
    • Tay Yi Hsuen (@yhtMinceraft1010X)
    • Zhou Jiahao (@Zhou-Jiahao-1998)
    • Peh Xian Bin, Eugene (@eugenepeh) (industry)1
    • Tejas Bhuwania (@Tejas2805) (industry)1

    SE-EDU

    Current focus:

    Mentors

    Current SE-EDU team

    TEAMMATES

    Current focus:

    Mentors

    • Dao Ngoc Hieu (@daongochieu2810)
    • Fang Junwei, Samuel (@samuelfangjw)
    • Li Jianhan (@jianhandev)
    • Wu Qirui (@hhdqirui)
    • Zhao Jingjing (@zhaojj2209)
    • Muhammad Ahmed Bin Anwar Bahajjaj (@madanalogy) (industry)1
    • Wison Kurniawan (@wkurniawan07) (industry)1
    • Yen Pin Hsuan (@ypinhsuan) (industry)1

    [1] Those marked as industry are not official mentors. They are past developers who are still willing to provide moral support and help out in an advisory role when their input is required.

    +

    Mentors

    • Chan Jun Da (@chan-j-d)
    • Hsu Zhong Jun (@dcshzj)
    • Huang Chengyu (@HCY123902)
    • Tay Yi Hsuen (@yhtMinceraft1010X)
    • Zhou Jiahao (@Zhou-Jiahao-1998)
    • Peh Xian Bin, Eugene (@eugenepeh) (industry)1
    • Tejas Bhuwania (@Tejas2805) (industry)1

    SE-EDU

    Current focus:

    Mentors

    Current SE-EDU team

    TEAMMATES

    Current focus:

    Mentors

    • Dao Ngoc Hieu (@daongochieu2810)
    • Fang Junwei, Samuel (@samuelfangjw)
    • Li Jianhan (@jianhandev)
    • Wu Qirui (@hhdqirui)
    • Zhao Jingjing (@zhaojj2209)
    • Muhammad Ahmed Bin Anwar Bahajjaj (@madanalogy) (industry)1
    • Wison Kurniawan (@wkurniawan07) (industry)1
    • Yen Pin Hsuan (@ypinhsuan) (industry)1

    [1] Those marked as industry are not official mentors. They are past developers who are still willing to provide moral support and help out in an advisory role when their input is required.

    - - + @@ -23,25 +20,25 @@ const baseUrl = '/website' -

    CS3281&2 - AY2023/24, Semester II

    CS3281 and CS3282 (Officially known as Thematic Systems Project I & II for legacy reasons, a more apt name would be Software Engineering in Live Projects) aim to build up your ability to work with software systems currently in-use, to build up your SE capabilities towards levels expected from engineers working at high-end software companies. Special emphasis will be placed on maintainability, efficiency, scalability, and reliability. You will work under the guidance of mentors some of whom are currently working in the industry. Both courses involve working in OSS projects that are currently being used by others.

    These two courses are offered in Semester 2 only.

    The two courses cannot be taken concurrently. Instead, you'll have to take CS3281 first and come back for CS3282 in a subsequent semester.

    • Reason: Our experience shows that one semester is not enough for students to reach a level where they can do project mentoring and take part in project management (which are important learning outcomes of this courses pair).
    • If you get selected for CS3281, your place in CS3282 is guaranteed in subsequent years.
    • Qualifying project work done in between the two courses can be counted for CS3282. For example, suppose you worked on a certain NUS-OSS project for CS3281 in the semester 2 of this AY. You can continue to contribute to the same project (e.g., do more PRs, review other PRs) over the next 9 months and count that work for CS3282 in the semester 2 of the following AY.
      +In fact, continuing work in between the two courses is encouraged and typical, as it helps you to build up your project expertise to match the level expected in CS3282.
    • Typically, you are expected to take CS3281 in your 2nd or 3rd year and CS3282 in your 3rd or 4th year. It is also possible to take CS3281 in the 2nd year and CS3282 in the 4th year (i.e., a gap of 3-semesters in between).

    Prerequisites : CS2103/T or CS2113/T (with approval)

    Structure

    • CS3281

      • Do a major contribution to a medium size OSS project
        +Students will be working in teams to add a major feature to one of the NUS-OSS Projects (of your choice) that are mentored by Dr Damith. Those who do well can stay with the project after the course and get promoted to higher positions (e.g., senior developer, area lead) of the project.
    • CS3282

      • Manage a project (take part in project administration, mentor junior developers)
        Take part in managing an OSS project, and mentoring other programmers. This requirement is fulfilled by serving as a senior developer in the NUS-OSS project(s) that you joined in CS3281.
      • Do a small contributions to one or more big OSS projects
        Pick an established external OSS project of your choice and contribute to it in relatively small ways (e.g. bug fixing) while interacting with its developers and learning how the project is run. Optionally, you can contribute to another NUS-OSS project.
      • Build up an SE expertise area
        -Pick a few SE-related expertise areas (of your choice) that can enhance your SE career prospects -- a tool/technology e.g. Node.js, Cloud, an aspect e.g. Code quality, a language e.g. Kotlin, Go -- and develop a demonstrable expertise in that area.


    -[more photos...]



    -[more photos...]



    -[more photos...]


    Workload

    • Each module will have the 4MC workload, i.e. 10 hours of workload per week in total.
    • Lectures are compulsory to attend. -
      • CS3281 lecture -- MON 1200-1400 in COM1-0204
      • CS3282 lecture -- THU 1400-1600 in COM1-0204
    • In addition, you are required to attend a compulsory full-day Code Sprint (under CS3281) on the first Saturday of the semester (Sat Jan 14th).
    • No tutorials. Ignore the tutorial timings given in Canvas/ModReg.

    Assessment

    Students will be assessed on each module separately, based on their contributions to the project, and their skills/expertise gained. Both modules are 100% CA with no final exam.

    Enrollment

    The class enrollment is capped at 20 students due to resource constraints.

    There is a soft lower bound for students’ CAP of 3.9; you may still apply for CS3281&2 if they have a CAP -below 3.9, provided you can show evidence of a strong passion for software engineering e.g., side projects done.

    To get the full value of these module pair, you are encouraged to stay involved with the projects beyond the semester time to experience leading/managing live projects. Furthermore, this module depends on past students mentoring current students. Such work can count for CS3282 and possibly be paid.
    Please do not apply if you are not sincerely interested in staying with the projects beyond the semester to become project mentors.

    Student selection is not based on ModReg. Instead, submit your application using this application form (requires NUSNET login, requires you to upload the latest transcript).

    ⏰ Interested students are to complete the application process by Mon 5th December 2022. Late applications will not be entertained.

    The outcome of all applications are expected to be released via email around 21 December 2022.

    Selection

    • Entry is competitive. We typically receive about 2-3 applications for each available vacancy. The selection is based on, -
      1. Interest and ability shown in programming, especially, in contributing to OSS projects.
      2. Performance in SE/programming modules.
      3. Compatibility between your interests and the availability of vacancies in the NUS-OSS project you want to join.

    A good way to increase your chances of getting selected is to start contributing to an NUS-OSS project before you apply for the module. The more you have contributed, the more you will score in criterion 1 above.

    Even contributions around the application period (up to 2 weeks after the application deadline) can count. All the NUS-OSS projects have some guidance on how to get started on contributing -- if you need more help, go ahead and post a help request in the project's issue tracker.

    FAQ

    • Q: Can I apply to both CS3217 and CS3281?
      +Pick a few SE-related expertise areas (of your choice) that can enhance your SE career prospects -- a tool/technology e.g. Node.js, Cloud, an aspect e.g. Code quality, a language e.g. Kotlin, Go -- and develop a demonstrable expertise in that area.


    +[more photos...]



    +[more photos...]



    +[more photos...]


    Workload

    • Each course will have the 4 Units of workload (similar to other regular courses), i.e. 10 hours of workload per week in total.
    • Lectures are compulsory to attend. +
      • CS3281 lecture -- MON 1200-1400 in COM1-0204
      • CS3282 lecture -- THU 1400-1600 in COM1-0204
    • In addition, you are required to attend a compulsory full-day Code Sprint (under CS3281) on the first Saturday of the semester (Sat Jan 20th).
    • No tutorials. Ignore the tutorial timings given in Canvas/CourseReg.

    Assessment

    Students will be assessed on their contributions to the project, and their skills/expertise gained. Both courses are 100% CA with no final exam.

    Enrollment

    The class enrollment is capped at 20 students due to resource constraints.

    There is a soft lower bound for students’ of 3.9; you may still apply for CS3281&2 if they have a GPA below 3.9, provided you can show evidence of a strong passion for software engineering e.g., side projects done.

    To get the full value of these course pair, you are encouraged to stay involved with the projects beyond the semester time to experience leading/managing live projects. Furthermore, this course depends on past students mentoring current students. Such work can count for CS3282 and possibly be paid.
    Please do not apply if you are not sincerely interested in staying with the projects beyond the semester to become project mentors.

    Student selection is not based on CourseReg. Instead, submit your application using this application form (requires NUSNET login, requires you to upload the latest transcript).

    ⏰ Interested students are to complete the application process by Mon 11th December 2023. Late applications will not be entertained.

    The outcome of all applications are expected to be released via email around Wed 27 December 2023.

    Selection

    • Entry is competitive. We typically receive about 2-3 applications for each available vacancy. The selection is based on, +
      1. Interest and ability shown in programming, especially, in contributing to OSS projects.
      2. Performance in SE/programming courses.
      3. Compatibility between your interests and the availability of vacancies in the NUS-OSS project you want to join.

    A good way to increase your chances of getting selected is to start contributing to an NUS-OSS project before you apply for the course. The more you have contributed, the more you will score in criterion 1 above.

    Even contributions around the application period (up to 2 weeks after the application deadline) can count. All the NUS-OSS projects have some guidance on how to get started on contributing -- if you need more help, go ahead and post a help request in the project's issue tracker.

    FAQ

    • Q: Can I apply to both CS3217 and CS3281?
      A: Yes. If you get places in both, you will be given time to decide which one to take.

    • Q: What's the difference between CS3217 and CS3281&2?
      -A: Here are some similarities/differences:

    CS3217 CS3281&2
    design and deliver a complete product -- includes an individual project (6 weeks) and a team project (6 weeks) work with existing applications that are currently in use (higher focus downstream value addition such as reliability, scalability, security, maintainability, etc.)
    typically involves iOS ecosystem + other modern frameworks/platforms low involvement of iOS ecosystem but involves other modern application frameworks/platforms
    small intake (~40-50), via a selection process, hard to get in small intake (~20), via a selection process, hard to get in
    done over one semester, although most students also take CS3216 done over two semesters, with a gap in-between (i.e., takes at least 1.5 academic years to complete)
    expects you to design and deliver a good product by the end of the semester expects you to manage and evolve an existing product over a longer period, guided by past devs, while guiding new devs (in later stages)
    high workload, intended for strong programmers only high workload, intended for strong programmers only
    • Q: Can I take this module while doing ATAP/SIP?
      +A: Here are some similarities/differences:

    CS3217 CS3281&2
    design and deliver a complete product -- includes an individual project (6 weeks) and a team project (6 weeks) work with existing applications that are currently in use (higher focus downstream value addition such as reliability, scalability, security, maintainability, etc.)
    typically involves iOS ecosystem + other modern frameworks/platforms low involvement of iOS ecosystem but involves other modern application frameworks/platforms
    small intake (~40-50), via a selection process, hard to get in small intake (~20), via a selection process, hard to get in
    done over one semester, although most students also take CS3216 done over two semesters, with a gap in-between (i.e., takes at least 1.5 academic years to complete)
    expects you to design and deliver a good product by the end of the semester expects you to manage and evolve an existing product over a longer period, guided by past devs, while guiding new devs (in later stages)
    high workload, intended for strong programmers only high workload, intended for strong programmers only
    • Q: Can I take this course while doing ATAP/SIP?
      A: No. Reason: You need to be available during working hours for lectures and project meetings.

    • Q: For CS3281, can I choose a project that is not one of the NUS-OSS projects?
      -A: No. Reason: As 100% of your CS3281 module grade depends on your project work, you need to work in a project that is fully under our control.

    • Q: Can CEG students take this module?
      -A: Yes.

    • Q: If selected for both CS3217 and CS3281&2, can I take both?
      -A: Discouraged (but allowed). Reason: all three modules have high workload.

    Have a Question?

    Please direct any questions to CS3281&2 module coordinator Dr Damith Rajapakse damith [at] comp.nus.edu.sg

    +A: No. Reason: As 100% of your CS3281 course grade depends on your project work, you need to work in a project that is fully under our control.

  • Q: Can CEG students take this course?
    +A: Yes, with approval.

  • Q: If selected for both CS3217 and CS3281, can I take both?
    +A: Discouraged (but allowed). Reason: both courses have high workload.

  • Have a Question?

    Please direct any questions to CS3281&2 course coordinator Dr Damith Rajapakse damith [at] comp.nus.edu.sg

    - - + @@ -24,29 +21,28 @@ const baseUrl = '/website' -

    CS3281 Schedule

    The schedule for future weeks is tentative, given as a reference only. The prof will finalize the details of a week near to the start of the week, although major changes are highly unlikely.

    Week 1 [9th Jan]

    Todo

    • Update GitHub profile: As most of your work will be submitted via GitHub, you are encouraged to update your GitHub profile with your full or partial name.
    • Add your info to the repo nus-cs3281/2023 [⏰ Deadline: Friday]. You will be given write permission to the repo by Monday.
    • Set up the dev environment of your project in your Computer. Follow instructions provided by the project for new contributors.
    • Join nusossprojects slack channel when you receive the invitation. As our projects use slack for chats, please keep slack running (and notifications enabled) during periods in which you are actively involved in our projects (or check slack at least once a day).

    Monday

    • Lecture: CS3281 Module Intro -
      • Online lecture (Zoom link is in Canvas course home page)

    Saturday (Code Sprint)

    • The code sprint is an opportunity for you to spend an extended amount of time on the project so that you get a solid start to the coding activities. Some project mentors may be available during this time for you to discuss project related matters with them.
    • Agenda +
  • CS3281 Schedule

    The schedule for future weeks is tentative, given as a reference only. The prof will finalize the details of a week near to the start of the week, although major changes are highly unlikely.

    Week 1 [15th Jan]

    Todo

    Monday

    Saturday (Code Sprint)

    Week 2 [16th Jan]

    Monday

    Week 2 [22nd Jan]

    Monday

    Week 3 [23rd Jan]

    Monday

    Keep records of your work

    As you learn the codebase, investigate issues, learn related tools etc., try to get them recorded somewhere. Some options:

    • record in your 'knowledge' page e.g., a tool you learned
    • post it an issue in the issue tracker e.g., investigating the applicability of a tool to the project
    • an update to project documentation e.g., a solution you found to a problem that happens in the dev environment

    Reasons: It increases the visibility of your work. Those records can be useful references to you and others.

    Week 4 [30th Jan]

    Monday

    Sunday

    Week 5 [6th Feb]

    Todo

    Monday

    Sunday

    Don't worry if your RepoSense graph doesn't have as many ramps as others. Data shown on the RepoSense report are not directly comparable across projects or even within a project, as different projects have different commit rates and the nature of one dev's work may be very different from another. The RepoSense report is just a means for conveniently accessing your work in one page, and also a means of stress testing RepoSense.

    Week 6 [13th Feb]

    Monday


    Recess


    Week 7 [27th Feb]

    By the end of this semester, we expect you to,

    1. deliver substantial value to the project, which may be through developing a fairly big feature +CATcher: 10-15 minutes (also include WATcher in the demo)
    2. The main objective is to learn/explain the product from the user's POV. Focus on giving an overview of the product from the user's POV, and limit to highlights of the features if there are many features (i.e., no need to do a comprehensive demo of every little feature). No need (but preferred) for every team member to take part either. Decide among yourselves who will demo which feature.
    3. Week 3 [29th Jan]

      Monday

      • Lecture: Project-specific discussions

      Keep records of your work

      As you learn the codebase, investigate issues, learn related tools etc., try to get them recorded somewhere. Some options:

      • record in your 'knowledge' page e.g., a tool you learned
      • post it an issue in the issue tracker e.g., investigating the applicability of a tool to the project
      • an update to project documentation e.g., a solution you found to a problem that happens in the dev environment

      Reasons: It increases the visibility of your work. Those records can be useful references to you and others.

      Week 4 [5th Feb]

      Monday

      • Lecture: Project-specific discussions

      Sunday

      Week 5 [12th Feb]

      Todo

      • If you haven't started already, this is a good time to start getting at least one peer-review from classmates before requesting reviews from a senior developer. +
        • You can request a review from a peer directly or you can post a 'call for reviewers' in the respective chat channels.
        • You can get early inputs from senior devs if necessary, e.g., you are not sure about the overall direction of the PR, you want to know the rationale for the current code, etc.
      • You can also help to manage new/external contributors e.g., answer their questions, review their PRs etc. Even if their question is directed at a senior dev or the prof, you can jump in and answer if you know the answer.

      Monday

      • Project-specific discussions

      Sunday

      • Keep updating the the progress page and the knowledge page on a weekly basis, as was done in the previous week. These pages are used in grading.
      • ⏰ PR to update these csv config files if all your internal project work is not captured in the dashboard. More info about the file format can be found here.

      Don't worry if your RepoSense graph doesn't have as many ramps as others. Data shown on the RepoSense report are not directly comparable across projects or even within a project, as different projects have different commit rates and the nature of one dev's work may be very different from another. The RepoSense report is just a means for conveniently accessing your work in one page, and also a means of stress testing RepoSense.

      Week 6 [19th Feb]

      Monday

      • Lecture: Project-specific discussions

      Recess


      Week 7 [5th Mar]

      By the end of this semester, we expect you to,

      1. deliver substantial value to the project, which may be through developing a fairly big feature (working solo or with others) or doing a bunch of tasks in a specific area,
      2. more importantly, to gain expertise in a substantial part of the codebase (while being fairly familiar with the rest).

      If you can't work out a plan that achieves the above, you can seek guidance from the seniors and/or the prof as well.

      • ⏰ by Friday
        • Peer evaluations
      • ⏰ by Sunday -
        • Update the progress page

      Monday

      • Lecture: Project-specific discussions

      Week 8 [6th Mar]

      Monday

      • Lecture: Project-specific discussions

      Week 9 [13th Mar]

      Monday

      • Lecture: Project-specific discussions

      Week 10 [20th Mar]

      As you are now entering the managing phase, get more involved in management activities of the project.

      Monday

      • Lecture: Project-specific discussions

      Week 11 [27th Mar]

      Help to maintain a healthy supply of beginner-friendly issues: If you encounter small non-urgent issues (so called 'low hanging fruits'), it is best to leave them for future new contributors, because we expect several new contributors to join the project during the upcoming summer.

      In fact, go the extra mile to create such issues when you can, as a good supply of such beginner-friendly issues is an essential asset for an OSS project.

      Todo

      • Plan to finish ongoing (and new) PRs by end of week 12, with one week to spare. If PRs are stalling due to lack of reviews from mentors, feel free to nag.

      Monday

      • Lecture: Project-specific discussions

      Week 12 [3rd Apr]

      Monday

      • Lecture: Project-specific discussions

      Week 13 [10th Apr]

      Monday

      • Lecture -
        • Project specific discussions

      As we are now reaching the end of the semester:

      • Wrap up any ongoing PRs soon. Only merged work can be counted for grading.
      • Update your knowledge and progress pages. Those will be used in grading.

      Soft deadline: end of week 13; hard deadline: end of reading week

      Reading week, exam period

      • Ensure the progress/knowledge pages are up-to-date latest by the end of the first -week in the exam period.

      Work done after the semester

      • The work done after the semester is over can earn credit when taking CS3282 later. -
        • Any value addition towards the module (e.g., PR reviews, mentoring, development work, etc.) -can be used for the above.
        • The work done prior to CS3282 start date can count up to 40% of the module load i.e., -at least 60% of the module work needs to be done during the semester itself.
        • Keep good records of the work done so that they can be included in CS3282 work later when you take the module.
      • While keeping in touch with the project during the intervening period is not compulsory, +
        • Update the progress page

      Monday

      • Lecture: Project-specific discussions

      Week 8 [12th Mar]

      Monday

      • Lecture: Project-specific discussions

      Week 9 [19th Mar]

      Monday

      • Lecture: Project-specific discussions

      Week 10 [26th Mar]

      As you are now entering the managing phase, get more involved in management activities of the project.

      Monday

      • Lecture: Project-specific discussions

      Week 11 [2nd Apr]

      Help to maintain a healthy supply of beginner-friendly issues: If you encounter small non-urgent issues (so called 'low hanging fruits'), it is best to leave them for future new contributors, because we expect several new contributors to join the project during the upcoming summer.

      In fact, go the extra mile to create such issues when you can, as a good supply of such beginner-friendly issues is an essential asset for an OSS project.

      Todo

      • Plan to finish ongoing (and new) PRs by end of week 12, with one week to spare. If PRs are stalling due to lack of reviews from mentors, feel free to nag.

      Monday

      • Lecture: Project-specific discussions

      Week 12 [9th Apr]

      Monday

      • Lecture: Project-specific discussions

      Week 13 [16th Apr]

      Monday

      • Lecture +
        • Project specific discussions

      As we are now reaching the end of the semester:

      • Wrap up any ongoing PRs soon. Only merged work can be counted for grading.
      • Update your knowledge and progress pages. Those will be used in grading.

      Soft deadline: end of week 13; hard deadline: end of reading week

      Reading week, exam period

      • Ensure the progress/knowledge pages are up-to-date latest by the end of the first +week in the exam period.

      Work done after the semester

      • The work done after the semester is over can earn credit when taking CS3282 later. +
        • Any value addition towards the course (e.g., PR reviews, mentoring, development work, etc.) +can be used for the above.
        • The work done prior to CS3282 start date can count up to 40% of the course load i.e., +at least 60% of the course work needs to be done during the semester itself.
        • Keep good records of the work done so that they can be included in CS3282 work later when you take the course.
      • While keeping in touch with the project during the intervening period is not compulsory, it is strongly encouraged as it would help you to deepen your expertise in the project. The more expertise you have in the project, the better you will be able to do -project management and mentoring tasks included in the CS3282 workload.
      • See here for more info on CS3282 workload.
    +project management and mentoring tasks included in the CS3282 workload.
  • See here for more info on CS3282 workload.
  • - - + @@ -24,54 +21,54 @@ const baseUrl = '/website' -

    CS3282 Schedule

    Week 1 [9th Jan]

    Todo

    • Check your details in nus-cs3281/2023 [⏰ Deadline: Friday] and update if necessary. You will be given write permission to the repo by Monday.
    • Discuss with other senior team members to plan onboarding activities for the code sprint. Minimally, plan to have a chat with the CS3281 students. In addition, you can do technical briefings, tutorials, workshops etc. to get CS3281 students started on the project work.

    Thursday

    • Lecture : CS3282 Module Intro -
      • Hybrid lecture (Zoom link is in Canvas homepage) -- F2F by default unless you obtained permissions to not attend F2F.

    Saturday (Code Sprint)

    • Join the code sprint and introduce yourself to CS3281 students

    Activity: Book Chapter Report

    The purpose of this activity is to encourage you to read SE books.

    Steps:

    1. Have a quick look at the default recommended book Software Engineering at Google (PDF available for free). You may also pick a different SE book that you have read before or want to read this semester. Pick a chapter that you want to read/use for this activity.
    2. Post an issue in nus-cs3281/2023 indicating which book and which chapter you plan to read. Assign the issue to yourself.
      -Doing this early will help you avoid clashing with chapters chosen by others. We prefer not to have multiple book reports on the same chapter.
    3. Read the book chapter.
    4. Post a short summary of the chapter in the same issue. Just a few bullet points is enough. Optionally, you can also comment on the relevance of the chapter to your NUS-OSS project.

    Try to finish the above by the end of the recess week.

    You are welcome to do more than one book/chapter too.


    Week 2 [16th Jan]

    Todo

    • Keep updating progress.md and knowledge.md, in the nus-cs3281/2023 repo periodically. -
      • progress.md: Your contributions to the internal project(s). Update similar to how you did in CS3281.
      • knowledge.md: Keep evolving your knowledge.md to showcase things you have learned in various areas (e.g., your chosen expertise areas): resources explored, lessons learned, deliverables produced, etc.
    • If you plan to contribute to an external project, start looking for one if you haven't done so already. Once you have found a potential project, you can follow their instructions to get started on contributing. You can even try multiple projects if you are not sure the chosen project will work out.

    Thursday

    • Lecture: Tips for tech talks - Part 1
    • Choosing topics for Lightning Talks: -
      • ⏰ By the end of today, post an issue in repo nus-cs3281/2023 as follows Β Reason: posting titles in advance will help us avoid topic duplications: -
        • Issue subject: the title of your talk
        • Issue body: 2-3 sentence preview of the talk
      • Check to see if there are duplicate topics already posted. You are discouraged from (but not prevented from) choosing a topic already chosen by another.
      • It is in your interest to choose a topic related to one of your expert areas. It is not a strict requirement though.
      • Note that you will be peer-evaluated for the quality of delivery as well as the usefulness of the talk. It is recommended to pick topics that are potentially useful to the audience.
    • Read next week's schedule to find more info about the upcoming lightning talks. The order of talks (i.e., who presents in which week) is given there too.

    Week 3 [23rd Jan]

    Thursday

    • Project-specific discussions

    Week 4 [30th Jan]

    Todo

    If you haven't already,

    • [If applicable] get started with contributing to the external project. If you don't make any progress by week 5, you need to find another project.

    Thursday

    Steps to follow when preparing

    Give priority to applying the techniques covered in week 2 lecture even if you feel like they are cramping your natural presentation style or you can do better without them. Harmonizing your style with the new techniques can come later. In particular, WIIFY, Key Points, and Impact should be the driving forces of your presentation. Figure them out at the start of your preparations, not as an afterthought.

    Try to follow these steps in the given order:

    1. Define the intended impact of the talk.

      • Try to choose an impact that has a do component (e.g., get audience to switch to technology X), not just know and believe components (e.g., tell audience about X). The do component will make the talk motivational and higher-impact; without it, the talk will be simply informational.
      • Frame the intended impact as a call-to-action (CtA).
    2. Find a WIIFY i.e., a good reason for the audience to follow your CtA. The WIIFY can work better if it relates to this specific audience at a concrete level. -For example, explaining how Foo technology can benefit SoC students right now is better than making a general claim that Foo is a useful technology. Sometimes realizing that β€˜there is a cool technology out there benefiting many others, but it is not accessible to me right now’ can be a turn off.
      -If you cannot find a convincing WIIFY, reconsider the topic as there is a risk that the audience may not find the talk useful.

    3. Choose key points that help you achieve that impact. Be clear about your key points.

      • We look for points, not topics e.g., how to use X is a topic while X is easy to use is a point. In the past years, I found that some students still confused points with topics. A point forms a sentence e.g., The tool X is easy to use. whereas a topic may not e.g., Tool X usage.
      • Make sure your key points are aligned with the intended impact. If you key points are a, b, c, you should be able to say "a; b; c; therefore, CtA" e.g., "X is fast; X is free; X is getting popular; therefore, switch to X!"
    4. Decide the talk roadmap (aka the agenda, or the promise). They may be similar to key points but not necessarily the same. The roadmap can be topics (rather than points) and can be questions (rather than answers).

      Roadmap Key points
      What is X?
      Demo of X
      Benefits of X
      X is fast
      X is free
      X is getting popular
    5. Find a PUNCH. This is hard, but give it your best shot. One good tactic is to find an extreme example of a pain point that can be solved by your topic e.g, if your CtA is switch to X, you can start with an example that shows how bad something can be without X.

    6. Design the slides.

      • One common mistake is inadvertently including big holes in the talk, for example, forgetting to explain some concept that is vital to understanding the topic. Critically review your talk from the target audience point of view.
      • Also mention how the topic fits into the big picture.
        e.g., if your talk is about X, the big picture can be like this:

        There are two categories of tools for doing Bar which is an essential part in building apps. Category 1 tools work inside-out and Category 2 tools work outside-in. Tool X is the currently a hot tool in category 2 because it is faster and more secure than other popular tools in that category, namely Y and Z.

      • Ensure the last slide has the key points (not a big Thank You or Q&A)
      • Limit the content to what you can deliver in 7 minutes (in rehearsals, aim to finish in 6 minutes; the actual talk is likely to take longer than the rehearsal). The remaining 3 minutes is for Q&A.
    7. Start the talk with a PUNCH, WIIFY, and the Roadmap. Avoid the traditional My name is A, my topic is B type start.

    8. End the talk with key points and CtA. It is also good to reiterate WIIFY together with key points.

    9. Test your laptop connection to the projector in advance.


    After the session
    • ⏰ by Thursday midnight:

      • Speakers should update the issue description (rather than add as a new comment) as follows: -
        • Add a link to the slides. Β Note that GitHub allows attaching ppt files. Just drag-drop the files to the comment box.
        • State WIIFY, Key Points, Impact
    • ⏰ by Friday midnight:

      • All must submit feedback to speakers (via TEAMMATES). The quality of feedback is considered in grading.
    • Feel free to continue the discussion about each talk in the issue tracker.


    Sunday

    Week 5 [6th Feb]

    Todo

    • As you mentor CS3281 students, try to get them to peer-review each others' PRs and to help guide other contributors.

    Thursday

    • Lecture : Lightning Talks Round A - Part 2

    Week 6 [13th Feb]

    Thursday

    • Lecture: Tips for Tech Talks - Part 2

    Todo

    • ⏰ by Friday : Post Lightning Talks Round B topic in the issue tracker, as was done in Round A
    • ⏰ by end of recess week : Aim to finish the 'Book Chapter Report' activity

    Resources


    Recess



    Week 7 [27th Feb]

    For your reference, below are the instructions given to CS3281 students regarding their plan for the second half of the semester.

    By the end of this semester, we expect you to,

    1. deliver substantial value to the project, which may be through developing a fairly big feature +
  • CS3282 Schedule

    Week 1 [15th Jan]

    Todo

    Thursday

    Saturday (Code Sprint)

    Activity: Book Chapter Report

    The purpose of this activity is to encourage you to read SE books.

    Steps:

    1. Have a quick look at the default recommended book Software Engineering at Google (PDF available for free). You may also pick a different SE book that you have read before or want to read this semester. Pick a chapter that you want to read/use for this activity.
    2. Post an issue in nus-cs3281/2024 indicating which book and which chapter you plan to read. Assign the issue to yourself.
      +Doing this early will help you avoid clashing with chapters chosen by others. We prefer not to have multiple book reports on the same chapter.
    3. Read the book chapter.
    4. Post a short summary of the chapter in the same issue. Just a few bullet points is enough. Optionally, you can also comment on the relevance of the chapter to your NUS-OSS project.

    Try to finish the above by the end of the recess week.

    You are welcome to do more than one book/chapter too.


    Week 2 [22nd Jan]

    Todo

    Thursday

    Week 3 [29th Jan]

    Thursday

    Week 4 [5th Feb]

    Todo

    If you haven't already,

    Thursday

    Steps to follow when preparing

    Give priority to applying the techniques covered in week 2 lecture even if you feel like they are cramping your natural presentation style or you can do better without them. Harmonizing your style with the new techniques can come later. In particular, WIIFY, Key Points, and Impact should be the driving forces of your presentation. Figure them out at the start of your preparations, not as an afterthought.

    Try to follow these steps in the given order:

    1. Define the intended impact of the talk.

      • Try to choose an impact that has a do component (e.g., get audience to switch to technology X), not just know and believe components (e.g., tell audience about X). The do component will make the talk motivational and higher-impact; without it, the talk will be simply informational.
      • Frame the intended impact as a call-to-action (CtA).
    2. Find a WIIFY i.e., a good reason for the audience to follow your CtA. The WIIFY can work better if it relates to this specific audience at a concrete level. +For example, explaining how Foo technology can benefit SoC students right now is better than making a general claim that Foo is a useful technology. Sometimes realizing that β€˜there is a cool technology out there benefiting many others, but it is not accessible to me right now’ can be a turn off.
      +If you cannot find a convincing WIIFY, reconsider the topic as there is a risk that the audience may not find the talk useful.

    3. Choose key points that help you achieve that impact. Be clear about your key points.

      • We look for points, not topics e.g., how to use X is a topic while X is easy to use is a point. In the past years, I found that some students still confused points with topics. A point forms a sentence e.g., The tool X is easy to use. whereas a topic may not e.g., Tool X usage.
      • Make sure your key points are aligned with the intended impact. If you key points are a, b, c, you should be able to say "a; b; c; therefore, CtA" e.g., "X is fast; X is free; X is getting popular; therefore, switch to X!"
    4. Decide the talk roadmap (aka the agenda, or the promise). They may be similar to key points but not necessarily the same. The roadmap can be topics (rather than points) and can be questions (rather than answers).

      Roadmap Key points
      What is X?
      Demo of X
      Benefits of X
      X is fast
      X is free
      X is getting popular
    5. Find a PUNCH. This is hard, but give it your best shot. One good tactic is to find an extreme example of a pain point that can be solved by your topic e.g, if your CtA is switch to X, you can start with an example that shows how bad something can be without X.

    6. Design the slides.

      • One common mistake is inadvertently including big holes in the talk, for example, forgetting to explain some concept that is vital to understanding the topic. Critically review your talk from the target audience point of view.
      • Also mention how the topic fits into the big picture.
        e.g., if your talk is about X, the big picture can be like this:

        There are two categories of tools for doing Bar which is an essential part in building apps. Category 1 tools work inside-out and Category 2 tools work outside-in. Tool X is the currently a hot tool in category 2 because it is faster and more secure than other popular tools in that category, namely Y and Z.

      • Ensure the last slide has the key points (not a big Thank You or Q&A)
      • Limit the content to what you can deliver in 7 minutes (in rehearsals, aim to finish in 6 minutes; the actual talk is likely to take longer than the rehearsal). The remaining 3 minutes is for Q&A.
    7. Start the talk with a PUNCH, WIIFY, and the Roadmap. Avoid the traditional My name is A, my topic is B type start.

    8. End the talk with key points and CtA. It is also good to reiterate WIIFY together with key points.

    9. Test your laptop connection to the projector in advance.


    After the session
    • ⏰ by Thursday midnight:

      • Speakers should update the issue description (rather than add as a new comment) as follows: +
        • Add a link to the slides. Β Note that GitHub allows attaching ppt files. Just drag-drop the files to the comment box.
        • State WIIFY, Key Points, Impact
    • ⏰ by Friday midnight:

      • All must submit feedback to speakers (via TEAMMATES). The quality of feedback is considered in grading.
    • Feel free to continue the discussion about each talk in the issue tracker.


    Sunday

    Week 5 [12th Feb]

    Todo

    Thursday

    Week 6 [19th Feb]

    Thursday

    Todo

    Resources


    Recess



    Week 7 [5th Mar]

    For your reference, below are the instructions given to CS3281 students regarding their plan for the second half of the semester.

    By the end of this semester, we expect you to,

    1. deliver substantial value to the project, which may be through developing a fairly big feature (working solo or with others) or doing a bunch of tasks in a specific area,
    2. more importantly, to gain expertise in a substantial part of the codebase -(while being fairly familiar with the rest).

    If you can't work out a plan that achieves the above, you can seek guidance from the seniors and/or the prof as well.

    Deliverables for you (i.e., CS3282 mentors):

    1. guide mentees achieve the above goals,
    2. to ensure CS3281 students collectively gain expertise in the full codebase, and is able to 'manage' the project in future by themselves.

    Todo

    Thursday

    Tips for round B

    • Make slides more visual:

      • Instead of bullet points, use other suitable visual structures e.g., a flow chart

      • Instead of text, use graphical forms

      • But avoid visual clutter such as background graphics that do not add value

      • Given below is a video containing some slide design tips:

    • Make the point clear:

      • Ask yourself "what is the point I want to make in this slide?" Once you have determined the point, ask yourself "can I improve the slide to make the point clearer?"
      • Use assertion-evidence type slides rather that topic-content type where applicable.
      • Ensure every technical term used is either known to the audience or you define it explicitly. If you are not sure if the audience know the definition, slip in the definition casually to your explanations.
      • Demo/describe your solution early to avoid setting expectations too high. If you spend a lot of time explaning the problem or criticising competing solutions, audience expectations of your own solution might climb too high.
    • Animate meaningfully: Use animations/transitions to enhance the meaning of your slide content.

    • Use the Click-Look-Recall technique instead of using cue cards:

      • Ensure that you know the sequence of your talking points in advance.
      • Map each point to a click on your slide, which should add a visual cue onto the slide that reminds you of the point you are supposed to talk about.
      • During delivery, look at the screen as you click, and use the visual cue to recall the point.

    For reference: Tips from round A


    Week 8 [6th Mar]

    Deliverables for you (i.e., CS3282 mentors):

    1. guide mentees achieve the above goals,
    2. to ensure CS3281 students collectively gain expertise in the full codebase, and is able to 'manage' the project in future by themselves.

    Todo

    Thursday

    Tips for round B

    • Make slides more visual:

      • Instead of bullet points, use other suitable visual structures e.g., a flow chart

      • Instead of text, use graphical forms

      • But avoid visual clutter such as background graphics that do not add value

      • Given below is a video containing some slide design tips:

    • Make the point clear:

      • Ask yourself "what is the point I want to make in this slide?" Once you have determined the point, ask yourself "can I improve the slide to make the point clearer?"
      • Use assertion-evidence type slides rather that topic-content type where applicable.
      • Ensure every technical term used is either known to the audience or you define it explicitly. If you are not sure if the audience know the definition, slip in the definition casually to your explanations.
      • Demo/describe your solution early to avoid setting expectations too high. If you spend a lot of time explaning the problem or criticising competing solutions, audience expectations of your own solution might climb too high.
    • Animate meaningfully: Use animations/transitions to enhance the meaning of your slide content.

    • Use the Click-Look-Recall technique instead of using cue cards:

      • Ensure that you know the sequence of your talking points in advance.
      • Map each point to a click on your slide, which should add a visual cue onto the slide that reminds you of the point you are supposed to talk about.
      • During delivery, look at the screen as you click, and use the visual cue to recall the point.

    For reference: Tips from round A


    Week 8 [12th Mar]

    Thursday

    Week 9 [13th Mar]

    Thursday

    Week 10 [20th Mar]

    As CS3281 students are now entering the managing phase, get them more involved in management activities of the project.

    Todo

    Thursday

    Week 9 [19th Mar]

    Thursday

    Week 10 [26th Mar]

    As CS3281 students are now entering the managing phase, get them more involved in management activities of the project.

    Todo

    Thursday

    Week 11 [27th Mar]

    Help to maintain a healthy supply of beginner-friendly issues: If you encounter small non-urgent issues (so called 'low hanging fruits'), it is best to leave them for future new contributors, because we expect several new contributors to join the project during the upcoming summer.

    In fact, go the extra mile to create such issues when you can, as a good supply of such beginner-friendly issues is an essential asset for an OSS project.

    Todo

    Thursday

    Thursday

    Week 11 [2nd Apr]

    Help to maintain a healthy supply of beginner-friendly issues: If you encounter small non-urgent issues (so called 'low hanging fruits'), it is best to leave them for future new contributors, because we expect several new contributors to join the project during the upcoming summer.

    In fact, go the extra mile to create such issues when you can, as a good supply of such beginner-friendly issues is an essential asset for an OSS project.

    Todo

    Thursday

    Targets for LT Round C

    In this round you are expected to hit almost all targets(🎯) given below. You are recommended to follow tips (πŸ’‘) given under each target closely.

    Talk structure

    1. 🎯 The talk is well-structured and aims for high impact. -
      1. πŸ’‘ Document the following elements an extra/hidden slide in the slide deck (for verification/grading purposes) -
        • Intended impact: -
          • Know
          • Believe
          • Do
        • WIIFY
        • Key points
        • Call-to-action
        • Roadmap
        • PUNCH

    Slide design

    1. 🎯 No visual clutter -
      1. πŸ’‘ Remove any conspicuous background graphics that do not add value
      2. πŸ’‘ Avoid using images that don't really add value
    2. 🎯 Visual slides -
      1. πŸ’‘ Wherever you have bullet points (or paragraph text), look for another suitable structure such as a table, flow chart, map, graph, etc.
      2. πŸ’‘ Use graphics instead of (or in addition to) text
    3. 🎯 Important elements of the talk are captured prominently in slides -
      1. πŸ’‘ Ensure WIIFY, Roadmap, start/end of sections of the Roadmap, and each keypoint are captured as separate slides or as noticeable visual elements
      2. πŸ’‘ Use words Key point in text so that they are hard to miss
        e.g., KEY POINT: Java is verbose!
      3. πŸ’‘ use a different (and more prominent) design for important slides and key elements
        e.g., use a brighter background, bigger font size
    4. 🎯 Last slide is used to good effect -
      1. πŸ’‘ at least it should contain key points and the call-to-action
      2. πŸ’‘ as the last slide should contain the essence of the talk, it is ok to be 'crowded'
      3. πŸ’‘ you may want to include your contact details in the last slide too
    5. 🎯 Slides optimized to convey the point, and help your delivery -
      1. πŸ’‘ Write down in slide notes the point(s) a slide is supposed to convey. Each slide should have at least a main point, and possibly some sub points. e.g.,
        Java is still the most popular language today.
        -* Java positions lead job vacancies.
        -* Highest percentage of devices support JVM.
        -* All fortune 500 companies use Java for their enterprise systems.
        -
      2. πŸ’‘ If possible, use the assertion-evidence format to bring out the main point. i.e., show the main point as the slide title.
        e.g., the slide title can be Java is still the most popular language today. (i.e., the main point) instead of Java popularity (i.e., a phrase/topic)
      3. πŸ’‘ For each sub point, ensure there is a corresponding click.
        e.g., the slide should have at least three clicks so that you can use the click-look-recall technique as a prompt to talk about each of the three sub points.
    6. 🎯 Minimum use of jargon -
      1. πŸ’‘ Format jargon in a different way e.g., use a different font so that you remember to define them. Alternatively, put the definition on the slide.
    7. 🎯 Meaningful animations -
      1. πŸ’‘ Use meaningful slide transitions e.g., use a more drastic transition when moving from one major section to another.
      2. πŸ’‘ When possible, gradually remove/introduce elements into a slide so that the audience can maintain context i.e., minimize drastic change of scenery.

    Delivery

    1. 🎯 Start with a PUNCH (instead of traditional self-intro) -
      1. πŸ’‘ Open with a brief greeting, and jump starlight into your PUNCH
    2. 🎯 WIIFY and Roadmap clearly communicated. -
      1. πŸ’‘ Use clear 'marker' phrases to draw attention to these important elements of the talk. e.g., "I think this is a very important topic to you because ..." "In the next few minutes, I'm going to talk about (a)... (b)... and (c)"
    3. 🎯 Each key point is clearly made -
      1. πŸ’‘ When the key slide comes up, use the marker phrase "So, the key point here is ..." to draw attention to it.
    4. 🎯 Finish by reiterating key points, and call-to-action. -
      1. πŸ’‘ Follow the call-to-action with a clear "Thank you!" and if applicable, "I'm ready for your questions" to indicate the end of your talk.

    Week 12 [3rd Apr]

    Thursday

    Week 13 [10th Apr]

    Thursday

    +

    Targets for LT Round C

    In this round you are expected to hit almost all targets(🎯) given below. You are recommended to follow tips (πŸ’‘) given under each target closely.

    Talk structure

    1. 🎯 The talk is well-structured and aims for high impact. +
      1. πŸ’‘ Document the following elements an extra/hidden slide in the slide deck (for verification/grading purposes) +
        • Intended impact: +
          • Know
          • Believe
          • Do
        • WIIFY
        • Key points
        • Call-to-action
        • Roadmap
        • PUNCH

    Slide design

    1. 🎯 No visual clutter +
      1. πŸ’‘ Remove any conspicuous background graphics that do not add value
      2. πŸ’‘ Avoid using images that don't really add value
    2. 🎯 Visual slides +
      1. πŸ’‘ Wherever you have bullet points (or paragraph text), look for another suitable structure such as a table, flow chart, map, graph, etc.
      2. πŸ’‘ Use graphics instead of (or in addition to) text
    3. 🎯 Important elements of the talk are captured prominently in slides +
      1. πŸ’‘ Ensure WIIFY, Roadmap, start/end of sections of the Roadmap, and each keypoint are captured as separate slides or as noticeable visual elements
      2. πŸ’‘ Use words Key point in text so that they are hard to miss
        e.g., KEY POINT: Java is verbose!
      3. πŸ’‘ use a different (and more prominent) design for important slides and key elements
        e.g., use a brighter background, bigger font size
    4. 🎯 Last slide is used to good effect +
      1. πŸ’‘ at least it should contain key points and the call-to-action
      2. πŸ’‘ as the last slide should contain the essence of the talk, it is ok to be 'crowded'
      3. πŸ’‘ you may want to include your contact details in the last slide too
    5. 🎯 Slides optimized to convey the point, and help your delivery +
      1. πŸ’‘ Write down in slide notes the point(s) a slide is supposed to convey. Each slide should have at least a main point, and possibly some sub points. e.g.,
        Java is still the most popular language today.
        +* Java positions lead job vacancies.
        +* Highest percentage of devices support JVM.
        +* All fortune 500 companies use Java for their enterprise systems.
        +
      2. πŸ’‘ If possible, use the assertion-evidence format to bring out the main point. i.e., show the main point as the slide title.
        e.g., the slide title can be Java is still the most popular language today. (i.e., the main point) instead of Java popularity (i.e., a phrase/topic)
      3. πŸ’‘ For each sub point, ensure there is a corresponding click.
        e.g., the slide should have at least three clicks so that you can use the click-look-recall technique as a prompt to talk about each of the three sub points.
    6. 🎯 Minimum use of jargon +
      1. πŸ’‘ Format jargon in a different way e.g., use a different font so that you remember to define them. Alternatively, put the definition on the slide.
    7. 🎯 Meaningful animations +
      1. πŸ’‘ Use meaningful slide transitions e.g., use a more drastic transition when moving from one major section to another.
      2. πŸ’‘ When possible, gradually remove/introduce elements into a slide so that the audience can maintain context i.e., minimize drastic change of scenery.

    Delivery

    1. 🎯 Start with a PUNCH (instead of traditional self-intro) +
      1. πŸ’‘ Open with a brief greeting, and jump starlight into your PUNCH
    2. 🎯 WIIFY and Roadmap clearly communicated. +
      1. πŸ’‘ Use clear 'marker' phrases to draw attention to these important elements of the talk. e.g., "I think this is a very important topic to you because ..." "In the next few minutes, I'm going to talk about (a)... (b)... and (c)"
    3. 🎯 Each key point is clearly made +
      1. πŸ’‘ When the key slide comes up, use the marker phrase "So, the key point here is ..." to draw attention to it.
    4. 🎯 Finish by reiterating key points, and call-to-action. +
      1. πŸ’‘ Follow the call-to-action with a clear "Thank you!" and if applicable, "I'm ready for your questions" to indicate the end of your talk.

    Week 12 [9th Apr]

    Thursday

    Week 13 [16th Apr]

    Thursday