Feature History

Python Morsels has changed a lot since its first inception back in February 2018. Here are some of the features we've added since then.

Reflecting on what you've learned

Aug. 18, 2021

Learning isn't a straight line; it's more like a spiral (an upward spiral). Reflection is a really important part of completing the learning spiral from one loop to the next.

Many of you have been using reflection on your own to multiply your learning abilities while using Python Morsels. It's time that this finally became an official part of Python Morsels itself.

To that end, at the bottom of Trey's solution walk-through, there's now a learning reflection form.

feature screenshot

Syntax highlighting for code blocks

Aug. 2, 2021

Pretty much since the beginning of Python Morsels I've had this item in my to-do list:

  • Add syntax highlighting to the Python code blocks in exercise problem and solution statements

Enough of you have requested this that it's finally been done. All exercise problem and solution statements have syntax highlighting which matches the same color scheme as the code editor on exercise submission pages.

The articles shown at the ends of screencasts have syntax highlighting in their code blocks as well.

feature screenshot

Bonus recommendations by skill level

July 28, 2021

It's hard to not complete all the bonuses for an exercise, right? Even when some bonuses are much more challenging than others.

Sometimes, one bonus can turn a novice-level exercise into an advanced-level exercise. To make sure you don't get overwhelmed, Python Morsels now includes bonus recommendations for exercises that are in multiple skill levels.

If you receive an exercise in the Novice skill level, you'll get a lower maximum bonus recommendation than if you picked the same exercise from the Intermediate skill level. These are just recommendations of course, so you still don't need to complete all the recommended bonuses (and you can go further than the recommendation, but only if you're up for putting in extra time).

Bonuses that aren't recommended will show up in gray as you solve the exercise so you'll know that they're not recommended.

feature screenshot

Duplicate solutions

July 21, 2021

You're working on a Python Morsels exercise, you got the base problem working and now you'd like to attempt the first bonus. But you want to edit your code into something new without losing your current working code. You can now duplicate your solution!

If you hover over a solution a copy icon will appear (it looks like two pieces of paper, one on top of the other). Click it to duplicate your current solutiion.

feature screenshot

Links now open in new tabs

July 20, 2021

Ever clicked a hint link in an exercise problem statement or a link to a related article on a screencast page and wished the link had opened in a new tab/window (rather than navigating within the current tab)? Well, that's how exercise pages and screencast pages work now.

It might seem like a small change (and it is) but it's hopefully a handy one. No more accidentally navigating away from pages in the middle of writing code or in the middle of watching a screencast.


Preview paths before starting them

July 9, 2021

Not sure whether a particular exercise path is for you? You can now preview exercises with an exercise path before you start it.

You can also see which exercises you've already done from that path.

feature screenshot

Python 3.9 Supported

June 28, 2021

The web app now supports Python 3.9 solutions!

Python 3.9 has been out for over 6 months, but the Python Morsels web app hasn't had support Python 3.9-specific features.

We've changed the way we test code to make it easier to upgrade Python versions, so we should support Python 3.10-compatible code much sooner after its release (which should be later this year).

feature screenshot

Global Screencast Settings

June 21, 2021

You can now customize your screencast watching preferences site-wide.

Want to watch all Python Morsels screencasts with captions enabled by default? There's a setting for that!

Don't like clicking the "play" button and want to auto-play screencasts instead? There's a setting for that!

Or would you prefer to hide the videos and just read the text instead? There's a setting for that too!

feature screenshot

Topic Trails

May 19, 2021

Python Morsels now includes topic trails!

Topic trails are groups of screencasts that I recommend watching in a particular order.

You can watch topic trails from start to end or you can jump in part way through. Regardless of how you watch/read each screencast, these topic trails will show you the context of the current screencast you're watching in relation to other screencasts on the same topic.

feature screenshot

Problem text included in recommendation email

May 13, 2021

For all users with access to the exercise vault, you'll now see the problem statement in your exercise recommendation email each Monday.

Trial users will receive exercise previews and All Access users, you'll receive the full problem text in each week's email.

This has been the most commonly requested feature since we launched the All Access plan a few weeks ago and I'm excited that we've delivered on your requests.

feature screenshot

Newly revamped vault page

April 27, 2021

Each section of the vault page is now broken into sub-sections.

The first section, "in progress", shows exercises you're currently working on. The next section, "recommended", shows the next exercises we recommend solving. After that is "coming up", which are the rest of the unsolved exercises in that section.

There's also "done" for exercises you've solved and "skipped" for exercises you've skipped.

We hope this new layout is more helpful than the giant list of exercises that showed up previously.

feature screenshot

All Access Plan: see all exercises!

April 13, 2021

Users have requested this for 3 years and we finally made it happen.

There's now an All Access plan in Python Morsels. This plan grants access to the full exercise vault.

Just like Flexible Mode, this plan includes a weekly recommendation email.

The All Access plan replaces the Standard plan and it's $20/mo or $200/yr as well just like the Standard plan was. But if you sign up for the All Access plan by April 30, you'll save $50 each year. See more on the All Access plan sale here.

feature screenshot

Preview more exercises

April 10, 2021

Previously Flexible Mode users could preview the next 3 exercises in each skill level. Now you can preview the next 5 exercises!

There's also a "See what's coming up" link which will show titles for all current exercises in each skill level.

feature screenshot

All new users have Flexible Mode enabled by default

Feb. 24, 2021

Flexible Mode, as announced a couple months ago, allows you to choose your own exercises and use a point system to help you track your progress.

Flexible Mode is now enabled for all new accounts. So if you signed up since the day of this announcement, you're already in Flexible Mode!

If you haven't already enabled Flexible Mode, you can find out more about Flexible Mode (and enable it) here.

feature screenshot

Screencast watching and topic reading is automatic now

Feb. 12, 2021

When you finish watching a screencast while logged-in, the little "Watched" toggle will automatically flip and if you have Flexible Mode enabled, you'll get 4 points.

When you scroll all the way to the end of a topics page the "Read" toggle will also flip the same way.

feature screenshot

Better profile pages for Flexible Mode users

Feb. 12, 2021

If you enable Flexible Mode on your account, your profile page will now show your points on your account.

feature screenshot

Submission Page Improvements

Jan. 29, 2021

You might notice the exercise submission page looks a bit different. The styling and wording has improved some over the last week, but there's also a couple new features.

The "Test Failures" tab (previously called "View Test Output") now shows the number of failing test cases (including the bonuses). The smaller that number is, the more test methods are passing.

For Flexible Mode users, the points shown when submitting an exercise are also a bit simpler than before. Previously all points you'd received for that exercise would be shown each time you submitted it. Now only the new points are shown.

feature screenshot

Screencast recommendations

Jan. 5, 2021

The dashboard page now shows recommendations for which screencast to watch next.

The recommendations are for an early unwatched screencast as well as the latest couple screencasts.

feature screenshot

Points to help your goal tracking

Jan. 4, 2021

If you have Flexible Mode enabled, you'll now receive points for exercises when you solve exercises, watch screencasts, and keep up your learning habit.

You'll get up to 25 points for each exercise solved, 4 points for each screencast watched, and up to 24 habit points every fortnight (14 days) for keeping up your learning habit.

You can see more on how points work on on the points help page.

You'll need Flexible Mode enabled to start earning points.

feature screenshot

Flexible Mode (beta)

Dec. 29, 2020

Currently all Python Morsels users get an automatically-assigned exercise every week. If I send you an exercise you don't like, you're stuck with it (though you can always email to ask for a different one).

Flexible Mode adds some flexibility to your weekly (or monthly) exercise routine. With Flexible Mode enabled, you'll get 1 exercise credit each week as well as a suggestion for which exercise to solve next.

If you're not interested in my suggested exercise, you can skip it and choose a different exercise instead.

You can even sample exercises from different skill levels.

This feature is currently in beta and can only be enabled from this page.

If you try this feature out, I'd love to hear your feedback on it.

feature screenshot

Keep track of which screencasts you've watched

Dec. 8, 2020

You can now keep track of which screencasts you've watched already. At the moment this is just a simple toggle to make it easier to spot which screencasts you haven't seen yet, but this feature will likely get a bit smarter later on.

feature screenshot

Weekly Screencasts

Nov. 30, 2020

It's official: Python Morsels now includes weekly screencasts. Whether you're on the monthly exercise Lite plan or the weekly exercise Standard plan, your Python Morsels subscription will now include access to a growing number of screencasts.

Some screencasts will be free for all and some will be premium, just for subscribers. I'm committing to publishing at least one new screencast every week. Each screencast will be between 1 and 5 minutes long. You can find more info on this announcement here.


Annual Lite plan

Nov. 30, 2020

Earlier this year we added a Lite plan to Python Morsels which includes one exercise per month (a more manageable habit for most than one per week).

There's now an annual version of the Lite plan. You can save 17% off the monthly Lite plan (2 months free every 12 months) by switching to annual billing.


Screencasts Page

Nov. 13, 2020

Missed checking in on Python Morsels screencasts for a couple months and want to see what's new? You can now easily browse all Python Morsels screencasts from the screencasts page!

You can find this page in the Watch link in the top navigation bar.

feature screenshot

New features and screencasts announced in each email

Oct. 26, 2020

Each problem email will note new additions to the website that were added in the last week.

These additions might be new features (like this new feature) or new screencasts.

feature screenshot

Gift Python Morsels to a friend via exercise credit bundles

Oct. 15, 2020

Want to gift Python Morsels to a friend? You can now!

You can now purchase redemption codes worth 12, 25, or 52 exercise credits.

You can send an exercise bundle to a friend or redeem one for yourself.

feature screenshot

Share your progress on social media

Sept. 30, 2020

There's now a button on each exercise submission page that you can use to share your progress on Twitter!

feature screenshot

Added public profile pages

Sept. 16, 2020

You can now share your achievements with friends, colleagues, and future employers.

feature screenshot

Multiple versions of exercises

Aug. 3, 2020

You can now save many different solutions to the same exercise, giving each version a unique name to help yourself keep track of each different way you've solved the exercise.

Want to try out a different approach? Start a new version! You can always delete it later.

feature screenshot

Added topic-based "exercise paths"

July 14, 2020

In addition to the usual skill levels, you can choose to work through short exercise paths on specific Python topics.

This is a way to get deeper practice in one particular Python topic over a number of weeks. There are both novice-level paths and intermediate/advanced-level paths on many topics, including classes, command-line interfaces, decorators, iterators, and even descriptors.

You can find the exercises paths over on the paths page.

feature screenshot

Improved pause/resume feature with credit-based system

June 16, 2020

The pause feature used to be pretty buggy. It would attempt to extend your term end date appropriately whenever you resumed your subscription and it (unfortunately) failed to do so quite frequently.

After discovering that our payment processor didn't actually support our use case for their "paused" billing state, we decided to implement a credit-based system which grants 1 credit each week you're paused.

This means your next billing date never changes based on your pause date but you will be able to retrieve the exercises you've paid for.


Added dashboard page for quick account overview

May 27, 2020

The exercises list is handy, but it can be hard to navigate once you have a lot of exercises... especially if you've fallen behind on your exercises.

The new dashboard page showcases the exercise you should care about right now.

feature screenshot

The exercise submission page was greatly improved

May 17, 2020

The automated test failures are now grouped into base, bonus 1, bonus 2, etc.

Also the traceback for failing tests includes linked method names which will jump right to the failing test method within the test file.

feature screenshot

The Topics section was revamped and expanded

May 7, 2020

There used to be just a few topics pages.

Now there's more, with even more on the way soon.

Also be on the lookout for screencasts, which will be starting to pop up on topics pages over the next few months.


98% of all Python Morsels exercises now have helpful hint links

April 20, 2020

The exercises didn't used to have any hints. After about 6 months of deliberate work adding hints to each exercise, they pretty much all have helpful hint links now!

feature screenshot

Added new income level-based discounts for Python Morsels

March 30, 2020

There used to be two discount options: student discounts and a 50% off discount for folks outside of the top 50 countries by nominal GDP per capita.

We now have an income-based discount system instead and there's also a new discount request process which makes it a bit easier to get a discount appropriate for your needs.

feature screenshot

Solution import feature

Feb. 6, 2020

If you've been working on exercises on your own machine and you don't want to copy-paste all your solutions into the web app, you can now bulk import your solutions into the Python Morsels web app.

feature screenshot

Exercise search feature added to exercise list page

Feb. 4, 2020

Looking for that one exercise that mentioned functools.total_ordering?

You can use the new search feature for that!

feature screenshot