Repository: uccser/cs-unplugged

Issue:
Add error correction and detection programming exercises
# Progress

## Lesson 1 (Parity):

- [x] 1.1
- [x] 1.2
- [x] 2.1
- [x] 2.2
- [x] 3.1
- [x] 4.1
- [x] 4.2
- [x] 5.1
- [x] 6.1

## Lesson 2 (Product codes):
- [x] 1.1 (12 digits)
- [x] 1.2
- [x] 1.3
- [x] 1.4
- [x] 1.5
- [x] 1.6
- [x] 2.1 (13 digits)
- [x] 2.2
- [x] 2.3
- [x] 2.4
- [x] 2.5
- [x] 2.6

## Other challenges:
- [x] 1.1
- [x] 1.2
- [x] 2.1
- [x] 2.2

# Issues encountered:

- Parity Challenge 1.1 and 2.2 had the learning outcome:
  > Explain how to use an if statement to perform an action based on a condition.

  but this wasn't available. The following learning outcome has been used instead:

  > Identify when to use an if statement to check a set of conditions.

- For Parity 3.1, 4.1, and 4.2 the following learning outcomes are not available:
  > Explain what the “Mod” operator does in your program.

  > Explain the difference between an if else statement and an if statement and how you have used them in your program.

- Parity 4.2 updated input/output tables to be consistent.

- Parity 5.2 and 6.1 doesn't have the learning outcome:
  > Identify when to use a list to store a set of data.

- Product codes (12 digits) 1.2 the following learning outcome is not available:
  > Explain what the “Mod” operator does in your program.

- Product codes (12 digits) 1.3 and 1.4 the following learning outcomes are not available:
  > Describe how a nested statement works in relation to your program.

- Product codes (12 digits) 1.5 the following learning outcome is not available:
  > Demonstrate how you used a loop to have statements executed the necessary number of times

- Product codes (12 digits) 1.4 and 1.6: Renamed titles to be consistent with others.

- Product codes (13 digits) 1.1 and 1.2 (didn't check from then on) has **different** learning outcomes to 12 digits exercises. I have kept the 12 digit learning outcomes.

- Some output has full stops, and some don't.

- Testing examples were hard to display in some cases, so are displayed in panels.

- Should product code 'any length' be the final exercise?


Discussion:

Resolving patch:
diff --git a/csunplugged/topics/migrations/0062_auto_20170609_0424.py b/csunplugged/topics/migrations/0062_auto_20170609_0424.py
new file mode 100644
--- /dev/null
+++ b/csunplugged/topics/migrations/0062_auto_20170609_0424.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.2 on 2017-06-09 04:24
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('topics', '0061_merge_20170603_0408'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='learningoutcome',
+            name='slug',
+            field=models.SlugField(max_length=80, unique=True),
+        ),
+    ]
diff --git a/csunplugged/topics/models.py b/csunplugged/topics/models.py
--- a/csunplugged/topics/models.py
+++ b/csunplugged/topics/models.py
@@ -57,7 +57,7 @@ class LearningOutcome(models.Model):
     """Model for learning outcome in database."""
 
     #  Auto-incrementing 'id' field is automatically set by Django
-    slug = models.SlugField(unique=True)
+    slug = models.SlugField(max_length=80, unique=True)
     text = models.CharField(max_length=200, unique=True)
     curriculum_areas = models.ManyToManyField(
         CurriculumArea,


Test patch: