TL;DR: There's a time and place for everything learned in someone's education.
This is probably a terrible explanation, but I'm giving it my best shot.
Point #1: Math is fun while you are learning it and figuring it out. After that, it isn't so much fun as it becomes exactly what it was meant to be: a tool. It's just useful at that point. "I know how to do X and it's useful in this case." To the point that there isn't a fun way to demonstrate it, I disagree. One of the best examples I can think of was when I took a science class and we were learning about velocity, vectors, and acceleration. The teacher had us build model rockets and launch them, guessing how high they would go based on calculations. That same teacher went to a different school and did the same thing, except on a bigger scale. All the students worked on one rocket with a goal to break the sound barrier. They put a few electronics in the rocket to measure acceleration and g-forces (IIRC). When the students calculated the altitude the rocket would reach, they were pretty close. Not terribly advanced, but advanced enough with actual application of the concept being learned. It wasn't entirely out of reach for the students to achieve, but a teacher needed to guide them there. The teacher needs to figure out how to present the information in an engaging way to draw students in. But, at the same time, the student needs to be willing to fish for the answer and occasionally accept the I-don't-know answer.
Point #2: While I understand the student's sentiment, I agree with your point. Unless a student realizes they could be FIRED over the fact that something is late at a real job, it won't sink in. It's a good thing to have deadlines, otherwise someone would be spending all their time on reddit/HN. A better approach would be to give the student an assignment that's a little tight on the schedule. That forces the student to concentrate on the material if they want to get a decent grade. I think it would be better if a student was kicked out of the class if they repeatedly turned things in late, and in a sense, be fired from the class.
Point #3: You don't need to learn the theory right away. There's no point in drowning a student in theory when they have nothing concrete to anchor it to. If I started talking about Optimization without giving a student an example of a slow program and a fast program that do they exact same thing with the only difference being optimization, they wouldn't have much of a reference point. If you look at a big program that's had execution analytics run against it and realize that a slightly less optimal solution is slowing the program down by a fact of 5, you then have a solid reference point to learn algorithms/data structures and optimization. You then understand the why behind needing to know something, rather than someone standing in front of a whiteboard saying, "Hey, this is important, you need to know this."
This is probably a terrible explanation, but I'm giving it my best shot.
Point #1: Math is fun while you are learning it and figuring it out. After that, it isn't so much fun as it becomes exactly what it was meant to be: a tool. It's just useful at that point. "I know how to do X and it's useful in this case." To the point that there isn't a fun way to demonstrate it, I disagree. One of the best examples I can think of was when I took a science class and we were learning about velocity, vectors, and acceleration. The teacher had us build model rockets and launch them, guessing how high they would go based on calculations. That same teacher went to a different school and did the same thing, except on a bigger scale. All the students worked on one rocket with a goal to break the sound barrier. They put a few electronics in the rocket to measure acceleration and g-forces (IIRC). When the students calculated the altitude the rocket would reach, they were pretty close. Not terribly advanced, but advanced enough with actual application of the concept being learned. It wasn't entirely out of reach for the students to achieve, but a teacher needed to guide them there. The teacher needs to figure out how to present the information in an engaging way to draw students in. But, at the same time, the student needs to be willing to fish for the answer and occasionally accept the I-don't-know answer.
Point #2: While I understand the student's sentiment, I agree with your point. Unless a student realizes they could be FIRED over the fact that something is late at a real job, it won't sink in. It's a good thing to have deadlines, otherwise someone would be spending all their time on reddit/HN. A better approach would be to give the student an assignment that's a little tight on the schedule. That forces the student to concentrate on the material if they want to get a decent grade. I think it would be better if a student was kicked out of the class if they repeatedly turned things in late, and in a sense, be fired from the class.
Point #3: You don't need to learn the theory right away. There's no point in drowning a student in theory when they have nothing concrete to anchor it to. If I started talking about Optimization without giving a student an example of a slow program and a fast program that do they exact same thing with the only difference being optimization, they wouldn't have much of a reference point. If you look at a big program that's had execution analytics run against it and realize that a slightly less optimal solution is slowing the program down by a fact of 5, you then have a solid reference point to learn algorithms/data structures and optimization. You then understand the why behind needing to know something, rather than someone standing in front of a whiteboard saying, "Hey, this is important, you need to know this."