Should CS students be keeping a portfolio, and if so, what should it look like? What would you, as a potential employer or college recruiter, like to see in/on a potential employee or student portfolio? Are there ways other than portfolios to showcase a student's work?

Many high schools, mine included, are encouraging, if not requiring, students to build an online portfolio showcasing their achievements and growth through their high school career - and not just in the arts. Many of the students at my school have built web sites for themselves using free services such as Weebly and are adding pages and tabs for every year and every class. Each page or tab displays work completed for the class (sometimes but not always their best) - an essay, a math test they did well on, etc. - with their reflections about what they learned, what they could've done better, how they worked in groups, etc.

What is the best platform for this showcase? Is Github good enough, or would you like to see something a little more formal, like a Weebly page (with embedded code or links to code)?

  • 1
    Keep in mind that a portfolio is meant to be a showcase of tangible projects. Classes, homework, assignments, tests, personal reflections, etc don't fit the common definition of a portfolio. – Clay07g Mar 20 at 17:57

The answer is Yes, but be careful.

As far as employment goes, no recruiter is going to want to go through a student's completed homework.

Professional Portfolios do NOT include practice

However, these students are not professionals. Keeping a website to showcase their practice and skills is good. It's good practice.

When these students graduate, the skills they learned in developing a practice portfolio will help them build a professional portfolio.

To clarify: Professional Portfolios can still contain neat little projects, but they must be built with a use, or even as a proof-of-concept. Certain college projects may qualify here, but pretty much all coding homework will not.

Here are a few random tips:

  • Practice portfolios might help with college recruitment.
  • If a student really feels the need to include a practice portfolio as part of a professional resume or job application, make sure it is completely separate from real-world projects and labeled as practice.
  • Github is normally sufficient. Designers and those who are interested in visual careers would benefit greatly from a website portfolio with links to a Gitbhub (all programmers should demonstrate they can use source control, though).
  • Having a website portfolio is also a good place to show off soft skills in writing and communication.
  • Make sure to get good information to help the students. This is serious stuff. A bad portfolio is worse than no portfolio
  • Include the project and technical details for portfolio items. Don't include tests, reflections, or "what I could have done better". These become useless as soon as the student receives a final grade. You're goal is to prepare them for the real world, not make them type a lot of words no one will read.
  • Portfolios are for projects. Not classes. Relevant classes belong in a resume, in tiny font. No one is ever going read a paragraph about what the student "thought of the class", or even "what I learned". Portfolios are demonstrations, not promises.
  • The other answer by Buffy suggests it will be good for the school to showcase student work. Okay, cool, but forget about that. Portfolios are meant to help the students convey their skills to employers. They are not trophies, so don't give yourself a conflict of interest.
  • Similarly, the permanence of portfolios do not concern the school. You're not a portfolio factory. Keep example portfolios if you must, but ask the student and make a copy of it to demonstrate, privately, to future students.

I'm going to add to my answer, as you seem to have a lot of misconceptions about what a portfolio is.

A portfolio is a concise collection of tangible projects created by or in part by the author of the portfolio

Classes, tests, homework, personal reflections, etc do not belong in a portfolio. Not even a practice portfolio. Do NOT do this, please. This is the opposite of the real world.

No one wants to read about someone's entire educational experience. Ever. Not to say it isn't useful information, but that's what interviews are for. Interviews go over the candidates experiences.

Please remember that resumes are promises of your skills. Portfolios are demonstrations of skill. Interviews are insights into experiences and live demonstrations of skill.

First, yes, portfolios are a universally good thing for students at any level, not just high school. My preference is to require them and also to provide some institutional support for their creation and maintenance. The initial creation of the portfolio can be a project for a second or third year student - graded or not. If there is a course in web development it might be the natural place for such a project.

Rather than just code, however, I think it is much more important that portfolios showcase student writing and communication skills. A student can describe what they have built and the teams they have contributed to with (English/French/...) prose. If possible, the prose should be checked and edited to be clear and correct - support. If the project was a coding project there can be links to the code, but the primary thing is what the student has to say about the project and its value in their education. "What I learned and why it is important." For a platform, I like a web-page (or several pages), rather than a repository. Any code can be either in a repository or a simple downloaded archive file.

I would also try to provide a platform with which the student work is permanently available - at least several years past graduation. Ideally the former student could add to it. There should be some way to contact the author, possibly indirectly, through the portfolio. For minor students, the contact likely must be indirect, through the institution.

Institutional support is needed (or at least very desirable) to assure high quality and to assist reticent students to bring out their best work. Many students are reluctant to "bring themselves forward" for many reasons: shyness, modesty, ...

On the other side, institutional support (editors say) can help some students "tone down" boastful claims that will be seen as a negative by employers. There is a fairly fine line that students may not always recognize.

The permanence of the portfolio is important for a number of reasons. The student will come to depend on it, of course, but it is also a way for the institution itself to keep in contact with the student (and vise-versa) in the future. This will make it easier to bring back former students to talk to current students and will also help in future fund-raising. Likewise email addresses assigned to students by educational institutions should be treated as permanent - keeping that link alive.

If the portfolio is primarily prose, it is easier to provide institutional support as most schools have professionals already skilled at that, though it takes an institutional decision to provide the support. But it can be considered a positive institutional goal to showcase student works. This is especially true if it aids in recruitment and in bringing employers (and donors) to a school seen as doing a truly fine job.

Note that the book Pedagogical Patterns has a pattern: Student Online Portfolios.

  • A colleague (and member here) reminds me offline that student's should't put solutions to their labs in their portfolio. Maybe he will expand that to a full answer. If it is permitted then labs can't really be reused from year to year, which is truly a complication for both the professor and the student. If not allowed, it cuts down on the projects available for inclusion, but the prose is the most important thing anyway, I think. – Buffy Mar 20 at 14:35
  • 1
    I would imagine lab answers in portfolios would only be used for cheating, since I'm sure no actual recruiter would look at them. Unless they are hiring homework solvers. – Clay07g Mar 20 at 18:06

Portfolios should answer two questions:

  • What is this person capable of?
  • What is this person interested in?

And the answers to those questions should be as obvious as possible. I should see at a glance specific examples of what you're capable of and interested in. A portfolio should highlight specific examples of stuff you're good at, and stuff you want to continue doing.

In other words, do not include the minutia of every assignment from every class. Don't even include every class. Maybe list the more advanced CS classes you took, and then showcase your final projects for those classes. If a recruiter / interviewer / whoever sees a student page that lists every course they've taken, they're going to just close the window without reading anything. You should make it as easy as possible for the reader to get an idea of what you're all about.

With that in mind, you should also provide embedded demos if possible. Don't bother linking to executables that require a download, because nobody is going to download anything. If you can't provide an embedded demo, then screenshots or animated gifs are good enough.

Also, simple website creators like Weebly are good for some things, but not for creating a computer science portfolio. Having a site like that is a bit like having an email address: it's fine for some people, but it's probably not something you want to put on a computer science resume.

Instead, I'd recommend putting together your own basic HTML page. It doesn't have to be fancy, but it should be yours. I really like GitHub Pages for this sort of thing.

One particularly nice, if a bit flashy, suggestion a supervisor once gave me for students to showcase their work is to build a phone or watch app. That way when an employer asks "what can you do for us?" you simply whip out a phone app, hand it to them, and say "there you go".

Perhaps not so brazenly, but you get the point!

A portfolio is basically a demonstration of your work ability, so it should mainly include working projects.

Not homework, not scratch work, not "mock ups." But something that is actually functional, and implicitly answers the question "What can you do for me?"

Your Answer


By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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