What should be included in student portfolios for CS? 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)?
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.