The Pedagogy of Computer Science

KnightNiwrem

Senior Member
Joined
Jun 1, 2014
Messages
1,057
Reaction score
0
As some of the people here might know, SoC in NUS do allow senior students to be TAs to our juniors for some Computing modules. I find myself particularly interested in trying that out, some time in the future. Naturally, I believe it is the duty of any tutor, for what ever reasons, to have to do a good job of it.

My recent exchange with Pickles has shown that I might not fully comprehend the spectrum of learning experiences (the tools they find comfortable with, their frequency of using these tools, and how these relate to their ease of learning) that a whole range of students (of differing caliber and experience) would go through in their course of learning Computer Science.

Before this, I've been looking at some Pedagogical experiences faced by some of the lecturers of Computer Science worldwide. (These are google-able; See: http://www.csd.cs.cmu.edu/colloquium/) (And see: https://computinged.wordpress.com/2012/12/21/the-bigger-issues-in-learning-to-code-culture-and-pedagogy/)


But I think this may not be sufficient, and may not fully relate back to the experiences at home where most start off with an *entirely* clean slate to programming methodology and their philosophy.

Hence, I've decided to open this thread to gather some of the experiences that the programmers in here have gone through when they were learning Computer Science at the start, and then their experiences learning Computer Science after that; and how and why these 2 experiences might differ(if they do).

Even better, for experienced tutors like davidktw, what are the responses students have given to a wide range of approaches and tools used to tutor your students, and what has been shown to be effective for who, and possibly why.

---

I'd like to thank everybody here, beforehand, for sharing their responses and continuing in replying to any queries and discussion I might pose here, later.
 
Last edited:

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,550
Reaction score
1,302
As some of the people here might know, SoC in NUS do allow senior students to be TAs to our juniors for some Computing modules. I find myself particularly interested in trying that out, some time in the future. Naturally, I believe it is the duty of any tutor, for what ever reasons, to have to do a good job of it.

My recent exchange with Pickles has shown that I might not fully comprehend the spectrum of learning experiences (the tools they find comfortable with, their frequency of using these tools, and how these relate to their ease of learning) that a whole range of students (of differing caliber and experience) would go through in their course of learning Computer Science.

Before this, I've been looking at some Pedagogical experiences faced by some of the lecturers of Computer Science worldwide. (These are google-able; See: Colloquium on Computer Science Pedagogy) (And see: https://computinged.wordpress.com/2012/12/21/the-bigger-issues-in-learning-to-code-culture-and-pedagogy/)


But I think this may not be sufficient, and may not fully relate back to the experiences at home where most start off with an *entirely* clean slate to programming methodology and their philosophy.

Hence, I've decided to open this thread to gather some of the experiences that the programmers in here have gone through when they were learning Computer Science at the start, and then their experiences learning Computer Science after that; and how and why these 2 experiences might differ(if they do).

Even better, for experienced tutors like davidktw, what are the responses students have given to a wide range of approaches and tools used to tutor your students, and what has been shown to be effective for who, and possibly why.

---

I'd like to thank everybody here, beforehand, for sharing their responses and continuing in replying to any queries and discussion I might pose here, later.

Late on this, but better than never.

As I recall, as a honours student from NUSSOC, I remember it is necessary for us to clock certain hours as tutors. So I was assigned a semester or 2 to tutor the lab session for CS1101C. This is an introductory course to C programming for Comp Eng faculty.

What I do realise this typically most of these students do not have prior knowledge to programming. A few actually isn't very keen on the assignments too. Well what can I say, it's their choice to choose this course and therefore their choice on how keen they want to proceed with it.

But apparently generally from my assessment, most of the students are lost in the course. For various reasons, could be attributed to bad lecturer, hasty teaching approach or lack of calibre. But as I have recalled in my JC days where CS course back then is a 2 year process, I find my classmates perform better. A few of them are in my opinon smarter and more motivated, that could be reason why during the JC days we fair better, while in the university, certain percentage of the students don't really knows what they want, but they need to choose, or they can't get into what they wanted and end up in the course of lesser interest.

While lecturers are taught progressively, I find in a semester of only 3-4months, it's insufficient for someone of totally no idea about programming to grasp a lot of the fundamentals. If they are passionate, it's barely possible, if they have lack of calibre, it's extremely hard. The workload of other modules would dilute their attention to this intense course.

There is certainly the need for every students to study outside the teaching materials provided. I remember I study Java from the book even before the lecture started and start playing with the examples myself when I'm still a freshman. However having that I'm extremely passionate with CS and have prior knowledge with Pascal in JC, I find the only course I need to struggle during the first and 2nd semester of freshman is my discrete mathematics. The rest of the CS modules are basically touch and go for me. Even so, I find often the lectures are not comprehensive enough and begs a lot more details and self practice.

That being said, that should the the life of a university student. There shouldn't be any spoon feeding, one should be old enough to know the reason of why one is in the university and what is the accomplishment required and how much foundation is required to excel 3-4 years later in the industry.

With a cohort of 1000+ or more students, I wouldn't expect the lecturer to be able to provide intense teaching. Not all tutors that I have come across are really that good, just more like playing the monitoring role with some guidance. You see not to mention tutors, not all lecturers are good teachers. Just because they are professors highly qualified in their field, that doesn't in anyway implies they are good teachers. So the way I perceive tertiary education, the students are pretty much on their own. I still recall during my honours FYP, when I enquire with my professor, he told me to go google for it. So from then onwards, I know I'm pretty much on my own. Your success or your failure is for you to keep and solely yours.
 
Last edited:

KnightNiwrem

Senior Member
Joined
Jun 1, 2014
Messages
1,057
Reaction score
0
Late on this, but better than never.

As I recall, as a honours student from NUSSOC, I remember it is necessary for us to clock certain hours as tutors. So I was assigned a semester or 2 to tutor the lab session for CS1101C. This is an introductory course to C programming for Comp Eng faculty.

What I do realise this typically most of these students do not have prior knowledge to programming. A few actually isn't very keen on the assignments too. Well what can I say, it's their choice to choose this course and therefore their choice on how keen they want to proceed with it.

But apparently generally from my assessment, most of the students are lost in the course. For various reasons, could be attributed to bad lecturer, hasty teaching approach or lack of calibre. But as I have recalled in my JC days where CS course back then is a 2 year process, I find my classmates perform better. A few of them are in my opinon smarter and more motivated, that could be reason why during the JC days we fair better, while in the university, certain percentage of the students don't really knows what they want, but they need to choose, or they can't get into what they wanted and end up in the course of lesser interest.

While lecturers are taught progressively, I find in a semester of only 3-4months, it's insufficient for someone of totally no idea about programming to grasp a lot of the fundamentals. If they are passionate, it's barely possible, if they have lack of calibre, it's extremely hard. The workload of other modules would dilute their attention to this intense course.

There is certainly the need for every students to study outside the teaching materials provided. I remember I study Java from the book even before the lecture started and start playing with the examples myself when I'm still a freshman. However having that I'm extremely passionate with CS and have prior knowledge with Pascal in JC, I find the only course I need to struggle during the first and 2nd semester of freshman is my discrete mathematics. The rest of the CS modules are basically touch and go for me. Even so, I find often the lectures are not comprehensive enough and begs a lot more details and self practice.

That being said, that should the the life of a university student. There shouldn't be any spoon feeding, one should be old enough to know the reason of why one is in the university and what is the accomplishment required and how much foundation is required to excel 3-4 years later in the industry.

With a cohort of 1000+ or more students, I wouldn't expect the lecturer to be able to provide intense teaching. Not all tutors that I have come across are really that good, just more like playing the monitoring role with some guidance. You see not to mention tutors, not all lecturers are good teachers. Just because they are professors highly qualified in their field, that doesn't in anyway implies they are good teachers. So the way I perceive tertiary education, the students are pretty much on their own. I still recall during my honours FYP, when I enquire with my professor, he told me to go google for it. So from then onwards, I know I'm pretty much on my own. Your success or your failure is for you to keep and solely yours.

Thanks for the reply. I do have some questions I'd like to ask you later, if you don't mind.
 

Bonadaly

Arch-Supremacy Member
Joined
Aug 10, 2008
Messages
18,685
Reaction score
0
Late on this, but better than never.

As I recall, as a honours student from NUSSOC, I remember it is necessary for us to clock certain hours as tutors. So I was assigned a semester or 2 to tutor the lab session for CS1101C. This is an introductory course to C programming for Comp Eng faculty.

What I do realise this typically most of these students do not have prior knowledge to programming. A few actually isn't very keen on the assignments too. Well what can I say, it's their choice to choose this course and therefore their choice on how keen they want to proceed with it.

But apparently generally from my assessment, most of the students are lost in the course. For various reasons, could be attributed to bad lecturer, hasty teaching approach or lack of calibre. But as I have recalled in my JC days where CS course back then is a 2 year process, I find my classmates perform better. A few of them are in my opinon smarter and more motivated, that could be reason why during the JC days we fair better, while in the university, certain percentage of the students don't really knows what they want, but they need to choose, or they can't get into what they wanted and end up in the course of lesser interest.

While lecturers are taught progressively, I find in a semester of only 3-4months, it's insufficient for someone of totally no idea about programming to grasp a lot of the fundamentals. If they are passionate, it's barely possible, if they have lack of calibre, it's extremely hard. The workload of other modules would dilute their attention to this intense course.

There is certainly the need for every students to study outside the teaching materials provided. I remember I study Java from the book even before the lecture started and start playing with the examples myself when I'm still a freshman. However having that I'm extremely passionate with CS and have prior knowledge with Pascal in JC, I find the only course I need to struggle during the first and 2nd semester of freshman is my discrete mathematics. The rest of the CS modules are basically touch and go for me. Even so, I find often the lectures are not comprehensive enough and begs a lot more details and self practice.

That being said, that should the the life of a university student. There shouldn't be any spoon feeding, one should be old enough to know the reason of why one is in the university and what is the accomplishment required and how much foundation is required to excel 3-4 years later in the industry.

With a cohort of 1000+ or more students, I wouldn't expect the lecturer to be able to provide intense teaching. Not all tutors that I have come across are really that good, just more like playing the monitoring role with some guidance. You see not to mention tutors, not all lecturers are good teachers. Just because they are professors highly qualified in their field, that doesn't in anyway implies they are good teachers. So the way I perceive tertiary education, the students are pretty much on their own. I still recall during my honours FYP, when I enquire with my professor, he told me to go google for it. So from then onwards, I know I'm pretty much on my own. Your success or your failure is for you to keep and solely yours.

NUS is a learning institution , yet no time to teach? WTH........
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,550
Reaction score
1,302
NUS is a learning institution , yet no time to teach? WTH........

There are time to teach, just that how deep do you think any course can go into. The distance from a programming novice to a master take decades. Just any simple faculty within Computer Science can easily take you just a few years to learn to the point where you know most of the stuffs, there are much more broader knowledge of a lot of topics.

As far as I can tell, graduates from the university merely scratch the surface of any module. You really think when you graduate from a Java course currently taught in university makes you good enough to kick start a programming assignment in the real industrial works ?

That is why I don't understand what is there for graduates to demand when it comes to pay. Just take anything reasonable to start building a career before you ask for a good pay. In the eyes of the industry, you are just a clean slate of paper.

If you have graduated from the Java course without even read through the source code of the JDK to realise that the merge sort in the Arrays class will turn to insertion sort if the dataset is smaller than certain size, then you should know what level you are actually in. In fact, I just checked just now, the latest sort algorithm turn to use a dual pivot quick sort implementation - http://iaroslavski.narod.ru/quicksort/DualPivotQuicksort.pdf. So they have been changing implementation from time to time. I was still at Java 1.1/1.2 when I read the source code in the university.

So my point is, it's only scratching the surface. Don't expect more from any universities.
 
Last edited:

Bonadaly

Arch-Supremacy Member
Joined
Aug 10, 2008
Messages
18,685
Reaction score
0
There are time to teach, just that how deep do you think any course can go into. The distance from a programming novice to a master take decades. Just any simple faculty within Computer Science can easily take you just a few years to learn to the point where you know most of the stuffs, there are much more broader knowledge of a lot of topics.

As far as I can tell, graduates from the university merely scratch the surface of any module. You really think when you graduate from a Java course currently taught in university makes you good enough to kick start a programming assignment in the real industrial works ?

That is why I don't understand what is there for graduates to demand when it comes to pay. Just take anything reasonable to start building a career before you ask for a good pay. In the eyes of the industry, you are just a clean slate of paper.

If you have graduated from the Java course without even read through the source code of the JDK to realise that the merge sort in the Arrays class will turn to insertion sort if the dataset is smaller than certain size, then you should know what level you are actually in. In fact, I just checked just now, the latest sort algorithm turn to use a dual pivot quick sort implementation - http://iaroslavski.narod.ru/quicksort/DualPivotQuicksort.pdf. So they have been changing implementation from time to time. I was still at Java 1.1/1.2 when I read the source code in the university.

So my point is, it's only scratching the surface. Don't expect more from any universities.

What do you mean by mastery?
 

KnightNiwrem

Senior Member
Joined
Jun 1, 2014
Messages
1,057
Reaction score
0
If you have graduated from the Java course without even read through the source code of the JDK to realise that the merge sort in the Arrays class will turn to insertion sort if the dataset is smaller than certain size, then you should know what level you are actually in. In fact, I just checked just now, the latest sort algorithm turn to use a dual pivot quick sort implementation - http://iaroslavski.narod.ru/quicksort/DualPivotQuicksort.pdf. So they have been changing implementation from time to time. I was still at Java 1.1/1.2 when I read the source code in the university.

So my point is, it's only scratching the surface. Don't expect more from any universities.

Actually, mergesort-insertionsort and dual-pivot quicksort was mentioned in CS2020 when the lecturer was talking about java array sort implementation. Not sure about the regular track CS1020+CS2010 though.

To be more complete, Java actually uses timsort if you are not using an array of primitives, because quicksort isn't stable.

Anyway, I apologise for not formulating the relevant questions yet. Much familial obligations these day - e.g. Chinese New Year.

I'll get back to you when I can.
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,550
Reaction score
1,302
Actually, mergesort-insertionsort and dual-pivot quicksort was mentioned in CS2020 when the lecturer was talking about java array sort implementation. Not sure about the regular track CS1020+CS2010 though.

To be more complete, Java actually uses timsort if you are not using an array of primitives, because quicksort isn't stable..

Consider yourself lucky that these stuffs are discussed in the courses today. During the early introduction of Java, lecturers will not discuss to such depths about the the internals of Java. So well what can I say, over the years, just don't see any really better people around, despite it seems more information are provided in courses today.

But it's good to learn about really good improvement in the Java implementation, interested parties can easily read more from grepcode.com. Feels good to revisits for changes.
 

KnightNiwrem

Senior Member
Joined
Jun 1, 2014
Messages
1,057
Reaction score
0
Consider yourself lucky that these stuffs are discussed in the courses today. During the early introduction of Java, lecturers will not discuss to such depths about the the internals of Java. So well what can I say, over the years, just don't see any really better people around, despite it seems more information are provided in courses today.

But it's good to learn about really good improvement in the Java implementation, interested parties can easily read more from grepcode.com. Feels good to revisits for changes.

Dual-pivot quicksort was mentioned in lecture. But timsort was something that I learnt from self-reading. :o

The lecturer doesn't actually go through the internals in-depth. I'm just lucky to have a tutor who would open Eclipse to show internal source code during tutorial. He would talk about how Java quickly copies array in Array.copyOf by using System.arraycopy.

Naturally, I want to learn how to be a good tutor too.
 
Last edited:

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,550
Reaction score
1,302
Dual-pivot quicksort was mentioned in lecture. But timsort was something that I learnt from self-reading. :o

The lecturer doesn't actually go through the internals in-depth. I'm just lucky to have a tutor who would open Eclipse to show internal source code during tutorial. He would talk about how Java quickly copies array in Array.copyOf by using System.arraycopy.

Naturally, I want to learn how to be a good tutor too.

良师难寻,高徒难遇

It is a chance to also find good students. Not all students are receptive. There is no one way to be a good tutors and "good" is subjective. Some students that requires a lot of hand holding will think pointing them to correct places in the Internet is not being helpful, while those 自动自发 type requires more in-depth and insight from your knowledge. Simple straight forward things bored them.

Anyway happy CNY.
 
Last edited:

KnightNiwrem

Senior Member
Joined
Jun 1, 2014
Messages
1,057
Reaction score
0
Late on this, but better than never.

As I recall, as a honours student from NUSSOC, I remember it is necessary for us to clock certain hours as tutors. So I was assigned a semester or 2 to tutor the lab session for CS1101C. This is an introductory course to C programming for Comp Eng faculty.

What I do realise this typically most of these students do not have prior knowledge to programming. A few actually isn't very keen on the assignments too. Well what can I say, it's their choice to choose this course and therefore their choice on how keen they want to proceed with it.

But apparently generally from my assessment, most of the students are lost in the course. For various reasons, could be attributed to bad lecturer, hasty teaching approach or lack of calibre. But as I have recalled in my JC days where CS course back then is a 2 year process, I find my classmates perform better. A few of them are in my opinon smarter and more motivated, that could be reason why during the JC days we fair better, while in the university, certain percentage of the students don't really knows what they want, but they need to choose, or they can't get into what they wanted and end up in the course of lesser interest.

While lecturers are taught progressively, I find in a semester of only 3-4months, it's insufficient for someone of totally no idea about programming to grasp a lot of the fundamentals. If they are passionate, it's barely possible, if they have lack of calibre, it's extremely hard. The workload of other modules would dilute their attention to this intense course.

There is certainly the need for every students to study outside the teaching materials provided. I remember I study Java from the book even before the lecture started and start playing with the examples myself when I'm still a freshman. However having that I'm extremely passionate with CS and have prior knowledge with Pascal in JC, I find the only course I need to struggle during the first and 2nd semester of freshman is my discrete mathematics. The rest of the CS modules are basically touch and go for me. Even so, I find often the lectures are not comprehensive enough and begs a lot more details and self practice.

That being said, that should the the life of a university student. There shouldn't be any spoon feeding, one should be old enough to know the reason of why one is in the university and what is the accomplishment required and how much foundation is required to excel 3-4 years later in the industry.

With a cohort of 1000+ or more students, I wouldn't expect the lecturer to be able to provide intense teaching. Not all tutors that I have come across are really that good, just more like playing the monitoring role with some guidance. You see not to mention tutors, not all lecturers are good teachers. Just because they are professors highly qualified in their field, that doesn't in anyway implies they are good teachers. So the way I perceive tertiary education, the students are pretty much on their own. I still recall during my honours FYP, when I enquire with my professor, he told me to go google for it. So from then onwards, I know I'm pretty much on my own. Your success or your failure is for you to keep and solely yours.

I finally have some time to give this reply some serious thought.

The first thing that entered my mind while reading this, was the reminder that there are students that are not always entirely motivated. I keep forgetting that not everybody studies in University because they want to, but because they have to - when considering a wide variety of students, I suppose I shouldn't treat "learning because you want to/because it is fun" as a norm"...

That said, this causes a significant number of problems with the new First Semester S/U system. I remember seeing some peers deciding to "forsake" studying for some mods so that they can S/U it this semester, and take it again in the next (or to keep it as an 'S' if they get C and above).

While it isn't necessarily the tutor's duty to motivate their students into studying for certain subjects, I think that the difficulty level also plays a role in causing a student to choose to give a mod up for S/U. Weaker students who expect a decent grade of B/B+ would likely choose to continue their efforts in the mod. Only when the student expects C/D that he might start to contemplate giving it up for S/U.

Another thing to think about is the consideration of "what is worth teaching" in an short 3-4 month course. As most of us might agree, it is quite impossible to cover the entirety of Computer Science in 4 years, and it is even more impossible to do so in 3 to 4 months.

I think you'd love to start from the foundations of Computer Science, exploring the Computer Architecture to describe the ideas behind Computer Science, and how these simple operations are performed under the hood; how they compose and compose, over and over again, into our familiar higher-level designs.

But that would be too much to go through in 3 to 4 months. Besides, these are no longer the concern of the Introductory Programming Methodology courses (they delegate these to other higher level mods these days, I think).

Nowadays, Programming Methodology is more interested in how you'd use powerful libraries to implement something for some task that has been given to you. Things in the library should, preferably, be abstracted away from the students so that they can focus on higher level design - which, for the time being, might be fine.

Before the students clear the hurdle of "efficiency", they have to clear the hurdle of "correctness".

The last question I'd like to ask, is if you have tutored anybody outside of NUS, after your graduated. If you have, how did you handle those "students" and how differently do they fare against University students?

Edit: Happy CNY
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,550
Reaction score
1,302
I finally have some time to give this reply some serious thought.

The first thing that entered my mind while reading this, was the reminder that there are students that are not always entirely motivated. I keep forgetting that not everybody studies in University because they want to, but because they have to - when considering a wide variety of students, I suppose I shouldn't treat "learning because you want to/because it is fun" as a norm"...

That said, this causes a significant number of problems with the new First Semester S/U system. I remember seeing some peers deciding to "forsake" studying for some mods so that they can S/U it this semester, and take it again in the next (or to keep it as an 'S' if they get C and above).

While it isn't necessarily the tutor's duty to motivate their students into studying for certain subjects, I think that the difficulty level also plays a role in causing a student to choose to give a mod up for S/U. Weaker students who expect a decent grade of B/B+ would likely choose to continue their efforts in the mod. Only when the student expects C/D that he might start to contemplate giving it up for S/U.

Another thing to think about is the consideration of "what is worth teaching" in an short 3-4 month course. As most of us might agree, it is quite impossible to cover the entirety of Computer Science in 4 years, and it is even more impossible to do so in 3 to 4 months.

I think you'd love to start from the foundations of Computer Science, exploring the Computer Architecture to describe the ideas behind Computer Science, and how these simple operations are performed under the hood; how they compose and compose, over and over again, into our familiar higher-level designs.

But that would be too much to go through in 3 to 4 months. Besides, these are no longer the concern of the Introductory Programming Methodology courses (they delegate these to other higher level mods these days, I think).

Nowadays, Programming Methodology is more interested in how you'd use powerful libraries to implement something for some task that has been given to you. Things in the library should, preferably, be abstracted away from the students so that they can focus on higher level design - which, for the time being, might be fine.

Before the students clear the hurdle of "efficiency", they have to clear the hurdle of "correctness".

The last question I'd like to ask, is if you have tutored anybody outside of NUS, after your graduated. If you have, how did you handle those "students" and how differently do they fare against University students?

Edit: Happy CNY

With the questions you have in mind, remember that you are here to polish gems, not make diamonds out of granite. In the tertiary education system, you can't afford to take up the responsibility of making students understand why they are there. The students must take up full responsibility of why they want to be there, what they need to know and how they get to know them.

It is not the institute, not the lecturer, not the tutor role to make them understand what they need. If the students can't understand and find value in the education that they are receiving, then reality requires them to be prune off the chart. It may sound cruel, but it wouldn't change the fact that even if they manage to survive past the education, they will eventually need to answer these burning questions when they are standing at the door of the society.

My opinion as a tutor, your posture should be give all that you have to interested parties. If they are keen to know more, then challenge them intellectually. A tutor role is not spoon feed them, but to show them the path to know more. That's my mode of teaching, if they come to me in 1 question, I give them more questions for them to ponder and search. I believe strictly in providing the fishing rod.

I mostly educate juniors and course mates while my stay with NUS, not just those from my lab classes. However there are a couple of chance I get to teach some of the poly students which I forgotten which poly they came from. For these group of poly students, I find they have even weaker foundation, but I don't think I have sufficient sample size to put my findings across the whole batch of students from poly. However I somehow recognise that polytechnics do not aim to cover the depths of Computer Science course offer in the university. That being said, we must keep in mind that the age group of polytechnics students are younger and for the guys, they have not went through some of the character building process that one could receive from the national service in Singapore. This is just my personal opinion. I think NS is a good character building environment for Singaporean guys, and I think it will benefit just as much for the ladies. 合理的要求是训练 不合理的要求是磨练.
 
Last edited:

KnightNiwrem

Senior Member
Joined
Jun 1, 2014
Messages
1,057
Reaction score
0
With the questions you have in mind, remember that you are here to polish gems, not make diamonds out of granite. In the tertiary education system, you can't afford to take up the responsibility of making students understand why they are there. The students must take up full responsibility of why they want to be there, what they need to know and how they get to know them.

It is not the institute, not the lecturer, not the tutor role to make them understand what they need. If the students can't understand and find value in the education that they are receiving, then reality requires them to be prune off the chart. It may sound cruel, but it wouldn't change the fact that even if they manage to survive past the education, they will eventually need to answer these burning questions when they are standing at the door of the society.

My opinion as a tutor, your posture should be give all that you have to interested parties. If they are keen to know more, then challenge them intellectually. A tutor role is not spoon feed them, but to show them the path to know more. That's my mode of teaching, if they come to me in 1 question, I give them more questions for them to ponder and search. I believe strictly in providing the fishing rod.

I mostly educate juniors and course mates while my stay with NUS, not just those from my lab classes. However there are a couple of chance I get to teach some of the poly students which I forgotten which poly they came from. For these group of poly students, I find they have even weaker foundation, but I don't think I have sufficient sample size to put my findings across the whole batch of students from poly. However I somehow recognise that polytechnics do not aim to cover the depths of Computer Science course offer in the university. That being said, we must keep in mind that the age group of polytechnics students are younger and for the guys, they have not went through some of the character building process that one could receive from the national service in Singapore. This is just my personal opinion. I think NS is a good character building environment for Singaporean guys, and I think it will benefit just as much for the ladies. 合理的要求是训练 不合理的要求是磨练.

Haha. Make diamond out of granite - I would love that.

What would you do with people who are passionate about what they want to study, but cannot seem to grasp the concept even if you walkthrough it with them.

Remember how we suggested hippo learn C++ back from the ground-up - he shouldn't try anything fancy yet because his foundation was weak. Extrapolating that idea, I believe that, fundamentally, learning the "foundations" of Computer Science (or any University-level materials, for that matter) assumes and requires the student to possess decent mastery in thinking and mathematical skills of around 'A' levels.

If the thinking skills of the student is poor, he would have trouble extending the concepts that are taught, even in Foundation-level modules. Naturally, given the nature of Computer Science (having a wide variety of possible questions and problems), it would be impossible for the student to attempt to memorise the solutions for every possible set of questions (and he shouldn't!).

What would you do for these students?
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,550
Reaction score
1,302
Haha. Make diamond out of granite - I would love that.

What would you do with people who are passionate about what they want to study, but cannot seem to grasp the concept even if you walkthrough it with them.

Remember how we suggested hippo learn C++ back from the ground-up - he shouldn't try anything fancy yet because his foundation was weak. Extrapolating that idea, I believe that, fundamentally, learning the "foundations" of Computer Science (or any University-level materials, for that matter) assumes and requires the student to possess decent mastery in thinking and mathematical skills of around 'A' levels.

If the thinking skills of the student is poor, he would have trouble extending the concepts that are taught, even in Foundation-level modules. Naturally, given the nature of Computer Science (having a wide variety of possible questions and problems), it would be impossible for the student to attempt to memorise the solutions for every possible set of questions (and he shouldn't!).

What would you do for these students?

The world is a wide place, and people find themselves useful by fitting themselves into different areas of the world. The hard truth is not all are born the same and even I have to admit that there are smarter and wiser people than me and they might eventually have more accomplishment than me.

Fortunately or not, we do not have the crystal ball, so we can't be sure what will be the eventual accomplishment of any individual. However from time to time, I don't see in a person what he/she can accomplish, but what he/she is willing to do and execute it. Since we do not know the upper limit intellectual of a person, we will then have to assume he/she can always be better than what he/she currently is now. Every attempt to upgrade oneself is a proactive step to better one's accomplishment. As a person who is rendering help, you have to believe that what you are doing is providing progression. Whether the person will execute out what you advocate is up to him or her.

As you look deeper, you will realise more often than not, you don't see a limit in the intellect, but rather you see stubbornness and foolishness of not realising the potential of oneself and hence take up an active role in moving away from the local maximal. The local maximal is a comfort zone because it provides what you have right now. It takes foresight and an adventurous heart to move away from the comfort zone in search of a higher peak. Enlightened people just require little help in pointing out this aspect, while dense people takes a whole lot effort of them to realise it and some may never realise it within their lifetime. Even so, knowing a problem is not a solution. Acting upon the problem is.

There are a lot of reasons why you find certain people only having certain accomplishment at some point and if you compare them to their surrounding, you thought they should be able to accomplish more. If you are fast to conclude, you would have concluded they are slow. On the contrary, it can be a mistake. Among various reasons, it could be they have not realise their own potential, due to family issues that they didn't get the opportunity, their attitude of learning is incorrect and hence slow them down etc. What I'm trying to say is until you have exhausted all approaches, then you can make the most accurate judgement. Now then, how do you ensure you have exhausted all approaches, the answer is you can't because there are just so many ways of approaching the same problem and this is a difficult problem and no one probably has all the solutions.

Thinking skills can be improved, all skill sets can be taught and it is just a matter of time, which unfortunately is a luxury we all don't have. If you can live forever, I'm probably quite certain you will be wiser and smarter than you are 1000 years ago.

As a teacher, your most sacred task is to inspire. Giving them knowledge that you have is just one part of the equation. A teacher is not trying to make the student be as good as the teacher. A teacher is to inspire the student to excel. The capability of the student may in fact surpass the teacher, which then we call it "青出于蓝而胜于蓝"

At the end of the day, we don't need all becomes Albert Einstein. For no lack of a better explanation, someone has to dig the ground, build the foundation. Albert Einstein may have provided the General Relativity that power a lot of science today, but someone is still required to built the telescope to discover the blackhole to support his claim. How much one can accomplish and will eventually be useful to the society is their own decisions, environment and luck. You just try your best and provide and let the future unfold itself.

I have mentioned in my past post before - "A teacher is his own student". If you take pride and responsibility in what you teach, you will naturally learn from it and reinforce your own believes and the way you act. Your other students are not the only one benefiting from the process. That is why I don't feel reserved to teach anyone anything as long as I know I can provide and the student requires the provision. Chinese has a very bad habit rooted from the past which "师傅教徒,凡事留一手", meaning the teacher always have something that they don't fully teach the student. This is an extremely bad practice where the teacher fears the student will eventually be better than them.

For me, my mindset is different. I am very willing to teach everything I know, so that I can create even more things and better things to teach. As a teacher, you must always have new things to teach. The only way to do that is the teacher while teaching, is also constantly improving oneself, so that the teacher will always be better than the student. It's a self improvement mechanism. The fact that the teacher started earlier and have more experience, means that there is a higher probability that anything he/she learns will take on a more aggressive improvement since the foundation is stronger. The outliers is there are really smart students around that can eventually surpass the teacher. It is fine because it means the teacher is successful, isn't it ?
 
Last edited:

Bonadaly

Arch-Supremacy Member
Joined
Aug 10, 2008
Messages
18,685
Reaction score
0
The world is a wide place, and people find themselves useful by fitting themselves into different areas of the world. The hard truth is not all are born the same and even I have to admit that there are smarter and wiser people than me and they might eventually have more accomplishment than me.

Fortunately or not, we do not have the crystal ball, so we can't be sure what will be the eventual accomplishment of any individual. However from time to time, I don't see in a person what he/she can accomplish, but what he/she is willing to do and execute it. Since we do not know the upper limit intellectual of a person, we will then have to assume he/she can always be better than what he/she currently is now. Every attempt to upgrade oneself is a proactive step to better one's accomplishment. As a person who is rendering help, you have to believe that what you are doing is providing progression. Whether the person will execute out what you advocate is up to him or her.

As you look deeper, you will realise more often than not, you don't see a limit in the intellect, but rather you see stubbornness and foolishness of not realising the potential of oneself and hence take up an active role in moving away from the local maximal. The local maximal is a comfort zone because it provides what you have right now. It takes foresight and an adventurous heart to move away from the comfort zone in search of a higher peak. Enlightened people just require little help in pointing out this aspect, while dense people takes a whole lot effort of them to realise it and some may never realise it within their lifetime. Even so, knowing a problem is not a solution. Acting upon the problem is.

There are a lot of reasons why you find certain people only having certain accomplishment at some point and if you compare them to their surrounding, you thought they should be able to accomplish more. If you are fast to conclude, you would have concluded they are slow. On the contrary, it can be a mistake. Among various reasons, it could be they have not realise their own potential, due to family issues that they didn't get the opportunity, their attitude of learning is incorrect and hence slow them down etc. What I'm trying to say is until you have exhausted all approaches, then you can make the most accurate judgement. Now then, how do you ensure you have exhausted all approaches, the answer is you can't because there are just so many ways of approaching the same problem and this is a difficult problem and no one probably has all the solutions.

Thinking skills can be improved, all skill sets can be taught and it is just a matter of time, which unfortunately is a luxury we all don't have. If you can live forever, I'm probably quite certain you will be wiser and smarter than you are 1000 years ago.

As a teacher, your most sacred task is to inspire. Giving them knowledge that you have is just one part of the equation. A teacher is not trying to make the student be as good as the teacher. A teacher is to inspire the student to excel. The capability of the student may in fact surpass the teacher, which then we call it "青出于蓝而胜于蓝"

At the end of the day, we don't need all becomes Albert Einstein. For no lack of a better explanation, someone has to dig the ground, build the foundation. Albert Einstein may have provided the General Relativity that power a lot of science today, but someone is still required to built the telescope to discover the blackhole to support his claim. How much one can accomplish and will eventually be useful to the society is their own decisions, environment and luck. You just try your best and provide and let the future unfold itself.

I have mentioned in my past post before - "A teacher is his own student". If you take pride and responsibility in what you teach, you will naturally learn from it and reinforce your own believes and the way you act. Your other students are not the only one benefiting from the process. That is why I don't feel reserved to teach anyone anything as long as I know I can provide and the student requires the provision. Chinese has a very bad habit rooted from the past which "师傅教徒,凡事留一手", meaning the teacher always have something that they don't fully teach the student. This is an extremely bad practice where the teacher fears the student will eventually be better than them.

For me, my mindset is different. I am very willing to teach everything I know, so that I can create even more things and better things to teach. As a teacher, you must always have new things to teach. The only way to do that is the teacher while teaching, is also constantly improving oneself, so that the teacher will always be better than the student. It's a self improvement mechanism. The fact that the teacher started earlier and have more experience, means that there is a higher probability that anything he/she learns will take on a more aggressive improvement since the foundation is stronger. The outliers is there are really smart students around that can eventually surpass the teacher. It is fine because it means the teacher is successful, isn't it ?

Very Confucianistic.

There is trend in universities like SIT to focus on application than to master the core concepts.
 
Last edited:

KnightNiwrem

Senior Member
Joined
Jun 1, 2014
Messages
1,057
Reaction score
0
Very Confucianistic.

There is trend in universities like SIT to focus on application than to master the core concepts.

Edit: Just completed my edits 9.40pm.

Right. I can't say I'm into the Confucianistic things though...

SIT is weird. You need to master the core concept to apply them in a creative, realistic way.

Also @davidktw, bonadaly:
I haven't replied to david's latest reply yet because I'm not too sure how I should use his reply.

For the most part, I agree with many of his points.

I've had my fair share of having peers ask me for tips on studying, and I've suggested areas for them to improve on first (following the foundation-first approach), but more often than not, they don't really do what is required of them. Sometimes though, I think it's not necessarily stubbornness, but more of laziness. The truth is, they like (would not say no) to having good grades, but they don't want it that much to actually put in the effort to do the dirty work required for it.

I don't necessarily think people are slow. The truth is, our students have been learning more and more things at a faster and faster rate (compared to, say, 50 years ago). The whole concept of improving pedagogy - humans are learning faster and faster because there is an ever improving, systematic way of teaching selected subjects such that each subjects act as foundation for the next, accelerating the learning speed of the next topic to learn.

Hence, my previous question on what one would do if you found their foundation so lacking that it impedes their learning speed in Computer Science Foundation. Honestly, there can be students who "wise up" during their stay in University or JC. However, poor choices made in their earlier years (Primary/Secondary/JC) may often put them in a situation where they find their learning speed in University severely compromised, regardless of their new-found passion and desire for learning. Add that to the blazing pace of University-level modules, many of these breed of students complain about not having enough time to cope with their current modules - asking them to set aside time to recap on their foundation would seem unreasonable in their eyes.

I also agree with david's point on being unreserved about teaching everything you have. I've always stand by that point. I don't believe in a mutually destructive society - of standing at the top by sabotaging all your competitors. Instead, I prefer a mutually constructive society - where you bring your competitors up to your level, and your competitors bring you up to their level; everyone working together to further advance each other's level.

--

All in all, you can say I mostly agree with david's point. But my question remains - how do we handle students who lack the foundation to learn computer science properly?

I think, the most relevant part of david's reply, is that I will eventually find a way to tackle the problem, amidst the organic structure and variety of students and their availability (timetables), if I am truly interested in it.

(I personally think that's not really an answer though - I wouldn't have made this topic if I wasn't even interested in trying to better those I might teach - but thanks anyway).

The greater problem I'm thinking of, with respect to suggesting areas of improvement for the students, is one related to the psychological and emotional aspect of pedagogy.

Truthfully, if we were to take on an honest, direct approach to recommending foundation topics to read up (to improve their thinking skills and learning speed in Computer Science), it draws up thoughts of having to do even more than what they are currently doing (as aforementioned), coupled with a vague feeling of inadequacy in their abilities, that would easily crush the motivation and desire in an aspiring student.

Take, say, hippo, for example. Hippo is a non-university (assuming) students who has some luxury of time (or at least, he isn't facing the demands of learning from 5 different modules). It is reasonable to tell hippo to learn how to read and appreciate a book, if he hasn't learn so already, so that he can learn C++ from books more efficiently. But if you do that with a student who has 20MCs workload to deal with (and some projects to add in), then it might start to seem unreasonable (or at least, insurmountably difficult).

Some ways to circumvent this, could include assuming the students to have these set of skills, then incorporating it into simple problem sets. Students who find their skills a tad rusty in these foundation concepts would be prompted to read up on selected foundation topics so that they may complete their problem sets.

In closing, though, I think it is a little disappointing that teaching finds itself having to resort to tricks in order to encourage the student to push themselves forward without feeling negative about themselves and their abilities (a scene, unfortunately, quite common these days). And yet, it is simply the way forward because it is pedagogically sound; and because that's what humans (and their interactions) are about - emotionally charged.
 
Last edited:

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,550
Reaction score
1,302
...

All in all, you can say I mostly agree with david's point. But my question remains - how do we handle students who lack the foundation to learn computer science properly?

I think, the most relevant part of david's reply, is that I will eventually find a way to tackle the problem, amidst the organic structure and variety of students and their availability (timetables), if I am truly interested in it.

(I personally think that's not really an answer though - I wouldn't have made this topic if I wasn't even interested in trying to better those I might teach - but thanks anyway).

The greater problem I'm thinking of, with respect to suggesting areas of improvement for the students, is one related to the psychological and emotional aspect of pedagogy.

My answer to you as I have given earlier in some way touched on this particular question of yours. The answer is there is no absolute one answer. Before us, there are tens of thousands of teachers, but I really don't think there is any of the teachers whom will agree that there is one formula that works for all. Even if the teacher has a good technique to train students, it will not necessarily bring all students to fruition. Much of the effort *MUST* come from the student. Another quote for you 师傅引进门 修行在个人, if the student doesn't put in the effort, even the best teacher will not benefit.

You are taking too much into consideration like you are trying to be a nanny babysitting them. Is their psychological and emotional aspect of pedagogy really your responsibility or the students' to bear ? Much of the enlightenment or realisation must come from the students themselves. There is a big difference between the students realise themselves why they need to be there and what they should do next, from you tell them what to do.

Truthfully, if we were to take on an honest, direct approach to recommending foundation topics to read up (to improve their thinking skills and learning speed in Computer Science), it draws up thoughts of having to do even more than what they are currently doing (as aforementioned), coupled with a vague feeling of inadequacy in their abilities, that would easily crush the motivation and desire in an aspiring student.

If the student has such low tolerance for hardship and choose to interpret getting into foundation as a setback to their ego, I say let them fail. 欲速则不达 has its truth no matter which era we are pursuing knowledge. I don't get a *darn* if it's thousands years ago or now and what kind of knowledge is pursued, if the students do not have the patience and discipline and determination to walk through the fire, then don't expect oneself to be fire trained. If they choose to give up halfway because it is too hard for them, then they are just not worthy of the trophy.

Take, say, hippo, for example. Hippo is a non-university (assuming) students who has some luxury of time (or at least, he isn't facing the demands of learning from 5 different modules). It is reasonable to tell hippo to learn how to read and appreciate a book, if he hasn't learn so already, so that he can learn C++ from books more efficiently. But if you do that with a student who has 20MCs workload to deal with (and some projects to add in), then it might start to seem unreasonable (or at least, insurmountably difficult).

You talk as if other university students do not have any other workloads to managed ? And all of them failed ? Granted some are smarter and hence more capable and higher chances of succeeding. Is there anything wrong ? Did mother nature really cease to invoke her magic upon the students because the world decided that it is an incubation institute and hence they should be "protected" from the harsh society truth ? The answer is obvious isn't it ? As much as the society if harsh, there is no "force field" that shield any of the students from the harsh truth is, if you can't deal with the stress in the situation you are in now, then chances are you get prune away by the rest who can. You can provide them with some comfort, but that doesn't make reality different. Every students are given 24 hours per day, how many hours do you think each students are really spending to learn something ? Do you really feel every students have made used of the full 16 hours (minus 8 hours of sleep). Who is around to determine if one student has been 100% efficient and still didn't managed to get the rightful reciprocation of his/her effort ? If we can't even measure and determine this, how is there a good measurement of how much is reasonable and how much is not ?

Some ways to circumvent this, could include assuming the students to have these set of skills, then incorporating it into simple problem sets. Students who find their skills a tad rusty in these foundation concepts would be prompted to read up on selected foundation topics so that they may complete their problem sets.

There is a great assumption that any concepts that require acquiring does not has dependency on its own, which is often not the case. Pick up thesis paper and you will find the loads of references at the back which is essentially dependencies to support the claims made in this thesis paper. It's not to say we need to read all the dependencies in order to understand a particular thesis paper. What happens is for any concept to be understood, the student may need to eventually drill down all the way to the foundation in order to understand. It's still back to the foundation without you even realising it. At certain point, you will find each topic as you touch is not a simple topic on its own. It's built upon the understanding of what comes before it. Whether one decide to start from the basic or nitpick, that's their prerogative and the method will determine how much knowledge and completeness will eventually be.

In closing, though, I think it is a little disappointing that teaching finds itself having to resort to tricks in order to encourage the student to push themselves forward without feeling negative about themselves and their abilities (a scene, unfortunately, quite common these days). And yet, it is simply the way forward because it is pedagogically sound; and because that's what humans (and their interactions) are about - emotionally charged.

You see, you are like them yourself if you have not realise it. You are trying to learn something but you found that there is something you find missing, and for all we know, if you have started out learning to be a tutor from the start, you might be able to answer it already. But the fact is you have to start asking this question halfway point in your time. So how is it going to be ? Give it up and admit that you are just not good enough for it, or you think there is something you can do to improve on your situation ? This is the exact situation just like someone trying to pick up on any other topic. There is never the best situation for anything. It's always you have to achieve something right now, so you go and devise a method that works best for yourself. If you can't, you ask around for methods. If you are lucky, you get a good technique, if not, you just have to figure one out yourself. There is no short cuts for such things, it's all about searching, and the knowledge you gain is the search itself.
 

Bonadaly

Arch-Supremacy Member
Joined
Aug 10, 2008
Messages
18,685
Reaction score
0
There is not much focus about web development in the Academia as well even though this area is of importance in industry
 
Important Forum Advisory Note
This forum is moderated by volunteer moderators who will react only to members' feedback on posts. Moderators are not employees or representatives of HWZ Forums. Forum members and moderators are responsible for their own posts. Please refer to our Community Guidelines and Standards and Terms and Conditions for more information.
Top