I am in dilemma on how to open a short text, that is giving instructions to someone to write a computer program. The setting is academic/research and that text will appear in opening paragraph on a paper. Strictly speaking by program I don't mean a complete piece of software, but rather some methods/functions that will perform particular tasks and give end results that will also be discussed in paper.

When reading resources in internet and in jargon talk between peers, it is very usual to say " Write a program". But since as mentioned before, this time the setting is academic/research, I am not sure if this kind of statement fits in a text that will be published.

It is important that, if possible, the chosen word does not give an impression that we are talking about commercial software.

Is it ok/usual to say "Write a program" in an academic/research text, or should I use any alternative ? ( e.g.: "develop" ) I would appreciate any help.

  • 2
    In the field of computational physics, I usually use and hear the term "to write a program" or "to write a code". "Design" may to some people mean something else, namely to create a concept but not actually implement it. "Supply" and "Provide" in the above comment may also include obtaining a program/code from somebody else. – painfulenglish Aug 21 '14 at 11:05
  • If you go over to chat, I'll try to help you. – Canis Lupus Aug 21 '14 at 20:20
  • Please, not "to write a code". Instead, "to write code". – David Conrad Dec 12 '14 at 23:04
  • Produce a set of orders for an automated computing engine. – Hot Licks Mar 22 '15 at 18:52
  • "to write a program" is the actual act of writing the physical lines. When I hear "develop a program" I tend to get a fuzzier idea in my mind. For example, a great idea can be "developing" in my mind, but until I write it down it's pretty worthless, isn't it? – Brandin Mar 22 '15 at 19:29

You might be looking for

**develop** a program, or **produce** a program.

but it is completely unclear what you are asking.

Do they have to produce an entire working app? or desktop app?

Include in that do they have to hire the graphics guys, modellers etc?

Do they have to, just, write a certain amount of code that performs some purpose (perhaps more like "developing a class" or a module).

In any event, "develop" or "produce" may help you.


""Do they have to, just, write a certain amount of code that performs some purpose" - from your options that would be the best description of the task"

I'd say "write" a class or module, would be best here.

If you mean developing a class or module over a long period of time, then again "develop" is the word probably.

(As in "Andrey Lunevich developed DLImageLoader and he is a genius" or "A google team kindly developed Volley for everyone to use" sort of thing.)

|improve this answer|||||
  • Apologies if question is unclear - I think the question is actually quite simple, just written in a bit complicated manner, since the setting of where the answer will be used is a relatively important document. "Do they have to, just, write a certain amount of code that performs some purpose" - from your options that would be the best description of the task. – James C Aug 21 '14 at 12:39
  • We are talking about a thesis/dissertation, so it's a few months' work amount of time. And although the result must be a complete and functional program or set of classes/methods, it is not a big long-term project, so as you suggest - "develop" is excluded. – James C Aug 21 '14 at 13:45
  • Right. perhaps the beter question is what word should be using where it says "program". So, maybe "complete a library in objective-C" (err .. Swift), "complete a small consumer app for desktop" .. "complete an interface library" .. "complete a typical API" .. and so on. Maybe that helps! For me "program" doesn't really work or mean the right thing. Cheers – Fattie Aug 21 '14 at 14:23

Consider “Prepare a program that will ...”. To prepare has senses including “To make ready for a specific future purpose; to set up; to assemble” and “To produce or make by combining elements; to synthesize, compound”. It implies planning, developing, writing, and debugging the program, although it does not narrowly constrain any of those activities.

Note, the comment of painfulenglish that supply and provide “may also include obtaining a program/code from somebody else” applies as well to prepare. If you need to rule out use or adaptation of existing programs, add the word original: “Prepare an original program that will ...”, or perhaps more realistically, “Prepare a substantially original program that will ...”.

|improve this answer|||||
  • Right, I think prepare or complete is fine - but I now feel the whole issue is "program". (Quite simplyt, "program" is not, really, what is meant here by James' team, I believe.) – Fattie Aug 21 '14 at 14:24

Since it is not a complete software application, I myself would avoid using "program". The expression that I would use is implement software.

This is used in the software engineering industry to describe the act of creating the code that will eventually become the software product. In formal software methodology, this is the step that translates a specification into an implementation.

|improve this answer|||||
  • But to me, implementing software sounds much more professional than writing a program. – Peter Shor Aug 23 '14 at 20:29
  • @PeterShor: That distinction is a bit nuanced, such as the difference between "painting a wall" and "covering a wall with paint". Anyway, I read the request as wanting a formal description of the activity. – jxh Aug 23 '14 at 20:32

When preparing a set of coded instructions in any language, a good general way off expressing that would be to create, generate or develop code (i.e. I will be creating C# code to find an iterative solution to this partial differential equation).

I would be careful about using the term implement since it mostly refers to the stage of software development where a revision is provided to a customer.

|improve this answer|||||

Structured analysis and design of software demands that you first learn and then teach the student these steps

  • Define the use cases of the situation.
  • Define the components required of the situation and design their relationships
  • State which components are existent, which are to be created, and which are to be modified.
  • For each component define their interfaces. An interface consists of
    • a contract a component commits to persistently provides as a provider
    • a contract a component invariably expects other components to fulfill
  • Align the expectations and commitment of those contracts into a system.
  • Define the sequence of events, activities and responses of each component as part of the fulfilling those contracts. This is best done using UML sequence diagrams.
  • Develop the test cases based on the contracts.
  • Develop the code to complete the software.

The above are the exact concepts you will tell you students to fulfill.

In general terms, you will be telling yourself (not telling the students) that you want them to
  • define the need
  • define the current
  • deduce the deficiency to be fulfilled
  • define the components and their relationships
  • define and develop ways to affirm the functionality of the software
  • define the architecture and processes
  • develop the code.
|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.