last day (15 days later) » 

15:23
304
A: Can a lecturer force you to learn a specific programming syntax / language?

problemofficerNo, they can't. But they can make you fail the class. Lecturers usually have free rein over the specifics of the material taught. Therefore they are free to choose any technology or dialect as long as it is within the area of the course. Nobody can force you to study anything but if you want to...

Another point is that assignments for programming courses are often graded with the help of an automated test harness. It is not necessarily trivial to set up such a system to work for multiple languages / dialects.
Even if it adds only 10% more effort to grading it's worthwhile for a lecturer to save that time for themself or any TAs.
@J... - and too there's the potential for the OP, if he takes it, to learn how Oracle is different from his "preferred" (i.e., familiar) DB, how to evaluate the pros/cons of the differences, and how to work around them. All valuable skills, should he decide to develop them.
@J... And, of course, if the OP should land a job at a software house using Oracle, asking "Can you not switch everything to Postgre because that's what I know" won't go down well!
Re your note that "MongoDB is not SQL", MongoDB isn't even a relational database! If it's a relational database class, it's not even in the scope of the topic. Not that it matters here anyway.
15:23
I'm not sure if you're trying to imply that Oracle DB is obsolete in your last paragraph...
@user3067860 Can't be. OracleDB is almost forty years old. PostgreSQL is just over 20 years old, so maybe they mean that? ;P
@user3067860. Well established is a better term. I think the point is that academia often prefers old, stable technologies to bleeding edge, which sometimes leads to use of obsolete tech, but not necessarily in this case.
opa
opa
@J... OP could be annoyed that they are learning something obsolete, and they might actually know none of the technologies. In the real world, there is some times a detriment to learning certain technologies which are no longer in use or are niche. In graphics this is a huge problem right now because we still have universities teaching old opengl hat's been far outdated for nearly a decade, and don't model efficient programming nor how a GPU actually works. I don't know if this is actually the case here however.
@opa It isn't the case here particularly. There are newer technologies which are more specialized for certain uses (non-tabular data), but there are still plenty of times when plain SQL is the best choice and Oracle is a reasonable representative if you're going to pick just one.
@opa Oracle is huge. Their deployed market share is massive. It's certainly a very relevant, active, and widely deployed technology. OpenGL is still used for teaching because the core API is very easy to learn and it is still very useful for teaching concepts. Sometimes it's useful to learn in a sandbox where you can ignore tangential complexity and focus on the concepts in a more abstract way. The old OpenGL core is great for that.
opa
opa
15:23
@J... I'm not sure about oracle, but you simply don't know what you are talking about with respect to opengl. I specified old opengl, old opengl is not very usefull for teaching core concepts because it lies to you, and makes the GPU out to be something it isn't. It becomes harder to learn things like Vulkan or CUDA if you come from immediate mode. Its a tool you won't be able to use forever either, as vendors start to deprecate any support for older version of opengl (which I've already run into issues with). Use libraries with opengl if you want a sandbox, we've got GLM for that.
@opa I disagree; probably, I think, because we are imagining different core concepts as the object of the lesson. Immediate mode is useful for teaching precisely because it allows you to forget that there is a physical GPU layer - you get right into geometry, rendering, lighting, shaders, textures, etc, and don't have to worry about the hardware. It's absolutely not an efficient way to program, we can agree, but it does allow teaching graphics concepts without needing to become mired in the minutiae of graphics hardware.
@opa And as for CUDA or Vulkan compute, those have nothing whatsoever to do with graphics at all - at least other than the fact that the code runs on the same hardware. By the inverse, you could easily be an expert in CUDA and not have a clue how to write graphics software. You would have a headstart in understanding how to write efficient graphics code (following from a solid foundation in the hardware), but CUDA doesn't teach you any real graphics concepts like ray tracing, lighting, geometry, or whatever else.
opa
opa
@J... Then don't use the GPU, its way easier to reason about it that way, and you can debug it much better. There is simply no place for old opengl in the classroom. By the same logic OpenGL doesn't teach you any real graphics concepts, its just an API. And the whole thing is middled with hardware considerations regardless of whether or not you use the old api. From texture filtering to alpha blending, it isn't about graphics, but considerations of what your hardware is doing and what you have to do to compensate.
@J I agree that learning some new tech is valuable and if just to be able to compare it to other techs. But at some point it's also an important feat to know what you want to learn and with what you don't want to waste any time nor brain space. I'm not saying that is the case here, I just feel this "learn everything" attitude can lead to people doubting themselves because they cannot (in reasonable time). And it can lead to managers assuming throwing x more random developers on a problem helps, because they can learn anything in 2 days, or that you are a bad dev if you found your speciality.
@J With respect to the university context, I could understand that it is annoying when different courses use different dialects because you may feel like wasting time on these details when it's the concepts behind the language you want to learn in the course - or when the database is just a tool for a practical prject that requires some database. And "wasting" time with learning the dialect might take you just enough time to not be able to do another course. No idea if that is the case here, but I can come up with solid reasons to have a preference for another dialect.
@Darkwing Yes, all valid points. Certainly, at some point, tech becomes obsolete and it isn't worth more than curiosity to learn it in any detail (anyone use a card punching machine lately?). I still think there's value in learning at least one or two generations of tech behind where one finds oneself in the present - it helps to understand how we got to where we are and better defines where we are going in the future.
@J I share your sentiment - in the areas I'm particularly interested in. For other areas, I only find it helpful to learn what I need to get a job done as there is only so much I can keep in my brain and it's less fun and more annoying to learn "not so interesting" things. Again, I agree that at university level, getting some overview is a good thing, but once you've seen like two different SQL dialects, the next one isn't as helpful unless you're focussing on databases / data storage. You surely can learn another one, but it might in some situations be preferable not to.
@J Anyway, I guess at the core we kinda agree, it just felt as a bit general "just learn it, we/the prof know better what's good for you" and I wanted to put that a bit into perspective.
15:23
@opa: Don't use the GPU?!?! You mean you want all my numerical modelling code to run lots slower? That's NOT what I get paid for!
@jamesqf were you previously writing your numercial modelling code using OpenGL immediate mode?
I was "forced" to learn FORTRAN and Pascal as an undergrad. I have never used them in industry. I have, however, used what I learned about languages generally, and about how to design and write programs, in any language. Learn what you can from PL/SQL; much of it will be transferable, and along the way you'll also learn how to adapt to learning new things, an absolute requirement in this industry.
Four points (all made somewhere in this thread already, I know). (a) They might not have chosen the best flavour of SQL to teach, but that's their choice and they might have good reasons for it. (b) There's no way the lecturer can be expected to learn (and mark) every student's favourite flavour of SQL. (c) In real life you don't often get to choose what technologies you are using; they are imposed on you, and it's best to get used to the idea. (d) from a learning perspective, you're learning general principles not syntax minutiae, and from that perspective, any dialect is equally good.
@NateEldredge Even when there is no automated check, tutors need to be able to check your solution. If you use something totally different, they may not be able to understand your (correct) solution.

last day (15 days later) »