New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include AP CSP curriculum guides #316

Merged
merged 10 commits into from Oct 5, 2016

Conversation

@JackMorganNZ
Member

JackMorganNZ commented May 6, 2016

Do final checks on work by @jamesatlas to include in CSFG.

Proof reading to be done by @timbellnz @JackMorganNZ.

I can work on solving the merge conflicts.

@@ -682,6 +682,38 @@ The following interactive can be used to upload your own image, and experiment w

This comment has been minimized.

@Heidirose

Heidirose May 6, 2016

Contributor

This section is obviously going to merge conflict, can it please be put after the colour section, seeing as it is very advanced material, and I don't want it freaking out the NCEA students?

Another thought I have is, it will need to reference the content in the programming languages chapter, which gives an introduction to machine code. That chapter will help them understand what machine code is and how it relates to higher level programs, and then this content explains how it is represented using bits.

@Heidirose

Heidirose May 6, 2016

Contributor

This section is obviously going to merge conflict, can it please be put after the colour section, seeing as it is very advanced material, and I don't want it freaking out the NCEA students?

Another thought I have is, it will need to reference the content in the programming languages chapter, which gives an introduction to machine code. That chapter will help them understand what machine code is and how it relates to higher level programs, and then this content explains how it is represented using bits.

This comment has been minimized.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

So the new order would be:

  • What's the big picture?
  • Getting Started
  • Numbers
  • Text
  • Images and Colours
  • Program Instructions
  • The whole story!
  • Further reading
@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

So the new order would be:

  • What's the big picture?
  • Getting Started
  • Numbers
  • Text
  • Images and Colours
  • Program Instructions
  • The whole story!
  • Further reading
@JackMorganNZ

I've made some comments about the changes we should make to James's work before merging in. There are many conflicts as James's work was based off an old version of the CSFG (about 1 year old).

@@ -108,6 +108,10 @@ But here's another program that implements exactly the same algorithm, this time
{image filename="highscore-in-scratch.png" alt="High score program in Scratch"}
Both of the above programs are the same algorithm.
Programming languages are often created or adapted to express algorithms clearly for a specific problem domain.

This comment has been minimized.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

The language of these sentences are quite technical (2K words) compared to surround text. Would be worth considering alternatives.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

The language of these sentences are quite technical (2K words) compared to surround text. Would be worth considering alternatives.

This comment has been minimized.

@Heidirose

Heidirose Sep 26, 2016

Contributor

From my experience, K2 words are fine, and realistically you need them. But non jargon K3 can generally be replaced with simpler words.

@Heidirose

Heidirose Sep 26, 2016

Contributor

From my experience, K2 words are fine, and realistically you need them. But non jargon K3 can generally be replaced with simpler words.

This comment has been minimized.

@JackMorganNZ

JackMorganNZ Sep 27, 2016

Member

Move this section to the 'What makes an algorithm section'

@JackMorganNZ

JackMorganNZ Sep 27, 2016

Member

Move this section to the 'What makes an algorithm section'

@@ -108,6 +108,10 @@ But here's another program that implements exactly the same algorithm, this time
{image filename="highscore-in-scratch.png" alt="High score program in Scratch"}
Both of the above programs are the same algorithm.
Programming languages are often created or adapted to express algorithms clearly for a specific problem domain.
For example, it is easier to read mathematical algorithms in Python than Scratch.
Similarly, data flow algorithms are clearer in visual programming languages like LabVIEW than Python.

This comment has been minimized.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

The terms data flow algorithms and LabVIEW would be uncommon for (NZ) students.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

The terms data flow algorithms and LabVIEW would be uncommon for (NZ) students.

If we develop or are given an algorithm to solve a problem, how do we know that it works?
Sometimes we create test cases to verify the algorithm produces correct output for specific input values.
While this is a useful practice and can help verify that we are on the right track, it is not enough to show that our algorithm is correct.
The old adage "even a broken watch is correct twice a day" is a good analogy.

This comment has been minimized.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

Change adage to saying

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

Change adage to saying

Correctness is particularly important when comparing two algorithms that solve the same problem.
If one algorithm is very fast to complete but produces incorrect results some of the time it may be far less useful than a correct algorithm that is slower.
Correctness is also important when using an algorithm as the building block for another algorithm.
Here is a greedy algorithm for roommate assignment:

This comment has been minimized.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

The concept of roommates would be unfamiliar to New Zealand students. Possible consider alternative scenario.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

The concept of roommates would be unfamiliar to New Zealand students. Possible consider alternative scenario.

@@ -139,6 +143,29 @@ The amount of time a program which performs the algorithm takes to complete may
The number of operations (such as comparisons of data items) that an algorithm makes however will not change depending on the speed of a computer, or the programming language the program using the algorithm is written in. Some algorithms will always make the same number of comparisons for a certain input size, while others might vary.
### Algorithm Correctness

This comment has been minimized.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

We need to confirm the right position for this section.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

We need to confirm the right position for this section.

@@ -352,13 +379,103 @@ There are dozens of sorting algorithms that have been invented; most of the ones
{video url="http://www.youtube.com/watch?v=kPRA0W1kECg"}
## What makes an algorithm?

This comment has been minimized.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

Heading should be capitalized to be consistent with other headings.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

Heading should be capitalized to be consistent with other headings.

@@ -682,6 +682,38 @@ The following interactive can be used to upload your own image, and experiment w
{comment end}
## Representing program instructions with bits
In a similar fashion to representing text or numbers using binary, we can represent an entire actual program using binary.

This comment has been minimized.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

Add note here to recommend reading sections of the Programming Languages chapter.

@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

Add note here to recommend reading sections of the Programming Languages chapter.

@JackMorganNZ

This comment has been minimized.

Show comment
Hide comment
@JackMorganNZ

JackMorganNZ Sep 26, 2016

Member

Note: I am in the process of manually merging this PR.

Member

JackMorganNZ commented Sep 26, 2016

Note: I am in the process of manually merging this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment