Comments on: Super Paper Programming http://compsci.ca/blog/super-paper-programming/ Programming, Education, Computer Science Wed, 30 Sep 2020 08:31:44 -0400 http://wordpress.org/?v=2.8.4 hourly 1 By: Getting ready for the Canadian Computing Competition | CompSci.ca/blog http://compsci.ca/blog/super-paper-programming/comment-page-1/#comment-122889 Getting ready for the Canadian Computing Competition | CompSci.ca/blog Fri, 30 Jun 2017 02:22:55 +0000 http://compsci.ca/blog/super-paper-programming/#comment-122889 [...] a pen and paper. Visualize the problem before you start coding. Try the sample input on paper and see if you understand exactly why the [...] [...] a pen and paper. Visualize the problem before you start coding. Try the sample input on paper and see if you understand exactly why the [...]

]]>
By: Tony http://compsci.ca/blog/super-paper-programming/comment-page-1/#comment-103909 Tony Sun, 27 Apr 2008 02:57:04 +0000 http://compsci.ca/blog/super-paper-programming/#comment-103909 @Darrell -- that would probably make for an interesting exercise. It would certainly take a lot of determination to write as much code, just on paper, but you are absolutely right in terms of it reinforcing some good habits. @Darrell — that would probably make for an interesting exercise. It would certainly take a lot of determination to write as much code, just on paper, but you are absolutely right in terms of it reinforcing some good habits.

]]>
By: Darrell Wright http://compsci.ca/blog/super-paper-programming/comment-page-1/#comment-103834 Darrell Wright Wed, 23 Apr 2008 18:47:19 +0000 http://compsci.ca/blog/super-paper-programming/#comment-103834 I remember in the 90's, yes I am dating myself here. But I had sold my C64 thinking I was getting an Amiga 500. That fell through and I was left in the position of having $500 and no computer. A few years later I got my first PC. It was difficult to program without a computer. So out came the graph paper (best kind for coding) and I wrote a notebook worth of software without code. The beauty of it was you literally get a feel for the code and it forces simplicity. No copy'n'paste only cut'n'paste if you really wanted. If you have to do it more than once, you put it in a method/function otherwise your hand cramped. As a side effect my code reads like an essay. And I write it like one. Start with an outlook at the highest level and do deeper. Simpler code, less code and only the last portions are generally low level. This keeps it portable and maintainable. I remember in the 90’s, yes I am dating myself here. But I had sold my C64 thinking I was getting an Amiga 500. That fell through and I was left in the position of having $500 and no computer. A few years later I got my first PC. It was difficult to program without a computer. So out came the graph paper (best kind for coding) and I wrote a notebook worth of software without code. The beauty of it was you literally get a feel for the code and it forces simplicity. No copy’n'paste only cut’n'paste if you really wanted. If you have to do it more than once, you put it in a method/function otherwise your hand cramped.

As a side effect my code reads like an essay. And I write it like one. Start with an outlook at the highest level and do deeper. Simpler code, less code and only the last portions are generally low level. This keeps it portable and maintainable.

]]>
By: Tony http://compsci.ca/blog/super-paper-programming/comment-page-1/#comment-81155 Tony Wed, 07 Nov 2007 07:26:14 +0000 http://compsci.ca/blog/super-paper-programming/#comment-81155 @Adam -- a problem doesn't have to be <em>"large"</em> to require a sketch. Sorting binary trees for example. It's not that big, it certainly doesn't come in modules. Though grasping the concept of what's happening to the tree's structure, entirely in one's head, is quite a challenge. Though the point still holds -- design should be taught early on. @Martin -- I get the vibe that people are struggling with Java, design, and just about everything else. CS134's withdrawal deadline has been postponed into December. @Adam — a problem doesn’t have to be “large” to require a sketch. Sorting binary trees for example. It’s not that big, it certainly doesn’t come in modules. Though grasping the concept of what’s happening to the tree’s structure, entirely in one’s head, is quite a challenge.

Though the point still holds — design should be taught early on.

@Martin — I get the vibe that people are struggling with Java, design, and just about everything else. CS134’s withdrawal deadline has been postponed into December.

]]>
By: Martin http://compsci.ca/blog/super-paper-programming/comment-page-1/#comment-81127 Martin Wed, 07 Nov 2007 04:52:46 +0000 http://compsci.ca/blog/super-paper-programming/#comment-81127 Cs246 baby! UML, OCL, design patterns and more. Although I get the vibe that people are struggling more with C than with the design. Cs246 baby! UML, OCL, design patterns and more. Although I get the vibe that people are struggling more with C than with the design.

]]>
By: Adam Mckerlie http://compsci.ca/blog/super-paper-programming/comment-page-1/#comment-81033 Adam Mckerlie Tue, 06 Nov 2007 22:04:46 +0000 http://compsci.ca/blog/super-paper-programming/#comment-81033 The problem is that the first couple years of Computer Science the programs that you're asked to write are easy (small) enough to do it without much thought. I'm in 3rd year and this is the first year that we have a program that is large enough that we actually need to design properly. I think that a design course should be done in 2nd year to get it drilled into the students heads that this is the proper way to code. We're currently writing modules for <a href="http://moodle.org/" rel="nofollow">moodle</a> and if we didn't design first we'd be lost. Design should be taught very early on because it's probably one of the most important parts of a program. If you don't design properly you're program could: 1) have a lot of bugs 2) be impossible to maintain 3) take a lot longer to program 4) cost a lot more The problem is that the first couple years of Computer Science the programs that you’re asked to write are easy (small) enough to do it without much thought. I’m in 3rd year and this is the first year that we have a program that is large enough that we actually need to design properly.

I think that a design course should be done in 2nd year to get it drilled into the students heads that this is the proper way to code. We’re currently writing modules for moodle and if we didn’t design first we’d be lost.

Design should be taught very early on because it’s probably one of the most important parts of a program. If you don’t design properly you’re program could:
1) have a lot of bugs
2) be impossible to maintain
3) take a lot longer to program
4) cost a lot more

]]>
By: Tony http://compsci.ca/blog/super-paper-programming/comment-page-1/#comment-81011 Tony Tue, 06 Nov 2007 20:31:20 +0000 http://compsci.ca/blog/super-paper-programming/#comment-81011 @neal, exactly! It's a very common thing for students to do, especially at the early state, when this is easily accomplished. Then problem, of course, is when the task requires some deeper analysis and thought. I've seen too many high school students just sitting there, unable to do anything on their own. @neal, exactly! It’s a very common thing for students to do, especially at the early state, when this is easily accomplished. Then problem, of course, is when the task requires some deeper analysis and thought. I’ve seen too many high school students just sitting there, unable to do anything on their own.

]]>
By: neal http://compsci.ca/blog/super-paper-programming/comment-page-1/#comment-79040 neal Thu, 01 Nov 2007 20:38:09 +0000 http://compsci.ca/blog/super-paper-programming/#comment-79040 I agree that many younger students are missing this. One of the hardest things to get beginning computer science students to do is actually think first. They want to get right into the code. At least at my school anyway. Give them a problem and the just sit there playing with the code until it works (or they think it works). Its a very ugly habit to get into. I agree that many younger students are missing this. One of the hardest things to get beginning computer science students to do is actually think first. They want to get right into the code. At least at my school anyway. Give them a problem and the just sit there playing with the code until it works (or they think it works). Its a very ugly habit to get into.

]]>
By: Tony http://compsci.ca/blog/super-paper-programming/comment-page-1/#comment-81007 Tony Thu, 01 Nov 2007 13:02:06 +0000 http://compsci.ca/blog/super-paper-programming/#comment-81007 @John, I didn't mean that pseudocode itself is bad -- it's not. I just never was a fan of paper exam questions that ask to write code. Pseudocode could certainly be used along with the sketch, to allow for a new level of detail. @John, I didn’t mean that pseudocode itself is bad — it’s not. I just never was a fan of paper exam questions that ask to write code. Pseudocode could certainly be used along with the sketch, to allow for a new level of detail.

]]>
By: John Casey http://compsci.ca/blog/super-paper-programming/comment-page-1/#comment-78981 John Casey Thu, 01 Nov 2007 13:01:06 +0000 http://compsci.ca/blog/super-paper-programming/#comment-78981 Writing pseudocode is never bad. Steve McConnell advocates writing pseudocode before writing real code. When writing pseudocode, you don't have to worry about the implemenation details right away. You can use the pseudocode as comments. Writing pseudocode is never bad. Steve McConnell advocates writing pseudocode before writing real code. When writing pseudocode, you don’t have to worry about the implemenation details right away. You can use the pseudocode as comments.

]]>