A team member of a coursework software development project didn't contribute in any way. Can I remove his name from the project?

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, someone can contribute by working together with the others, and due to working with everyone in different steps, they end up not writing the code and have only contributed to the design of the application. Or testing. Or analysis.
As a second example, maybe their initial code ended up being refactored due to a midway design change, thus technically not having their contribution added to the final product while still having contributed.

I'm aware that this is not the case here, but I want to advise you to refrain from using "not contributing a single line of code" as the main justification. When I read the title, before clicking the link, it implied that you were blindly measuring value by measuring LOC which would put you at fault for using a faulty metric.

However, as this person didn't do anything at all, let's address the real situation.

Whether or not removing the name is warranted depends on whether you are being graded collectively or not. If you all share the same grade, then this person should be prevented from mooching/piggybacking off of your results.

If the grading is done individually, and the professor is already aware (and has evidence) of this person's lack of contribution, then removing the name is unnecessary. It would only be a matter of principle/pride.
While I can certainly understand your desire to not give credit to someone who did not contribute; keep in mind that doing so may come across as petty and may even suggest to outside observers that this person was being ostracized by their team mates, which can end up as a mitigating circumstance in that person's favor.

In either case, I suggest you ask the professor on the right course of action. Since they are already aware of the issue (and presumably have not refuted your claim, since you didn't mention them doing so), having the professor agree to remove this person's name from the project safeguards you from possible negative inferences about having done so.

There are two aspects to this:

  1. Who gets academic credit for this project? Who gets a pass, and what grade (if any)? In my opinion this also includes who shows up in the university's online system as team members for this capstone project, as well as on the poster you mentioned.
  2. Who has copyright for the project source code? Who is listed as a commiter for the project, if it is published as open source software?

You already did all the right things with regard to the first item. You alerted the professor, and provided supporting documentation. As you correctly say in your question, it's now basically in your professor's hands how they want to handle this case further. If you disagree with their decision (if they, for instance, decide to go the path of least resistance and don't do anything) you are free to go one step higher, and discuss the case with your program director (or whoever is in charge of your overall programme). However, ultimately, it is not your decision to grade the project or to decide who has sufficiently contributed to receive academic recognition for the project. In that sense, you can't really unilaterally decide to kick out the student from the team, or not mention them in your poster.

The second item is a different story, though. If your team mate did not contribute code, they can't have any claim of copyright on the resulting project (hanging around in meetings, or formally being part of a team, does not give you copyright to code that you did not write). They have no grounds to require you to acknowledge a (non-existing) contribution if you decide to make your work public, independently of what the university says about this. You may decide to acknowledge them anyway in some way (as in, thank them for some unspecified collaborations or contributions in the README file of the project), but you certainly don't have to list them as authors (e.g., in the source code of files that they have never touched). The easiest, and also most generally useful, way to handle this is to be explicit with what team member did. Have a header in each source file that mentions who edited the file. Have a "contributors" page that lists, rather detailedly, what each team member did. A team member who did nothing will just not show up in either of these lists, making it fairly clear that they were not in any way instrumental to this project becoming a reality.

First and foremost, I think this is a question for the instructor of the course. If the instructor is not willing or not able to remove that person from your team, they are part of your team and that fact should be reflected in the deliverables.

I would suggest that in your final report you and your team-mates make it clear who did what. E.g.

Team members: V, W, X, Y, Z.

  • Requirements definition: V, W, X, Y
  • Development and testing of module A: V, W
  • Development and testing of module B: X, Y
  • Development and testing of module C: V, X
  • Writing of final report: V, W, X, Y