Computer Science Canada

Compsci 101: what would you want covered?

Author:  wtd [ Mon Apr 28, 2008 11:01 pm ]
Post subject:  Compsci 101: what would you want covered?

What kind of topics would you like to see covered in an introductory computer science class, and why?

Author:  Mackie [ Mon Apr 28, 2008 11:15 pm ]
Post subject:  RE:Compsci 101: what would you want covered?

This is a great topic for me, I plan to teach everyone interested in computer science what I know. In a Computer Science Club, since the class was canceled...

I think that the basic components of programming should be taught. Such as loops, variables, I/O, procedures, functions, etc.. The very basics of computers should be taught as well, like binary, how computers solve math, things along those line. People need a solid foundation in the fundamentals of computers, so they can understand what's actually going on when they program.

Of course, proper naming conventions, clean code, and proper documentation should be taught.

These are my opinions at least. I would like a lot more emphasis put on computer science. I was devastated when I found out I couldn't take it. Just one of 24 classes canceled this year at my school. Thank god for independent studies.

I'd like to hear other people's opinions on this, as I'll be trying to teach people with the little knowledge I have.

Author:  Tony [ Mon Apr 28, 2008 11:19 pm ]
Post subject:  RE:Compsci 101: what would you want covered?

I'd like to see the scientific approach to be explicitly covered in an introductory computer science class. The whole

- make a hypothesis
- set up an experiment
- see what happens
- adjust, repeat

This should be done in a variety of scales, from "what does this line of code does?" to logical blocks (loops, functions, methods), to full algorithms.

I think this might help a lot with development, debugging, and examining code. At low-level, a compile/runtime error is a result that does not match the hypothesis, but there's a procedure in place to study and debug (rather than cry "I don't understand"). At high-level it's a definitive way to study complexity and explore how pieces of code interact with each other.

Author:  syntax_error [ Tue Apr 29, 2008 12:12 am ]
Post subject:  RE:Compsci 101: what would you want covered?

besides programming, I like how the IBs' have a very large hardware course added too.


http://en.wikibooks.org/wiki/IB_Computer_Science

^ saves me time.

Author:  jernst [ Tue Apr 29, 2008 6:51 am ]
Post subject:  Re: Compsci 101: what would you want covered?

My current favourite thing right now is algorithms, probably because I saw a talk at U of Toronto about them and how little we actually understand about them. So maybe some of these up and coming geniouses can figure it out Razz

Author:  HeavenAgain [ Tue Apr 29, 2008 7:52 am ]
Post subject:  RE:Compsci 101: what would you want covered?

I'll say programming design, like how to design a flexible program, so that people can write efficient and maintainable, and foresee some of the trouble they might run into before they actually go into the coding phrase.

Author:  raidercom [ Tue Apr 29, 2008 8:18 am ]
Post subject:  Re: Compsci 101: what would you want covered?

I'm going with Mackie here.
The basics, loops, decision structure, and CLEAN CODE.
I hate having to help people whose code flows everywhere.

Author:  Prabhakar Ragde [ Tue Apr 29, 2008 2:27 pm ]
Post subject:  RE:Compsci 101: what would you want covered?

"Loops, variables, methods"... there seems to be an implicit assumption that programming in an imperative OO language should be covered, which I would question.

Tony: the scientific method is a way of understanding a complex reality that we can't accurately model. CS, at least at the intro level, is an artificial digital world that we can model. Where the scientific method comes in is for parts of it that we can't model (large systems, networks).

Author:  Tony [ Tue Apr 29, 2008 3:36 pm ]
Post subject:  RE:Compsci 101: what would you want covered?

Well if it's an introductory course, then there's no guarantee that the students are able to accurately model what we can. And at that point, I would like a system to be in place that will encourage them to try again, instead of not being able to "get" that "one true solution" on their first try.

Author:  Sean [ Tue Apr 29, 2008 3:43 pm ]
Post subject:  RE:Compsci 101: what would you want covered?

Mackie, we still arranging this club, because some people still want to learn Turing and that. Hopefully we could get VB put on so they can learn the cirriculum?

Author:  Prabhakar Ragde [ Tue Apr 29, 2008 4:25 pm ]
Post subject:  RE:Compsci 101: what would you want covered?

Tony: the point is to give them something they can accurately model (hint: Java is not it). And, you're right, they need to be able to figure out what went wrong, but that should not involve experimenting, but reasoning about what they did versus what they thought they did.

Sean: is the point to learn computer science or to learn "the curriculum"?

Author:  Tony [ Tue Apr 29, 2008 5:11 pm ]
Post subject:  RE:Compsci 101: what would you want covered?

I change my vote in favour of "reasoning about what they did versus what they thought they did" Wink

Author:  btiffin [ Tue May 06, 2008 8:38 pm ]
Post subject:  Re: Compsci 101: what would you want covered?

This is a facetious answer;

Boolean Philosophy
Scientific Principle
Binary Arithmetics
John von Neumann
Alan Turing
Donald Knuth
Assembler
Forth
C
Lisp
Icon
Prolog

All the first day. Second class, start in with ASIC chip design and C++ optimizing compiler writing.

Serious answer;

Boolean Philosophy
Scientific Principle
Binary Arithmetic
John von Neumann
Alan Turing
Donald Knuth
Assembler
Forth
C
Lisp
Icon
Prolog

and take the whole year.

Cheers

Author:  A.J [ Tue May 06, 2008 8:57 pm ]
Post subject:  Re: Compsci 101: what would you want covered?

I say that you should start off with the basics, BUT you should pick it up a notch midway into something more complex (like recursive algorithms and DP) by first starting with basic examples, and working your way up to the harder problems.

best way to learn

Author:  syntax_error [ Tue May 06, 2008 9:12 pm ]
Post subject:  Re: Compsci 101: what would you want covered?

btiffin @ Tue May 06, 2008 8:38 pm wrote:
This is a facetious answer;

Boolean Philosophy
Scientific Principle
Binary Arithmetics
John von Neumann
Alan Turing
Donald Knuth
Assembler
Forth
C
Lisp
Icon
Prolog

All the first day. Second class, start in with ASIC chip design and C++ optimizing compiler writing.

Serious answer;

Boolean Philosophy
Scientific Principle
Binary Arithmetic
John von Neumann
Alan Turing
Donald Knuth
Assembler
Forth
C
Lisp
Icon
Prolog

and take the whole year.

Cheers


Where do I take such a course? and "Boolean Philosophy" LOL got to love that.

Author:  btiffin [ Tue May 06, 2008 9:34 pm ]
Post subject:  Re: Compsci 101: what would you want covered?

Sorry, I forgot the "and why" part

code:

Boolean Philosophy        fundamentals of truth, logic. set theory and paradox
Scientific Principle      knowledge of hypothesis, experiment, conclude and its importance
Binary Arithmetic         ability to think in ones and zeroes and why
John von Neumann          digital instruction storage, and quantum theory leading to the quantum tunnelling transistor
Alan Turing               basics of artificial intelligence
Donald Knuth              basics of sound provable algorithms and literate programming
Assembler                 why and wherefores of what really goes on
Forth                     threaded code
C                         high level languages with the readability and maintainability of Assembler
Lisp                      how discoveries can become code, pretty much overnight
Icon                      complex computing, generators, goal directed evaluation, pattern matching, coroutines
Prolog                    as the name says, programming in logic

and I'll add
OpenVMS       how OSes designed and implemented by engineers is better than slapping together computer cowboy code
GNU/Linux     why operating systems should be open, designed for developers and facilitate end users


And note; like chess, learning the rules does not necessarily mean mastery. Leave that for experience and growing wisdom

Cheers

Author:  btiffin [ Tue May 06, 2008 9:44 pm ]
Post subject:  Re: Compsci 101: what would you want covered?

syntax_error @ Tue May 06, 2008 9:12 pm wrote:

Where do I take such a course? and "Boolean Philosophy" LOL got to love that.
Home school? Smile

Take Philosophy 101 at Waterloo (umm, in the early '80s at least), and you will know where that expression comes from. Wink

Cheers

Author:  CodeMonkey2000 [ Tue May 06, 2008 10:46 pm ]
Post subject:  RE:Compsci 101: what would you want covered?

btiffin that looks pretty ambitious :S

I would probably start with teaching the class some basic high level language, then go into algorithm design and analysis (big O notation, DP, recursion, all that fun stuff). From there the course will be self driven, and less structured, focusing on what individual kids want out of the course. Some kids might want to go on with algorithms and mabey prep up for contests, while others might be more into game development and graphics.

Author:  michaelp [ Wed May 21, 2008 4:05 pm ]
Post subject:  RE:Compsci 101: what would you want covered?

I think that in a course, before any actual Computer Science is taught, or at least while it is taught, the basics of computers and their hardware should be taught, so that people know what is going on behind the scenes of their code.
Also, the language should be discussed and how it works. (For example, how the C++ compiling and linking process works)
And for the basics of programming, loops, if statements, control flow, etc.

Author:  wtd [ Fri May 23, 2008 1:08 am ]
Post subject:  RE:Compsci 101: what would you want covered?

For those who haven't gathered as much from my tutorials, I like to emphasize code organization, so I'd rather see functions handled before other control structures.


: