12

I’m a mature student, starting a part-time MSc. computer science degree after a decade in industry, after previously graduating with a BSc degree. I am out of touch with academia, but I am excited to get into it. I have an open mind to this all and I know it’ll be a bumpy ride.

My first module is on Python programming. The course book covers Python and a bunch of Python libraries. It’s basically just a bunch of documentation assembled in a PDF file with some Python history.

The one and only piece of graded work is a written assignment. The “task” is to take the few CSV datasets provided, matching columns in one to columns in another and matching single “x,y” pairs from another dataset to previously identified columns. The criteria for one part is the lowest mean squared error, and for the other it’s not explained quite so succinctly, but it’s a calculation. It’s not specified in any sort of terminology I can relate to, what kind of problem were solving here. The task specification is written in an imperative style and is not really explaining much of the “why”, just a prescriptive “how”.

Where I’m getting lost is, what we’re being assessed on does not seem to be much about Python. We’re to think of a research question which we should then investigate and in doing so, shoehorn this program into it as if it were our own solution to the problem which has not actually been articulated.

We must write 14 or so pages of research. The source code for the program is to be an appendix. Having seen the assessment guidelines, almost all the marks will come from the main body of text, not the source code.

In the chat with students and the course coordinator, people keep asking the same question: can they do something more related to Python? The answers is always no, because it’d be too “documentary” rather than “research”.

But the only suggested topic is always around the criteria by which one set of data are mapped to another. The coordinator makes no secret of his wanting to see us research maths for 14 pages. We have other modules covering maths and there is zero mention of maths in the module description including the learning outcomes.

Is this unusual? It strikes me as quite odd. The few people I know who have done Masters degrees are baffled to the point of annoyance at this.

NB: So far my questions to the coordinator for clarification have gone unanswered, but I only anticipate the same answers everyone else got already. I’m a student, but I’m a paying customer first, and like any sensible customer I will be sure to get my money’s worth.

11
  • 28
    Well, there are a bazillion different Python libraries. Determining which library, and which function(s) in the library to use is often the much harder problem then writing the program to do it. Documenting what your assumptions on the data and analysis are, going through the libraries to find routines, and documenting which routines actually do what you have assumed the analysis should be seems pretty reasonable, all in all. I would expect a Master's degree holder to be able to figure stuff like that out. It isn't researching 'math', it is analyzing the problem and looking for how to solve it
    – Jon Custer
    Feb 16 at 21:27
  • 36
    "Researching math" (from an applied math/statistics perspective) would be inventing Mean Squared Error as a target to minimize in an estimation problem (and explaining why that was a sensible thing to minimize, or why it's better than minimizing something else), or perhaps finding an efficient algorithm to minimize MSE for such a problem. Someone has already done that, long ago. Now that they've done that, writing code to apply their existing algorithm to some specific data is purely a programming task.
    – Bryan Krause
    Feb 16 at 22:22
  • 16
    Understanding specifications and finding resources (such as mathematical techniques useful for solving the problem) are integral parts of software development. There is more to being a programmer than coding. It sounds to me like the course is trying to put programming into a more realistic context to give you a broader range of programming skills, rather than focussing just on "coding". Feb 17 at 12:38
  • 16
    I’m a student but I’m a paying customer first, and like any sensible customer I will be sure to get my money’s worth - or else what? Be careful what you wish for - your instructor can read aloud the textbook in class and give out leetcode questions as assignments, that would satisfy the contract for "one semester of Python learning". It might even satisfy you, but it would certainly be worse teaching by any objective standard.
    – EJM
    Feb 17 at 13:27
  • 3
    This is exactly how you will use programming in the real world, especially as a computer scientist. Science is carried out in the language of mathematics. Computer science applies computation to those mathematical problems. What, exactly, were your expectations when going into this? Perhaps computer science is not the right field if you're looking for exposure to different aspects of software development. If you were looking for mobile apps, games, web development, or something else then this is entirely the wrong discipline.
    – J...
    Feb 18 at 15:01

5 Answers 5

65

I’m being asked to research maths for my Python module

No, you are not. It sounds like you're being asked to do some elementary data analysis or data science. "Researching math" is a different animal altogether...just take a look at the Annals of Mathematics to get a sense of what "researching math" looks like.

We’re to think of a research question which we should then investigate...

Sounds like a decent exercise -- here is some data, now do some work to understand/visualize the data and confirm or reject a hypothesis.

...and in doing so, shoehorn this program into it as if it were our own solution to the problem

This is a little more alarming....I hope the existing program is just a starting place which students will have to greatly modify and expand upon.

people keep asking the same question: can they do something more related to Python? The answers is always no, because it’d be too “documentary” rather than “research”.

Sounds like the instructor and the students have different visions for the course. The instructor sees this as an "introduction to data analysis using Python," while the students see this as an "introduction to Python."

It is hard to judge such matters from the outside, but I suspect the best option is somewhere in between. You are doing a science degree, not a software engineering degree, and so learning to use code to study data and solve problems, rather than just coding for its own sake, is likely appropriate. On the other hand, students with no coding background at all will need to be taught rather a lot, and so I'm a little alarmed that you only have one graded assignment for the entire semester. Coding, like algebra, is one of those things that you learn by doing, and so I would have expected you to have several hours of Python programming homework per week.

9
  • 11
    As far as coding background, sounds like it's a Computer Science MS, so they have that. Then even if they don't specifically know Python, a 1-week "Python for programmers" crash course would be common enough. Feb 17 at 7:52
  • 4
    @pinkstudent it sounds like your degree program is more specialised than just computer science, is there a more detailed title of the dergee programme? Feb 17 at 12:40
  • 3
    The Annals are hardly a representative example of the breadth of math research. Feb 17 at 19:41
  • 10
    @AnonymousM - true, however, skimming through the Annals should clarify why OP got such a negative reaction when they referred to their data analysis exercise as "math research."
    – cag51
    Feb 17 at 19:59
  • 7
    To be fair, OP's usage of "researching math" as "doing some light self-study [googling, reading on Wikipedia] to find out what math to apply" is pretty common. When my wife says she researched what auto insurance gives us the best rate she also does not mean that she got a PhD in it. Words can mean different things to different people.
    – xLeitix
    Feb 18 at 11:55
34

It seems as though you are been asked to use Python to solve a moderately complex problem. There is nothing wrong with that. Programming languages are written to be useful (mostly, at least) and this is just an application.

Also, you are in a masters program in CS and so the application is not that far from the mainstream of data analysis that researchers normally do. So, yes, being asked to do something hard is pretty usual at the masters level (or even undergraduate).

As for the lack of clear definitions, of things, I suspect that you are expected to find them, just as anyone would on a real project. And as you advance, the projects you will need to be able to handle won't all be simple.

I don't know how it is graded, but the structure and correctness of the implementation can/should be an important element.

This is what computer scientists do to apply knowledge to a given domain. Look on it as an opportunity.

3
  • 6
    This! At the master's level you should already know how to hold a hammer and be able to figure out on your own how to use a few other tools. It is time to learn how to do something useful with those tools. Feb 17 at 7:47
  • 1
    I don’t want to say that it’s trivial but the code we must is write is almost written for us. The task is very proscriptive in terms of stating that the code must “do this then that then this then that”. Turning that into Python code does has not been hard and I don’t see other students struggling. And this is reflected in the fact that the code appears to make up a small part of the grade. The bulk of the assignment is to pick part of the unspecified problem which the code addresses, and to investigate it over 14 pages. So methods for finding bet fit between datasets etc. Anyway, thanks! Feb 17 at 12:01
  • 14
    @pinkstudent That's what real data analysts do all the time. Coding is "easy", especially with all the libraries that are available these days, figuring out the problem and how to apply these techniques to it is the difficult part. You're not a beginning coder if you're in a Master's program.
    – Barmar
    Feb 17 at 15:20
20

Mine won't be the answer your looking for...

I'm not a professional programmer. I'm an electrical engineer. But I frequently use programming to solve problems, and the simple reality is that whether as a hobby or as a paid employee, it's my job to figure out how to use the tool to solve the problem. And that's the important point. You're not taking a class just to learn how to use the tool. You're also taking the class to learn how to apply the tool. To use a metaphor, nobody takes a class just to learn how to use a hammer. They take classes to learn how to make cabinets. And it's not unreasonable for the instructor to believe you already know how to use a clamp.

What's unfortunately hurting here is that, as a mature student, you're not taking this class hot on the heels of four years of mathematics courses, such that the instructor can reasonably assume that you have a host of pre-existing skills to immediately draw from. I can feel that pain. It's been 30 years since my last engineering class. If I went back today to get my masters, they'd rightfully expect me to remember all my Calculus courses — and I'd be buried in my old textbooks trying to remember what I once knew but haven't used in decades.

Unfortunately (and here's the part you won't like)... that's not the instructor's problem. No, I don't think it's unreasonable to expect you to do something you should have learned how to do in your undergraduate courses. But I do sympathize.

Having said that. If your co-students are asking the same questions you are, then there is a problem because that would mean the instructor is asking for skills more-or-less no one has learned. I read your post several times, but I can't come to a clear conclusion. Are the other students having the same trouble you are? Or are they asking their own questions and are only getting the same quality of answer you're receiving to your question? Maybe I should have asked about this before posting an answer... but in the long run, I doubt any argument made here will sway your instructor.

2
  • 1
    Thanks for your answer! Your empathy is valuable. In general the other student have the same questions. I think partly the written assignment document could be better written. There are three pages explaining “the task” and only seven or so words at the start which suggest that actually you need to think up your own research topic. My undergraduate contained next to no maths as it wasn’t CompSci so I was expecting lots of maths self study. Just didn’t think it’d bite me in the Python module haha! I will soldier on! Meaningful goals are never easy. Feb 17 at 11:52
  • 7
    I'm inclined to agree with this answer. The OP says it's university, for a master's degree after ten years in the industry; I don't think uni is where you go to learn a programming language, it's where you learn the theories behind programming languages and what to use them for. Python is the hammer, and you don't need university to learn how to use a hammer.
    – cthulhu
    Feb 17 at 12:26
8

This assignment seems like an exercise in reverse conceptualization.

In most programming/soft eng courses you are given the everyday problem, then you model the problem situation, do an algorithm for it and finally write code to suitably compute for it.

But here the instructor wants the class to do things the other way around. He/she wants all students to take some code (here, code they wrote themselves so they will be intimately familiar with it) and find everyday situations that would make suitable use of this code.

The question therefore is what sort of situations make use of the sort of dataset manipulations you have been asked to do in the code that you have to write. It may be that the situations you think up would also require additional code modules. But that doesn't matter as you can always either code these up or use existing libraries as suggested by a previous answerer.

In a way, the instructor has made things easy for you in as much as strongly suggesting that you "research" the math involved in your written code . . .

Hey, I like this professor's teaching style !

2
  • This is an insightful answer and something I had considered. I just would have expected some more focus on the topic of the class rather than maths. Thank you! Feb 17 at 11:54
  • 1
    It reminds me of an episode in Paper Chase (a 70s series about Ivy League Law School students) where the professor gives out a huge list of case studies to do for an assignment. Only way for each student to get a respectable amount done was to barter those he had covered in exchange for some he hadn't but another student had. A fair barter involved a complex written agreement between the student pair - a primitive pact, if you will. At that point the more perceptive students realized that their professor was giving them an everyday task demanding application of a contract. Contract Law 101.
    – Trunk
    Feb 17 at 13:04
2

I am in a different field, but your professor isn't having you research math. To you, it is researching math because you have never heard of this before. He is making it obscure because there is an entire academic field that does this specific problem. He has disguised it so you cannot google it. If he had used terms that you recognize, this would be a ten minute problem, because you can google the solution.

The irony here is that the code sort of doesn't matter. This is somewhat like a "print{Hello World!}" problem with some sophistication.

He is forcing you to work with a good requirements document that is a bad requirements document for you because you are not a subject matter expert. He is asking you for dihydrogen monoxide instead of water.

You are not researching math, you are researching English. He is forcing you to explore Python. He isn't feeding you Python, he is starving you and making you hunt your own food. While you are hunting the food, you are documenting it.

This is not an undergraduate program where you jump through a set of hoops and a degree comes out on the other side. You are being required to prove independent mastery. You are being required to prove that you no longer need adult supervision.

I have never taught in your field, so my only criticism might be that there should be more work and assignments. However, there may be enough struggle in this for enough students that you would all fail if this were replicated over many assignments. After all, it bothered you enough that you felt you needed to post about it on the internet. It might be doing its job.

1
  • The irony is definitely not wasted on me haha! I guess you’re right, this will make it all the more rewarding once I finish it. Thanks. Feb 19 at 9:43

Not the answer you're looking for? Browse other questions tagged .