Welcome Guest ( Log In | Register )



 
Reply to this topicStart new topic
> Teaching Computer Sciences, Experiences on how to teach Computer Sciences
Jose Manuel
post Jun 28 2006, 04:47 PM
Post #1


Newbie [ Level 2 ]
Group Icon

Group: Members
Posts: 14
Joined: 26-June 06
Member No.: 14,140



Hi there,
I'm a professor at the University. I would like to open a thread about this topic: New Experiences and Methodologies to teach Computer Sciences.

I am professor of several courses: Digital Systems, Computer Architecture, Assembler Languages and CPUs, Real-Time OS, and Parallel and Distributed Systems. I feel that my students are not very pleased with these subjects because they feel "they are not about programming", and sometimes it is very hard to involve students in the teaching, thus I would like ideas on how to teach those courses (or others, I don't mind, I will try to "translate" those suggestions to my field of interest). I would like you all share with me how to make my courses to be more attractive to my students, obviously, without reducing the amount and quality of the learning of the topics of these courses.

I have used "Moodle" system (not sure if you have used it), it is "somewhat" like a Wiki, but highly oriented to the teaching community. However, I feel it is just like modernize the old way of "sticking notes on the bulletin board"... and sometimes it means a lot of work (for me) for a very small prize...

Suggestions? Learning experiences?


PS: By the way, I am Spanish. I would be very pleased to share learning experiences with other countries' University systems.
Go to the top of the page
 
+Quote Post
Jeigh
post Jun 28 2006, 05:16 PM
Post #2


Whitest Black Mage
Group Icon

Group: [MODERATOR]
Posts: 1,322
Joined: 20-May 05
From: NB, Canada
Member No.: 5,281



I am currently studying Computer Science at the University of New Brunswick (in Canada). While I'm currently out on a co-op work term, I'll be returning shortly to my courses and you've got me thinking about whichc courses I enjoyed and why (not necessarily the material, workload, or professor, but just the way the class was handled). I haven't taken courses yet in all the areas you mentioned but it shouldn't matter since my suggestion is really one that can be applied to any range of topics.

Personally, I feel the courses I enjoy the most are the ones where I can actually see the outcome of the lessons I've learned. Many courses tech the students a variety of skills which they use on small, specifically designed tasks to showcase the skill, and then maybe use it again for a test or final. To me this is not the best way since I don't see how it fits into the larger picture. I have always preferred courses where they bring everything together in the end or at least show how each part adds to the "big picture".

For example, I took a software organization course (Take software from an idea->plan->design->implement) and instead of simply taking on each part of this task, the professor had us take a clients request (an explanation about requirements of a chess game, in this case) and proceed through each step of the process. As the classes taught us tghe theory we performed the tasks and had the process broken down into markable deliverables. Then in the end, not only had we learned everything about the process of dealing with a client and producing the product they wanted, but also had the ACTUAL design documents and final product that we could look back on.

That's obviously just one example, but I guess my point is that for me, any time I can see how I could use the skills in the future makes it seem more relevant. When I was taking an intro assembler course everything seemed to be so abstract... but when we got to actually wire logic paths on a circuit board and trasnfer our programs into HC11 processor and see our results it just felt more 'real'. As well, our professor often gave real world examples of where such things could be used (such as in the processors in small robots they had on hand to show us).

Personally I still enjoy most CS work whether it seems programming related or not, but I do know some people who only like the programming aspects of CS. For these people I think any way that can relate these topics to the final goal/product would help them appreciate it more. Also, explaining how the concepts relate to programming differences and things such as that.

I don't know if this will be helpful or useable to you, or even if many other people would agree that this would make the courses more appealing... but its something to think about at least biggrin.gif Good luck, I'm glad to see a professor taking an interest in making his courses a more enjoyable experience for his students.
Go to the top of the page
 
+Quote Post
Jose Manuel
post Jun 28 2006, 06:12 PM
Post #3


Newbie [ Level 2 ]
Group Icon

Group: Members
Posts: 14
Joined: 26-June 06
Member No.: 14,140



Humm, I see...

I asked this same question to some of my students, and many of them agreed with your comment. They prefer the courses that have a connection to the "real world", or at least with something they would work in the future (for example, robots as you said). And that's quite easy in optional/specialized courses, but I just cannot guess how to do that in basic courses. For example, Digital Systems is a subject taught in the first year of CS degree. It is about logical operators, how to mixed them in order to produce logical systems, then how to produce arithmetical systems, etc. I can see the progression of it and how tools are shown to produce bigger and more complex systems. These systems are actually the ones we have inside our CPUs (connection to the real world)! However, my students do not "see" that approach at the beginning (most of them just quit the course when I am teaching Karnaugh maps to produce logical expressions! That's taught during the 2nd week!!!) and, thus, they don't follow the course.

Well, I must say in Spain we have OVERCROWED classrooms. Last term, I taught in a classroom with 160 students! I think with just 20 students I would be able to make it much more comfortable and friendly, and probably I could follow whether the lessons are being interesting or not.
Go to the top of the page
 
+Quote Post
Jeigh
post Jun 28 2006, 06:17 PM
Post #4


Whitest Black Mage
Group Icon

Group: [MODERATOR]
Posts: 1,322
Joined: 20-May 05
From: NB, Canada
Member No.: 5,281



Ah yea, larger classes make the more abstract ideas a bit harder to enjoy. I know my intro to karnaugh maps was somewhere in between (about 80 students) but we had smaller lab groups (about 20) that helped alot. For the example of logical systems we got to use actual physical chips that were AND, OR, NOR, etc gates to create paths and could then create adders and whatnot that lit up LED's based on our input choices. It's nothing amazing, but it showed us how, say, old calculators could have been set up to handle basic mathematical equations.

I do agree though that ALOT of the more abstract things would be hard to show real world connections with. Sometimes you just need abstract ideas to make a foundation before you can move onto the more concrete concepts sad.gif

Oh, and don't worry about people dropping your course early on heh, almost all my courses (CS and non CS) have a dramatic drop in students throughout the first 3 weeks or so usually. Some students are just too picky wink.gif
Go to the top of the page
 
+Quote Post
Vyoma
post Jun 29 2006, 05:52 AM
Post #5


Cosmic Overlord
Group Icon

Group: Members
Posts: 550
Joined: 26-November 05
From: Chennai, India
Member No.: 9,811



OK. I have neither been a student of Computer Science, nor a full blown teacher in the Subject. But I have had some parallel experiences on the topic. Firstly, I was a student of Electronics And Communication, and that involved a lot of subjects that Jose mentioned: Digital Systems, Assembly Languages (8086/88 series, and 8051), and Computer Architecture. The other topics, I have studied on my own interest. Now, as for teaching experience, I cannot say it was a full time effort. But I did take classes on 'Programming in C' to a handful of students.

This I say, to put whatever I say in the right perspective.

Now, here is what has inspired me to study more and also have seen in most of the students that I have taught. It is to make them see the details and the big picture in the same period of one class. One of my students asked how one particular function worked in C language. I explained him the the basics of compiler construction, and the resulting machine code. Leading the chain of his reasoning, I further explained him, how the machine codes triggered the gates in the digital circuits of the Arithmetic and Logic Unit. Then, on explanation of how transistors were used to make those gates, and how the electrons acted in those transistors, he was awed by the details of everything and also how it all summed up to give a C language function that most of us take for granted. It is this inspiration and sense of awe that we need to kindle - once I did that in the student, it was a breeze to teach them the rest of the language. I could teach them all of the course syllabus, and they even ventured to the advanced topics.

I know, what I stated above has not been written to tell the principle, but I cannot quite place it. So, I have given what happened as I had been teaching to those students.

I think, as a teacher, it becomes our responsibility to create the sense of awe and the hunger for more in the students. Then, we just need to get the horse to the pond - the horse drinks at its own will.
Go to the top of the page
 
+Quote Post
yeh
post Jun 30 2006, 06:50 PM
Post #6


Advanced Member
Group Icon

Group: Members
Posts: 147
Joined: 13-May 06
Member No.: 13,389



Don't worry about students dropping off from those beginning classes. Like jeigh said, it always happened. If those students are interested in Computer Science, then I guess they have to take those courses anyway. Those courses are mandatory, right? I'm not a graduate from Spain.

I would agree with Jeight about linking what students are learning to real world problems. Otherwise, there is no interest whatsoever in the subject being taught. And if a student is not aiming solely for A but a good grade would do, such as B+, then there isn't going to be much enthusiasm on the part of the student.

Of course, as mentioned in earlier posts, it is hard to make a connection to the real world problems in introductory courses. My view on this is that a CS degree teaches much more stuff than what a student might be interested in. If a student just like software application programming, those hardware stuff would quite likely bored him/her. It definitely bores me. Hehe.... smile.gif

So, i guess the approach that I would suggest is to talk to a few former students of the course, possibly those with better grades. Ask them what they like in the course, their dislikes and more importantly, what approach they would like to be introduced. It would be good to do this face to face. My experience tells me that A students get their A's because they are more determined/disciplined. If they found some parts ultra boring or need better explanation/connection, then i would say quite a lot of students would feel the same too.
Go to the top of the page
 
+Quote Post
Jose Manuel
post Jul 3 2006, 08:51 AM
Post #7


Newbie [ Level 2 ]
Group Icon

Group: Members
Posts: 14
Joined: 26-June 06
Member No.: 14,140



QUOTE(yeh @ Jun 30 2006, 08:50 PM) *

Don't worry about students dropping off from those beginning classes. Like jeigh said, it always happened. If those students are interested in Computer Science, then I guess they have to take those courses anyway. Those courses are mandatory, right? I'm not a graduate from Spain.


Some courses are mandatory, others are optional. Even the courses are mandatory, I do not check whether the students come or not, I don't like to feel that I am a jailer!!! If the students feel they don't need me to teach them, they don't need to come to my lessons. I will check if they have acquired the mandatory topics of the subject in the final tests/examinations/etc.

QUOTE(yeh @ Jun 30 2006, 08:50 PM) *

Of course, as mentioned in earlier posts, it is hard to make a connection to the real world problems in introductory courses. My view on this is that a CS degree teaches much more stuff than what a student might be interested in. If a student just like software application programming, those hardware stuff would quite likely bored him/her. It definitely bores me. Hehe.... smile.gif


Well, that's an interesting point of view, but I think it is a bit narrow-minded... because no one knows in which job/company would you work in the future. Just let me explain my experience, during my CS I tried to get specialization in AI. When I finished my grade, I bI liked egan to work in a programming company and I noticed that I don't like so much programming as I supposed. I started my Ph.D. and they suggested me to do it in Computer Architecture Department, and now I like these topics very much, who would have told me this when I was a student! :-D

QUOTE(yeh @ Jun 30 2006, 08:50 PM) *

So, i guess the approach that I would suggest is to talk to a few former students of the course, possibly those with better grades. Ask them what they like in the course, their dislikes and more importantly, what approach they would like to be introduced. It would be good to do this face to face. My experience tells me that A students get their A's because they are more determined/disciplined. If they found some parts ultra boring or need better explanation/connection, then i would say quite a lot of students would feel the same too.


Humm, nice idea! I will ask some students about those points you mention... THANKS! :-)
Go to the top of the page
 
+Quote Post
Jose Manuel
post Jul 12 2006, 10:30 AM
Post #8


Newbie [ Level 2 ]
Group Icon

Group: Members
Posts: 14
Joined: 26-June 06
Member No.: 14,140



Hi again, now I ask you about final examinations...

I started as a professor almost 7 years ago... I began with practices in computer lab. We did simulations on digital circuits and things like that. Usually, we proposed from 7 to 9 different practices to our 160 students. I admitted the practices to be done by groups upto three persons. Obviously, the aggroupation reduced the total amount of practices to be check to 1/3 (that's about 50 groups x 8 practices = 400 documents/simulations!!!!) That was almost impossible to follow and after one year I noticed when the "difficult" practices started, there were just 10 diferent ones, all of the rest were simple copies!!! And even, some students told me that they have too many practices for every subject in the course... In 1st course, they usually take 14 subjects...

Then one year I decided to make a final examination... students could go to the lessons or not, I didn't check their presence. At the end of the semester they were asked to make a digital design and a simulation on the computer within 2:30 hours. People who were able to solve the problem, pass the lab practices. Just one day for me, and much more free time along the semester for them to take other subjects and distribute properly their time.

As an experience and conclusion, the amount of people who passes the lab practices before the examination dropped drastically (before, 80% passes; after the examination dropped to 20%) But I think it is worth... for me and also for the students.

Sometimes, the best solution is a "traditional" examination instead of works, documents, etc. What do you think?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

Collapse

> Similar Topics

Topics Topics
  1. Your Most Favourite Computer Language(84)
  2. Dyndns (get A Domain Name For Your Home Computer)(7)
  3. How To Transfer Files From One Computer To Another(16)
  4. Living Without Computer Today - Is It Possible?(41)
  5. Turn On Your Computer Automatically(25)
  6. Computer Shuts Down - Why?(23)
  7. Help Me: Need To Transfer Files From Old Computer(18)
  8. GumStix - 400 MHz Computer On A Stick O' Chewing Gum(6)
  9. Unable To Connect My Comp. To A Wireless Network(5)
  10. Computer Suddenly Turning Off(25)
  11. Dell Computer "shuts Down" When Opening Email(31)
  12. Choosing Computer Parts & Assembling 101(5)
  13. Turn And Log On Computer Automatically(14)
  14. Lock Workstation Shortcut(8)
  15. Blue Screen - irql_not_less_or_equal(29)
  1. Old Computer in need of a new OS(15)
  2. System Stops Responding(10)
  3. Computer Turns Self Off(25)
  4. New Computer(54)
  5. Which Os Would Be First To Respond With ....(4)
  6. Your first computer?(35)
  7. Best Program To Tune Up An Old Computer?(9)
  8. Computer Terms(3)
  9. Proper Airflov Through A Computer Case(0)
  10. Computer Not Boot Up(5)
  11. Fast Computer(13)
  12. Choosing Your Computer Before Bying(4)
  13. Mysql On Computer(9)


 



- Lo-Fi Version Time is now: 30th August 2008 - 09:27 AM