Any practical reason why the swap? Must have taken a lot of effort.

  • What do you mean? The new Pset7 (see docs.cs50.net/2017/x/psets/7/pset7.html) uses Python, Html, CSS, and SQL. May 17, 2017 at 21:44
  • I mean, all of 2016's are using PHP. with $ signs everywhere i search on the internet. haha. It also seems like they are using HTML/CSS instead of Jinja..? In pset7 for 2017, there's no mention of using any CSS to solve any issues.
    – nvs0000
    May 18, 2017 at 15:40
  • Sorry for the late reply - I was out of town. As for the CSS, I meant that there is a file in the pset7 folder that uses CSS - styles.css. You don't use any CSS to solve any issues, but you are allowed to stylize your web app differently. May 19, 2017 at 15:01
  • No worries. Thanks SuperNovaCoder!
    – nvs0000
    May 19, 2017 at 16:40
  • No problem! Glad to help :-) May 19, 2017 at 21:28

1 Answer 1


This is part of the broader change from PHP to Python, which you allude to. The simple explanation for that change on CS50's Medium blog was "It’s time."

Switching to Python enabled CS50 to use the microframework Flask for pset6 and pset7. Flask uses Jinja syntax in its templates, which you can read more about here.

However, it is inaccurate to call this a "swap." There is a file of CSS code in the static directory for both pset6 and pset7, and every file in the templates directory is indeed an html file. These template files simply leverage Jinja syntax.

A deeper understanding of Flask and MVC in general may also shed light on the reason for this change. This tutorial is a quick and dirty intro to how Flask works.

  • Thanks for spending the time and giving the links!
    – nvs0000
    May 19, 2017 at 16:40
  • You're welcome!
    – Peter
    May 19, 2017 at 16:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .