DrCT

Objective of DrCT

To cultivate students’ creativity, logical reasoning ability, algorithmic and computational thinking skills. By solving our contest tasks and using Strawbees with design thinking methodology to develop a robotic solution for a problem statement, we will facilitate a deeper understanding of the world around the learner and enable them to solve everyday problems by leveraging the power of computers and information technology. Students will pick up the finer points of programming, solution focus and action oriented which is not merely writing a piece of code but involves useful algorithmic techniques and problem-solving skills.

Mission

We hope to create a platform that can allow the neighbourhood schools’ students to have an opportunity to learn about informatics in a more creative way and compete with the rest of the world. Using Computation thinking also allows the students to have systematic approach to learn programming and our methodology of combining design thinking and robotics will provide an intuitive first introduction to programming, as well as infinite opportunities for gradually building more advanced projects using an electronics platform fulfilling a standard loved and tested by millions of people who use electronics for real-world applicable projects across the globe.

Training

We will use Bebras contest bank as a foundation training platform. Next, we will offer Dr CT lessons to prepare computational thinking as being ‘about formulating things with enough clarity, and in a systematic enough way, that one can tell a computer how to do them.’ Students will be able to use CT to recast their problem in the right way, programming then becomes the next step: telling the computer what to do in order to solve it.? We will incorporate games such as Strawbees and Scottie Go by Be Creo to let students have hands on opportunities to develop their problem solving and design thinking skills. What we learn from tinkering, putting things together, taking them apart – investigating real life 3D structures – is helpful to us in almost all aspects of life.

Syllabus

Grades 1-2:
Preparatory Computational Thinking This course is designed to prepare very young children for learning the core ideas of computer science. It is thought that children at this age have very limited mental faculties for performing one of the central aspects of computational thinking: abstraction. Lessons and activities in this course will therefore mostly concern concrete pattern finding and following and completing instructions. This course may be done without a computer, but the experience of the students can be enriched if computers are available. This lesson outline is (heavily) based on https://classic.csunplugged.org/ and https://code.org/educate/curriculum/elementary-school . • Lesson 1: Pattern Recognition • Lesson 2: Sequencing, Debugging o Using the Computer, Learning to Click, Drag, and Drop • Lesson 3: Loops • Lesson 4: Binary Representation of Numbers • Lesson 5: Representation of Text and Images
Grades 3-4:
Introduction to Computer Science and Computational Thinking 1 This course introduces young children to the core ideas of computer science. Many key ideas of computer science are made accessible and engaging for this age group by presenting them as games. This course may be done without a computer, but the experience of the students can be enriched if computers are available. This lesson outline is (heavily) based on https://classic.csunplugged.org/ and https://code.org/educate/curriculum/elementary-school . • Lesson 1: Review of Sequencing and Loops, Conditions • Lesson 2: Trees • Lesson 3: Information Theory • Lesson 4: Searching • Lesson 5: Sorting • Lesson 6: Programming Languages
Grades 5-6:
Introduction to Computer Science and Computational Thinking 2 This is a natural continuation of the previous course. If the schedule allows, in theory, a 3rd grader who has completed the previous course can immediately start this course. There is no need to wait until the 5th grade, as long as the student is mature enough for slightly more abstract reasoning. A little bit of familiarity with algebra will be assumed for some parts of the course, in particular, the use of variables and functions, but students will likely be able to learn the concept even without having encountered it in math classes before as they will be presented using a visual programming language. Some parts of this course strictly require a computer while some parts don’t. This lesson outline is (lightly) based on https://classic.csunplugged.org/ and https://code.org/educate/curriculum/elementary-school . • Lesson 1: Functions • Lesson 2: Variables • Lesson 3: Introduction to Networks (Graph Theory) • Lesson 4: Finite State Automata • Lesson 5: Boolean Algebra, Constraint Satisfaction Problems
Grades 7-8:
Programming in Python Now that the student has “conceptually” learned most core computer science concepts and have done a little bit of programming in a visual programming language, they should be ready to do some “real” programming. Algebra is a pre-requisite for this course: students should already be familiar with the notions of variables, equations, inequalities, and functions. • Lesson 1: Introduction to Python, Input and Output, Primitives, Variables, Model of • Evaluation, Conditionals • Lesson 2: Lists, Strings, Iteration, Loop Invariants • Lesson 3: Functions, Principle of Abstraction and Modularity, Top-down Design • Lesson 4: Testing and Debugging • Lesson 5: Lambda Expressions and Higher-Order Functions • Lesson 6: Recursion
Grades 9-10:
Introduction to Algorithm Design 1 Having learned and mastered the basics of programming, students can now begin their journey into what is popularly called “competitive programming.” At this stage, they begin learning fundamental problem solving and algorithm design principles which are at the heart of computer science. Additionally, they also learn how to prove correctness and efficiency, and learn practical implementation with a programming language. • Lesson 1: Complete Search • Lesson 2: Asymptotic Analysis • Lesson 3: Modular Arithmetic • Lesson 4: Counting • Lesson 5: Divide-and-Conquer, Part 1: Binary Search • Lesson 6: Divide-and-Conquer, Part 2: Sorting and More Examples • Lesson 7: Introduction to Networks (Graph Theory) • Lesson 8: Network Exploration (Graph Traversal) • Lesson 9: Recursive Backtracking • Lesson 10: Dynamic Programming
Grades 11-12:
Introduction to Algorithm Design 2 This is a natural continuation of the previous course. If the schedule allows, in theory, a 9th grader who has completed the previous course can immediately start this course. There is no need to wait until the 11th grade, as long as the student is mature enough for analysis and proofs. This lesson outline is (lightly) based on a programming camp that we have already successfully held in the Philippines. • Lesson 1: Introduction to C++, Review of Binary Representation, Bitwise Operations, • Bitmasking • Lesson 2: Linear Data Structures • Lesson 3: Tree Data Structures • Lesson 4: Greedy Algorithms • Lesson 5: Shortest Paths • Lesson 6: Amortized Analysis, Two-pointers Method, Disjoint Set Union-Find

Collaboration

We will collaborate with Dr Valentina Dagiene’s team to develop CT skills and bring Strawbees and Be Creo’s product expertise to make learning come alive.  We will also incorporate NOI format questions to build higher informatics and programming capabilities in students.  We hope Dr CT will be a bridge to help prepare students to compete in NOI.

Practice Questions

Past Year Questions

Grade 1 and Grade 2 – Click here
Grade 3 and Grade 4 – Click here
Grade 5 and Grade 6 – Click here
Grade 7 and Grade 8 – Click here
Grade 9 and Grade 10 – Click here

Past Year Questions - Answer Key

Grade 1 and Grade 2 – Click here
Grade 3 and Grade 4 – Click here
Grade 5 and Grade 6 – Click here
Grade 7 and Grade 8 – Click here
Grade 9 and Grade 10 – Click here

Computational Thinking Practice Questions

Click here to access computational thinking questions.

1. Kits (P1 and P2)
2. Castors (P3 and P4)
3. Juniors (P5 and P6)
4. Intermediate (Sec1 and Sec2)
5. Seniors (Sec3 and Sec4)
6. Elite (JC1 and JC2)

Registration (Private Candidate)

Click here to register as a private candidate
Registration Deadline: 12th June 2020
Contest Date: 28th June 2020
Contest Time: TBC
Contest Venue: NUS School of Computing
Registration Closing Date: 8th March, 2020

Registration (School Candidate)

NOTE: ONLY SCHOOL TEACHERS CAN REGISTER FOR STUDENTS AS SCHOOL CANDIDATE
Contest Date Window: 23rd March to 31st July, 2020
Contest Time: Set by Teacher-in-charge
Contest Venue: Respective Schools
Click here to download registration form
Please send the completed form to admin@simcc.org

*PLEASE NOTE THAT SINGAPORE POLYTECHNIC HAS CANCELLED NSC 2020 DUE TO COVID-19*

NSC Schedule

Tasks Dates In-Charge Remarks
1. Email sent to schools
20th January 2020 (Mon)
Singapore Polytechnic
Via Email
2. Registration for Preliminary Round (DrCT)
3rd February 2020 (Mon)
SIMCC
DrCT
3. Registration close for Preliminary Round (DrCT)
8th March 2020 (Mon)
SIMCC
DrCT
4. Qualifying round starts (DrCT)
23rd Mar to 4th Apr 2020
SIMCC
DrCT
5. Results release to schools
20th April 2020 (Mon)
SIMCC
Via email
6. Sent Invitation package
30th March 2020 (Mon)
Singapore Polytechnic
Via email
7. NSC Training for students
27th May 2020 (Wed)
Singapore Polytechnic
Held in Singapore Polytechnic
8. NSC Final
30th May 2020 (Sat)
Singapore Polytechnic
Held in Singapore Polytechnic