A message from our CEO about the future of Stack Overflow and Stack Exchange. Read now.
306

No, 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 pass his exam or the course by e.g. submitting lab problems, ...


302

Yes, you should. First, most scientific software is terrible. I'd be very surprised if yours is worse than average: the mere fact you know design patterns and the difference between recursion and loops suggests it's better. Second, it's unlikely you'll have the incentive or motivation to make it better unless, or until, it's needed by someone else (or you ...


284

I don't feel that general academic ethics obliges you to report this, unless you have reason to believe that it might be endangering the research of the lab (giving inaccurate results, introducing viruses to lab computers, etc). You will have to make your own judgment as to whether you are obliged to report by any of the following: your own personal code of ...


182

I would stay away from his "personal laptop" in the future and avoid peeking at other people's "very personal" screens. It is not your job to report this. And you should not be looking at other people's screens. He decided to use the software on his personal station, not on the resources of the university, so it is none of your concern. It is a typical "none ...


141

Unless there is something in the course description saying otherwise, the lecturer can choose the syntax for all submitted coursework and exams. Picking a specific syntax makes the lectures less confusing, as well as simplifying testing and grading of coursework and exams. To pass the course, you will have to learn Oracle SQL. You may be confusing "...


139

You should create a reproducible test case that demonstrates the flaw conclusively. If you are that confident and the software is that widely used, it warrants publication in a technical journal. They key is to involve the company. Show them your test case and mention you have interest in publishing the result. Offer to collaborate with them on the ...


120

I'll have a go at this. This is mainly my personal view based on my use and implementation of academic software. Like many of the comments already mentioned, I don't think bad software is specific to or even more frequent in academia. That said, I think there are a few reasons why it occurs that are specific to the field. Software is not a priority In ...


107

For me it seems that the reasons are two: the belief that code is only a tool, a particular implementation being secondary to the idea or algorithm, the historical residue (it was unpractical to print a lot of pages; especially as no-one could copy-paste it). Additionally: many scientist seems to be afraid to show their code in public, as they are aware ...


94

LaTeX is the industry standard. Note there is also a very helpful Tex/LaTeX site here on Stack Exchange.


87

I always like to show the students Wolfram Alpha in freshman math courses. (Many will already know about it, whether you show them or not.) There are several reasons for this. The first is that it's a useful tool, both for checking solutions to homeworks, and also for later in life. But the more important reason is that many students are skeptical of why ...


83

In addition to @MarcClaesen's answer let me add a chemist's point of view. I'm a a programming-affine chemist. From my experience, that's a rare species. Maybe less rare on these sites. Though maybe not more rare than a computer scientist in a chemistry lab who implements good laboratory practice... One important point to keep in mind is that students (at ...


83

I would clean it up a little and share it. I've released a lot of code over the years, and also not released code for the reasons you give. Go through it and and comment it, at whatever level you can. Leave in "failed attempts" and comment them as such. Say why they failed, and what you tried. This is VERY useful info for people coming after you. Make ...


82

A free, fairly portable, and very complete tool for general illustration is Inkscape. It uses SVG as its native file format, and aside from attempting to be a decent drawing tool in its own right, one of its design goals was to provide complete coverage of the features available in SVG. For block diagrams, flow charts, and other simple sketches of process ...


77

As drawing software, I use OmniGraffle which is much more modern that Xfig, but based on similar principles. It's only available for the Mac and is not free, as far as I know. With little effort, one can produce very attractive diagrams. I also use Tikz/PGF. It produces very nice diagrams and is very flexible. On the other hand, it requires that you specify ...


75

Rephrased a bit, your question says: Can a lecturer base their course on a specific dialect of a tool? I can and I do. But I'd like to highlight a bit different aspect of this. A proper university-level lecture is (almost) never about concrete tools and languages. It's about concepts. I am teaching Functional Programming this semester. The lecture ...


68

I would suggest a different tactic altogether: Give them a license to use the software as well as any and all updates for free. Support should not be free but done by others under your instruction. In return ask them to sign over any previously perceived ownership of intellectual property. Next ask that they help you by providing suggestions for improvements ...


68

I do not think that this is an ethical question in the first place. Reproducibility is not harmed by the requirement that money needs to be spent on buying software or setting up an experiment (or are there open-source particle accelerators?). While open source solutions are preferable for many reasons, there are clearly cases where using some proprietary ...


68

I work in a biomedical field and most of us are awful programmers. We tend to be more interested in getting the underlying back-end algorithm to work than worrying about the front-end, comments, documentation, version control, unit tests, etc. My suggestion, would be to look through the web pages at a nearby university and see if you can identify someone ...


67

Can a lecturer force you to learn a specific programming syntax / language? Of course they can. Teachers are generally in charge of designing their course in whatever way they think is best suited to reach the intended learning outcomes. In some cases (especially more project-oriented courses) this may mean leaving the choice of technology open to students, ...


58

No. Almost no one cares. You should learn LaTeX if you intend to work mathematics and will need to write up your work. It's much simpler to typeset formulas in LaTeX than MS Word, and it's also free.


56

Yes! Especially if your paper is e.g. about a new/improved algorithm that you've implemented, or you do significant non-standard data analysis, or basically anything where reproducing your results means re-implementing your software. Papers seldom have room to give more than an outline. I know I've spent (= wasted) much too much time trying to implement ...


56

Can I remove someone's name from an academic software development project that didn't contribute a single line of code? Just to focus on the title itself; lines of code contributed is not an accurate summary of contribution. This is a variation on the workman's fallacy of "management is useless because they don't directly make the product". For example, ...


54

I would recommend Inkscape: vector graphics powerful free intuitive cross platform


54

I think there are two kinds of reproducibility: The ability of someone else to run your code and obtain the same output. The ability of someone else to write their own code that does the same thing as yours based on your description and on examination of your code (reproduction from scratch). The second kind of reproducibility is much more convincing, ...


54

tl;dr: Version control is harder to set up, but makes it safe to work on the same file, and makes it easy to track history (i.e. previous versions). Pros and cons of syncing files Yes, the biggest advantage of things like Dropbox (I use it as well for backuping and synchronizing my files) and SugarSync is their easiness. They may work for collaboration ...


51

This question has become an important one as the push for greater reproducibility in computational research grows. Use of closed-source software is an acceptable part of research in most fields. Nevertheless, the following viewpoint enunciated by John Claerbout is becoming more widespread: An article about a computational result is advertising, not ...


50

¿You think your code is messy? I have seen (and attempted to work with) code that gave me nightmares: Five levels of if True nested, scattered at random places through the code. Create an array of zeroes, convert it to degrees, take the cosine, and back to radians. Then, throw away the result. On a software under heavy development, the list of "supported ...


46

I wrote software on my own time, by my own decision, and with my own resources during my undergrad career at a university in the US I want to go through the same thing, but the head of the department seems to refuse to pay (or at least say they are unable to pay for it) because the software was just a "senior project." You have a disagreement about the ...


45

HTML and CSS for typesetting? No, just no. HTML and CSS were designed for looking good on screen, not paper. Although there are CSS styles for page printing, using a medium for a purpose other than its original design will at best be an overkill (if it works) and in most cases a utter source of frustration. The obvious choice seems to be LaTeX... I ...


Only top voted, non community-wiki answers of a minimum length are eligible