View this PageEdit this Page (locked)Attachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

What should a non-majors CS1 class look like?

Folks, can we turn the tables here, and let me ask the questions rather than provide answers?

I'm working on designing a new CS1 class, an alternative to CS1321. We're calling it Introduction to Media Computation. The main ideas of the course are:
The idea is for the course to focus on projects like synthesizing and manipulating sounds, doing Photoshop-like filters on images, and doing video effects (like putting a movie of yourself on the moon). I'm hoping that the assignments can be more open-ended and allow for more creative expression than traditional CS1. Along the way, we can introduce CS ideas while building and manipulating real media.

I'm aiming this class at non-majors, and maybe CS majors who are turned off by CS1321. It's probably not even a class for Engineers who strongly want a MATLAB and number-crunching focus in CS1. I hope it's a good fit for Ivan Allen College (e.g., LCC) students, Management, and Science students.

I'm trying to get feedback on the idea, and on the language for the course. I'm mostly interested in getting feedback from the kinds of students who might take such a course.

Do you know first and second year students around here WHO ARE NOT CS MAJORS? Could you ask them to visit this page and answer some of these questions?
THANKS!
Mark Guzdial




TO VISITORS OF THIS PAGE

Thanks for participating! You're welcome to answer everything anonymously. Feel free to contact me at guzdial@cc.gatech.edu with any questions.

Type in an answer and hit "Add to this page" BEFORE going on to the next question, please.

P.S. I'd like to be able to share your comments on this page with others interested in the design of an alternative CS1 class. If you don't want me to share your comments, please just say so and I won't.


1. What's your major (so I get a sense of what majors are represented by these answers)?



chemical engineering

Management; former CS major

Science Technology and Culture

Psychology/Premed

International Affairs

Marketing

History Technology and Society

Chemistry

Biology

INTA

IAML

mechanical engineering

Industrial Design (College of Architecture)

HTS

management

management

IAML

Management

IAML-Spanish

Mechanical Engineering

Chemical engineering

biomedical engineering

Industrial Design


Industrial Engineering

Biology

Chemical Engineering

Material Science Engineering

computer science

EE + CS



2. What do you think about the idea of an "Introduction to Media Computation" course? Does it sound motivating? More so than CS1321?


YES!!

It sounds a lot more interesting than CS1321. I think a lot of people would take it if it were offered.

Great Idea. Sounds more interesting and useful than CS1321.

Yes, I know a lot of people who are waiting for an Ivan Allen CS class to come out because they have heard bad things about Scheme.

Sounds good to me.

An alternate to CS1321 would be very nice.

Sounds great

yuppers

Great Idea. Sounds more interesting and useful than CS1321

yes it does!

The class seems a more relevant to reality than say, scheme.

Absolutely... useful and interesting

YES!!! PLEASE!!!

I have been waiting for a management CS, or just anything that doesn't require so much coding b/c I don't think that coding is going to help me very much in the business world.

i guess so, i have to take a computer course and if it is practical and i can apply it to work in my field of study then i would enjoy it

it sounds MUCH more practical than scheme, which as an IAML major i will NEVER EVER use again, and so it was a huge waste of my time. a practical computing class would increase the breadth of my degree, as well as my marketable skills.

This topic sounds like it would be more interesting and more practical than Scheme. Hopefully I'll be able to use this within my major field of study since I wouldn't be able to with Scheme.

it sounds MUCH more practical than scheme, which as an IAML major i will NEVER EVER use again, and so it was a huge waste of my time. a practical computing class would increase the breadth of my degree, as well as my marketable skills.


It sounds much less daunting and much more practical and beneficial to non CS majors. I think the basics of programming are very helpful to know, especially for engineering majors, but there are other computer programs that we need to know as well.

Sounds wonderful and somewhat interesting. It would probably make me feel more worthwhile than 1321 does.

It is much more logical than the current system.

It sounds good. Maybe you could incorporate some useful computer programming that some engineering majors would use in the real world. I think the class still needs to be hard to distinguish people that are good with programming, those that work hard and those that don't care because it is not their major.

Better than current for management & INTA


Yes

what is meant by "media computation"? computation is a term that is well grounded in cs theory. when we speak of computation, this suggests images of turing machines, push-down automata, and decidability questions. how does media relate to computation? true; on some primitive level specific algorithms exist for any media application. however, is that the focus of a course designed to replace cs1, for non-technical (read: non-cs/math) people? i would think you would lose many people if you were to even begin discussion of fast-fourier transforms and the like on graphics, and the mathematical aspects of signal process with respect to manipulation of sound files.

if such a course is directed towards discussing the formation of algorithms for media applications, then it seems like a very good substitute for cs1; that is, the goals of cs1 are not lost, merely presented in a different setting.

however, this isn't the impression i get from reading the comments on this page.

Yes. DSP. Good.



3. Are the open-ended and creative assignments a draw for you, or not so important?


a draw, it allows a freedom to be creative and experiment with differnt media.

Yes and I think more people would appreciate that they can be creative rather than having a specific way of doing assignments.

a draw, there are alot of creative kids here who would like another outlet to express themselves, rather than writing standard code

It's a draw, but at the same time not so important because I know people will take the class just because it is an alternative to normal CS1.

No. I despise being creative. Creativity gets in the way of logic.

Creativity is something that is hardly ever encouraged at Tech, so an opportunity to show it would be great.

Well, if its a person who is not that familiar with Cs stuff like me it would be nice to have some guidelines.

Well, if its a person who is not that familiar with Cs stuff like me it would be nice to have some guidelines.


if a person doesn't know a sigle bit about CS, such as myself, guidelines are imparative if one wishes to succeed in the class.

It should be open-ended but with enough direction to avoid ambiguity, confusion, and misunderstandings.

Creativity is very nice, but it can be very hard if there are too many or too few guidelines... you may want get ideas from teachers who are good at giving creative assignments if that is not one of your strengths.

I would like the opportunity to have a creative assignment, but I think that it is important that the class gives me the proper background first so that I don't feel as if I have no idea what I can do with the project.

a creative assignment sounds good

if it's material i'm familiar with then yes, but if, like in scheme, i have no idea what i was doing because the teacher couldn't teach and the TA couldn't help, it would not be good to have assignments that are too open-ended

It should be open-ended enough to explore personal creativity, but not so open-ended that it would cause major ambiguity and confusion amongst students. It should allow for more help from the TA because they can only help to certain extent, which doesn't usually help anyway.

Creativity is something that is hardly ever encouraged at Tech, so an opportunity to show it would be great.

Open ended assignments would be of great benefit to the students to allow them to explore an area that would benefit them in their course of study. (i.e., Mechanical Engineers could test the waters with AutoCAD or MATLAB)

It is only a benefit if the wherewithal to be creative is provided. If the techniques are present in the class setting and are left up to students to combine into a project, it would be a draw. If students are required to come up with new techniques, it might be somewhat of a turnoff.

Creativity is vital in the changing industry of engineering

Creative sounds good, but specific requirements still need to be paired with the variety of topics. Not everythihg is going to be totally optional in our lives. Give us some outlines and allow us to be creative within those boundaries.

Not so important to me... takes up too much time.

creativity and exploration is, at best, difficult in a timed setting. it makes no difference if it is an in-class, a two-week, or a semester project. each individual person has a different degree of creativity. it would take some people the entire semester to come up with something others could do in 50 minutes.

how would this course cater to every individual's creative "groove"? if this course is an alternative to cs1, you could have 400 or more people taking the course. that's a lot of personalities and styles of thought to deal with. how do you even begin to judge creativity, once an assignment is finished?

the reality check is that creativity is an essential part of any assignment given, regardless of having the prefix "creative". to impose it, and to grade it, seems like a very infeasible, futile, and misdirected approach towards computer science.

Yes.



4. A big issue for me is choice of language. I'm considering (a) a form of Scheme with multimedia extensions, (b) Python (http://www.python.org) which looks like a traditional language but can do multimedia well, and (c) Java, which is much more complicated, but can do multimedia. Which would you prefer of these three? Or is there another language that you'd prefer to learn?


Matlab, more useful for engineering students.

anything that can be related to a more media based usage.

I loved Pascal but I'm sure it's too old school to handle multimedia. :) Python sounds like the next best alternative.

media based

If you are basing this around the idea of an Ivan Allen class, either Python or JAVA, so that they will know what normal code looks like


Umm... no clue.

i dunno

Umm... no clue.

i haven't a clue, it's all greek to me.

Is it even necessary to have any of those? Personally, html was pretty self-explanatory but I would rather not have to code anything if that's possible.

I think it is important to pick the language that will have the most use for non-CS majors... I don't know what that is... is there one?

I really don't know much about languages, but I would like one that seems practical in other situations besides this CS class.

i am not a computer person, so whichever is easier to comprehend

in-depth HTML or XML, practical for anyone in the near future.

I don't know about languages, so whichever language is most practical, would be used in the future [not just by CS or Comp E students], and is the least difficult to pick up. I know that very few students will want to put effort into a language that they can't figure out and that the TA can't even help with, so whichever is the most user friendly would be my choice.

I don't know about languages, so whichever language is most practical, would be used in the future [not just by CS or Comp E students], and is the least difficult to pick up. I know that very few students will want to put effort into a language that they can't figure out and that the TA can't even help with, so whichever is the most user friendly would be my choice.

I would vote for scheme b/c there are already people who have taken CS this semester and could help, however Python sounds more useful. I don't believe Java would be appropriate, especially for first year students, to learn because of the difficulty it presents.

No scheme! Java or Matlab. Please!

Scheme is not used anywhere, I know it is apparently easier to teach, but please use a system that will benefit us later. Java would be helpful. Incorporate HTML and Autocad also, that would help us with future jobs and projects.

Matlab - for Engineering. Scheme is useless to learn, when matlab is used in the workforce!

I'm not sure, probably an language that is easy to understand by someone who has never done anything with CS before ever.

from the comments above, most people a) don't want a language; b) prefer something "practical". here's my two-cents on those points:

a) to be honest, from what the course is described to be, what language is needed? you don't need to know how to program to be able to apply a photoshop filter, or edit a sound file in some application. all the tasks described can be accomplished through point-and-click, without the need to ever touch the keyboard. is this what forms a foundation for algorithmic thinking, fundamentals of computer architecture, and basics of logical expression?

of course, i think the real reason students resist having to learn a programming language is because it's work. you have to sit down, and figure out something you've probably never seen before in your life. it takes time, and it can be frustrating. having been a ta for cs1, i know this to be true. i also understand the mind of a freshman. i was one myself at some point. in part, i feel the attitude is cultivated by the stigma that is still attached to computer lovers, and the lack of attention given to computers in high school. it's amazing that typing and basic computer knowledge isn't a standard part of lower/middle school cirriculums across the nation right now.

it's no surprise that somebody who can't type or doesn't understand the different between a hard drive and a cdrom drive would not be inclined to learning a language. it's all just driven by fear of the unknown; and the early encouragement needed to dispel that fear just isn't there.

b) alright. suppose georgia tech does you an injustice and refuses to teach you a practical, industry standard language, for the field for which you wish to work in.

you apply for a job, you're hired on the spot, and come in to work the first day. the boss knocks on your cubicle, and says: "learn MATLAB in a week, to work on a project that's due the week after."

do you shake your fists at the fates, curse tech, and flee your place of work, head in shame, to wander the shadows the rest of your life?

no, if you have even a shred of self-worth. the most likely response is you sit down, and learn MATLAB, and work on the project, and meet the deadline. because in the end, you need that paycheck to feed yourself.

i could understand this argument if the purpose of cs1 was to teach a skill. that's not the point. the point is to learn and understand the computer beyond just "here is the start menu..."; the point is to enhance logical thinking. that's not to say MATLAB, HTML, or python can't do it. but the spirit of the course moves in the wrong direction.

just to tack on another point, what happens if you switch majors? that "practical" language when you were an engineer serves you no good now that you're a stac major. should have known to take the HTML class! the reality is that most people switch majors, at least once. so, if a language is to be used, why not use a language that can explore concepts central to all languages, so that it doesn't matter what happens to you in the future...given the chance, with the understanding of the fundamentals, you can program in any language.

jython is a gross hybrid. squeak is obscure- everyone has seen java-like languages before. Granted, it is Good(tm), but that matters not to most.



5. Finally, what would YOU like to be able to do when you get done with CS1? Do you want to be able to program? Or just understand how programs are done? Or just complete the Core Area B requirement? :-) If you want to be able to program, what kinds of things?


i would like to be able create better web pages, and use other formats like flash to create and enhance other classes,and projects.

Flash would be a definite plus! Programming wouldn't be as much of a focus; more of understanding programs and being able to do different multimedia effects would be useful.

a bit of programing, more understanding how they are done

Basic understanding of how programming works, but definitly more efficient and impressive use of websites

I'd just like to have a better understanding of how programming works.

Definitley just a basic understanding of programming (and hopefully some useful applications).

Able to program like simple stuff like smiley faces or little game s or soemthing easy like that

i would like to be able create better web pages, and use other formats like flash to create and enhance other classes,and projects.


i think a basic knowledge would be good, but anything in addition that would help students be more productive in other classes is ideal, that way you can't necessarily say CS is useless if you aren't a CS major

Extremely basic coding would be useful to impress my parents with but otherwise I would rather leave with an understanding of how to use media and video programs rather than a specific coding language.

I would rather learn how to use basic programs (like the ones taught in lab... excel, access) more in depth than how they work.

I would like to be able to create a web page, and just have a basic understanding of programming. I would prefer that the knowledge gained would help me excel beyond this class, perhaps in a business setting.

i just want to complete the requirement without stressing because the class has nothing to do with my major

i would like to be able to put together a professional-level website, and know how to use MS programs (excel, powerpoint, word) proficiently - these are the skills i will need in my career, NOT scheme.

I just want to complete the class because it is required, but I don't want to have to put all of my energies into one class that will have no impact on me whatsoever and have no corrolation to my major. As long as I don't feel like I'm wasting my time in and out of class, I don't care what the curriculum intales.

I just want to complete the class because it is required, but I don't want to have to put all of my energies into one class that will have no impact on me whatsoever and have no corrolation to my major. As long as I don't feel like I'm wasting my time in and out of class, I don't care what the curriculum intales.

and for the record....on the last answer for #5...the word that is spelled "intales" is horribly misspelled–the correct spelling is ENTAILS.

I'd like to be able to program to utilize Excel, know the basics of how programming is structured, know a little more than the basics of MATLAB and Maple, and learn html to create the webpage. A little bit of database instruction would be helpful, too.

Make a webpage, use Flash, Matlab (well), a little Java..no scheme or psuedocode.

Creating a webpage (an active one, not with simple requirements cs 1321 requires), use autocad and program basic functions with Java. Nothing too complicated. The majority of people that must take cs will never program ever again. Why waste a semester on something you will not use again.

MATLAB & HTML & EXCEL & Understanding of programming.

I just want to complete the core requirement. Learning how to program or knowing anything about programming really isn't important to me and doesn't pertain to my major really at all.

after taking cs1 (psuedocode), i had a better understanding of what computation is and isn't, what entails good programming, and how a problem can be solved using a model of the problem. calculus and physics already run through the latter, so the algorithm (from cs1) serves as yet another method of solution, just like the calculus, the differential equation, the matrix, and the system of equations.

I want to make animutations with oogly eyes that really irritate everyone that sees them.



6. Any general comments or questions?


I think it sounds like a great idea, and would have really loved to have take something similar.

Sounds really interesting; Too bad I'm graduating; I would love to stick around to have the opportunity to take it.

Sounds like a great class and a great alternative to the CS requirement. Makes me wish I had waited to take it.

Best of luck.

I hope this works out. Any idea of how soon it would be offered?

Good luck people

I think this is a good idea and i wished i'd had the opportunity to participate in this instead of cs 1321

I think this sounds great, the one problem that i am worried about if this class were to be added to the curriculum is the amount of spots open during registration. everyone i know dreads taking the CS courses that are available now, and they'd jump at the chance to take this so it would fill up very quickly. Other than that, I think it is an absolutey fabulous idea and you have my support 100%!! GOOD LUCK!

Even though I have already taken the dreaded scheme class and survived with just a few scars, I think that what you are doing is necessary and you have my support! Good luck.

I think this is a great idea, but I would rather see each college come up with a Core B fulfillment that would work for each major... I think that would work the best and help the most people out.

I think that there should be a Core B fulfillment for management, inta, and ivan allen majors whose main interest isn't computer programming. If i wanted to know that much about computers i would be a CS major!

I agree with the comment above. I don't want to learn to program because that's not my interest. I'd rather learn the ins and outs of Excel because I know that that would be more beneficial to me in my field of study. I do, however, think that this alternative to CS1321 is a good idea.

cs 1321 raped me - and i'm an iaml major! it would have been nice to have a class a)that interested me, or was at least halfway pertinent to my major, and b)in which i could get some SEMBLANCE of help, instead of my TA telling me that he can't help me with my homework because its against the anal-retentive honor code. i think this new class is a great idea, as long as there is help available and as long as it is pertinent to the majors of the students taking it.

I think that there should be a Core B fulfillment for management, inta, and ivan allen majors whose main interest isn't computer programming. If i wanted to know that much about computers i would be a CS major!


Students that need matlab should be in a CS class that focuses more on matlab. BUt please, actually teach it. There are no classes that teach Matlab. ECE 2025 expects you to know it. Don't put INTA or Mgt majors through that though.


Students should be able to work together!!

If there's gonna be a CS class for non-CS majors, then I want a Physics II class FOR CS MAJORS.

if a cs1 course like this ever has its way, keep in mind the spirit and idealogy of the course. georgia tech creates problem solvers, not drones; cs1 and all freshmen courses should reflect this.

I'm tired of cliquish groups that, due to random assignment of ungrouped people, are forced to take one as an additional member, but resent it the entire time. If two people want to work together, let them!!!!!

Also, I think that INTA majors don't need CS. Why give them CS at all? They will hate the class and will not learn anything.

Teach them to use word properly, write a word macro, do mail merge, visual basic with cute dancing bears. That's all



Thanks very much for your comments!
Mark Guzdial

Links to this Page