22

How to give assignments that require heavy computational resources? Don't. 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 ...


19

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 ...


15

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 p2.xlarge vCPUs: 4 ECUs: 12 Memory (GiB): 61 Storage (GB): EBS Only Price: $0.9 per Hour The cheapest instance (t2.nano) is priced at $0.0058 per Hour,...


5

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 ...


4

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 ...


4

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 ...


3

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: #include <string> which is a macro asking for the entire contents of the file "string" ...


1

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.


1

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 ...


1

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.


1

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, ...


1

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 ...


1

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. Khan Academy offers this slider concept with its Javascript Animation lessons.


Only top voted, non community-wiki answers of a minimum length are eligible