CSC300 / CSC402: How to succeed in CS

Contents [0/10]

How to write code [1/10]
Work in pieces [2/10]
Start in the middle [3/10]
Principled debugging [4/10]
Homework [5/10]
Familiarity != Understanding [6/10]
Once is not enough [7/10]
Everyone can program [8/10]
Why is programming fun? [9/10]
Some Inspiration [10/10]

(Click here for one slide per page)


How to write code [1/10]

The amount of time spent on a function does not amount to much.

Understand the problem!

If you are not working effectively, you can spend months on a single function and never get it correct.

So how do you work efficiently? Key things:

Work in pieces [2/10]

Don't code everything at once.

Start in the middle [3/10]

For any repetitive process, start in the middle!

Principled debugging [4/10]

When your code does something unexpected:

Homework [5/10]

Getting the homework correct is not enough! You must internalize the solution.

Familiarity != Understanding [6/10]

From the Chronicle of Higher Education:

People often mistake familiarity for understanding.

They open the textbook after getting home from a lecture, and they recognize the material.

They think: I get this!

Then they take a test -- and bomb it.

Once is not enough [7/10]

You need to learn patterns of thought.

You need to learn patterns of programming.

This course is for learning patterns of thought involved in programming.

Imagine you are learning to play piano...

Everyone can program [8/10]

Think about programming as a play experience.

The only way to become a good programmer is to do it!

Why is programming fun? [9/10]

An extract from The Mythical Man-Month Fred Brooks, edited slightly:

Why is programming fun? What delights may its practioner expect as their reward?

Programming, then, is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all people.

Some Inspiration [10/10]

I like this TED talk from Eduardo Briceno: