[CLUE-Talk] Introduction to Computer Science Course

Young, Ed Ed.Young at echostar.com
Mon Feb 19 18:51:20 MST 2001


Wow! Inspiring!

You're stepping out of the box, as they say these days, and that is very
admirable. It is also IMHO, sorely needed in CS cariculae, cariculum,
whatever. My suggestion may not fit for the particular class in mind, but it
should either be a class all by itself, or a large part of another course. 

My .02:
I believe that learning to decompose a problem in to simpler parts and
defining layers and components of the problem is one of the most important
skills in any problem solving undertaking. I don't believe that this is
realy well presented in many cariculae. Once a language is learned, many
think that jumping in a coding is the thing to do. Learning to first
understand the problem at hand and the solution's requirements are too often
disregarded as obvious or implicit. 

1. I think excercises in discussing increasingly complex problems and
identifying what constitutes a solution to that problem is an extremely
valuable skill, and possibly more important than being able to write an
entire grammar in one obfuscated "for" loop. For simple problems, hacking
out something that works if fine. For more complicated problems things have
to be better understood. Both to reach a solution, and to ensure that the
implementation is maintainable if things change. 

2. Once the problem is well defined and understood, and the solution's
requirements equaly well defined and understood, then learning how to
simplify the problem into it's layers and components makes the problem more
manageable. Defining the layers boundaries, also makes the problem more
clear and easier to implement. It's also a good team excercise since the
parts can be distributed amongst a group, and the process can generate a
lively discussion. 

I wish this sort of thing went on in industry,more.

As a graduate of a CS engineering cariculum, I learned to program early. It
was much later that I learned to first understand the problem. (sorry if
that sounded a little too contrived)

Good Luck, 

Ed


> -----Original Message-----
> From:	Roger Frank [SMTP:rfrank at rfrank.net]
> Sent:	Monday, February 19, 2001 4:04 PM
> To:	clue-talk at clue.denver.co.us
> Subject:	[CLUE-Talk] Introduction to Computer Science Course
> 
> I teach in mathematics and computer science in high school.  Next fall, I 
> will be teaching a new one-semester course I'm starting to develop now
> called Introduction to Computer Science.
> 
> A quick look around the Internet shows that "Intro to CS" in high school
> is usually a beginning programming course.  We've had such a course,
> and we've gotten students who want to learn how to program.  Classes
> have been small, but students coming out of the old Intro course often
> went on to Advanced Placement Computer Science and have done well.
> 
> I do not want the Intro to CS course to be a programming course.  To do
> so is to teach the same course I took in the 60's, only the language then
> was Fortran, not C++ or Java.  Computer Science in 2001 has to be 
> much more than learning how to program.
> 
> I do want the course to be an entry level course that any student can
> take.  Today's students are going to be living in a complicated cybernetic
> world with difficult issues to face and decisions to be made.  Perhaps
> this course will be the only computer course some of these students will
> take.  If so, then teaching them to program in C++ was not the best use
> of their time with me.  I think the Intro to CS course should have some 
> programming so a student can decide whether he or she wants to 
> continue with more advanced computer courses.  But there needs to be
> a lot more than just the fundamentals of programming in the syllabus.
> 
> That's where I'd like your suggestions.  Imagine you are enrolling in your
> first computer course, or imagine your son or daughter had just signed up
> for Mr. Frank's Intro to CS course.   What would you hope he would cover
> in the class?  Remember the goal is not necessarily to have every student
> go on to become a computer scientist of engineer, but they sure should
> come
> out with an understanding of what computers and computer science are
> all about.
> 
> To prime the pump, here are some topics that I am considering:
> 
>  - computer history (modern, so we can see how we got here)
>  - computer future (where should/can we go and not go?)
>  - ethics and legal considerations  (Gnapster and beyond)
>  - privacy  (safeguarding, identities)
>  - cyber-terrorism (national, individuals)
>  - Artificial Intelligence (including fuzzy logic, genetic algorithms)
>  - Artificial Life (Boids, development and applications)
>  - man-machine integration (direct-connect, muscular; optical)
>  - nanocomputing (airborne, bloodstream)
>  - hardware ("Let's take the covers off these computers...")
>  - software (a little programming in Karel, Java, maybe HTML and Python)
>  - careers in computer science
> 
> I'd appreciate any suggestions of other topics that might fit in this
> course.
> This fall, we have filled all sections that were offered, so this course
> will
> happen.  I have about 5 months to pull it together and make it what these
> students deserve it to be.
> 
> Besides, it won't be too many years before I'll be sitting on a porch in a
> rocking chair and today's bright-eyed 16-year-olds will be in charge.  
> I want to know I taught them more than just how to program in some
> then-extinct language.  In 2001, I believe there is more to 
> "Computer Science" than just programming, so what else should
> be in there?
> 
> To keep from cluttering the list, reply directly to me rfrank at rfrank.net
> and I will post a one-time summary of all suggestions.  Many thanks.
> 
> -- 
> Roger Frank
> www.linuxclassroom.org
> _______________________________________________
> CLUE-Talk mailing list
> CLUE-Talk at clue.denver.co.us
> http://clue.denver.co.us/mailman/listinfo/clue-talk



More information about the clue-talk mailing list