How to give assignments that require heavy computational resources?
Most computionally intensive problems can be stripped down to something that's just as instructive but runnable on any normal computer. In particular, for inexact algorithms, you can generally trade off accuracy against computational cost, and often actually get still quite good ...
I have a couple of orthogonal suggestions.
First, and you may have done this yourself, before you give any assignment you should create a reference implementation yourself and test it in the student's environment. If you did this, then just let it be a warning to others. This is true, actually, for any assignment, not just one that might run up agains ...
Giving students credits for a cloud service like AWS might be useful in this case. Amazon's pricing is reasonable for a cloud instance:
GPU Instances - Current Generation
Memory (GiB): 61
Storage (GB): EBS Only
Price: $0.9 per Hour
The cheapest instance (t2.nano) is priced at $0.0058 per Hour, though you'd probably want to ...
I am not too worried about language. I am just looking for a nice
interactive learning environment, that combines the best of REPL and
editing. Can you tell me of anything that you use or know of?
Runestone Academy has a component called ActiveCode that allows you write Python code and run it. It also has a slider so that you can go back to earlier ...
Expanding on hotpaw2's answer:
If you have a Mac, you can use Swift Playgrounds in Xcode.
It allows you to type code and see the results immediately, like this:
It only supports Swift, Apple's new language for making Mac and iOS applications. You can find out more about it over here. It's a good language for small things like learning programming, but it ...
If you write software you necessarily have a development environment. It might help or hinder you as you work. A development environment consists of some set of tools that you use to develop the program. The tools might be integrated into a single framework (an IDE) or not, but you have some sort of environment.
The tools include at least
one or more ...
What macro are, and how the work, changes from language to language. That said, they are very generally a way to reuse code, often by doing searches and replacements within the code before it gets compiled or interpreted.
For example, in C and C++ you could type:
which is a macro asking for the entire contents of the file "string" ...
In addition to Racket, check out drjava for Java and drpython for Python.
For Python you can also check out Thonny.
All have a repl section and a code section. Write your definitions in the code section and interact in the repl section.
Emacs can also be configured this way for a whole host of languages.
I have a partial answer for you, about why BASIC and home computers in the early 1980's were so helpful to learning: it is how accessible everything was. A kid could look inside the case and see what the parts were, and even do things like plug in a new disk drive or something else hardware related. This is difficult to do now with a phone, tablet or laptop.
I'd suggest you reconsider. To understand e.g. why Pascal is a nice teaching language you need to have a decent background in programming languages, some notion of teaching programming (the misconceptions by learners are often way, way different than you'd guess in your wildest nightmare), and hopefully some experience teaching.
Languages specifically ...
I have been teaching with Cocalc for a few years. It has most of the features you are looking for, but unless you are using python with nbgrader there is perhaps not much support for unit tests/autograding. It's not perfect but it gets the job done, with less frustration to me than trying to grade this stuff in Canvas. Also, I can rely on the simplicity of ...
Repl.it REPL.itsupports several languages. It also supports manual and automatic testing (unit tests). When students complete task they can see instructor model solution.
Google currently supports Jupyter Notebooks https://colab.research.google.com which would allow you some pedagogical tools in terms of embedding code within explanations.
In industry, the DEV environment is where developers are free to play and break anything (provided they fix it for those who follow). A typical enterprise shop will have a DEV, TEST/QA, and PROD environments, with developer access to DEV being nearly unlimited, but PROD being limited to end user support without significant from 5 layers of management and ...
DrRacket combines a coding window with a REPL environment. It would mean moving out of the imperative paradigm into a functional one, but the setup is really quite nice:
The top window is called the Definitions Window, and the bottom is called the Interactions Window. Work in the bottom window for as long as you like, but once you have something built up, ...
The NetLogo agent-based modelling environment is a teaching tool which uses an enhanced Logo that can have inputs hooked up to sliders. I have played with its simulators sometimes just for my own amusement.
A nice simpler model is the one displaying how freeways get clogged, just playing with the rate at which cars accelerate and decelerate.
Important most ...
App Inventor syncs with a tablet so that as students change the app's code, it changes the app running on the tab. It can't auto-sync media, so you have to re-sync the app when you add new sound or pics. It syncs via wireless network or usb.