Distance learning has been one vehicle of course delivery at the Rochester Institute of Technology since the early 1990s. Building on the authors' experience in teaching completely online and blended (partly on-campus and partly online) courses to both undergraduate and graduate students, in diverse areas of computing, engineering, and technology, this paper explores issues in delivering online classes in these disciplines. One particular focus is on conveying the traditional in-class laboratory experience to a similar one in the online world while another focus is to leverage the modalities available in online to create newer and richer experiences for students and instructor. The paper presents the challenges and pitfalls in totally asynchronous learning, from assessment to assignments, from lectures to labs, and from participation to plagiarism. For each challenge, the authors provide examples of practices that succeeded, building on experience with those that did not. To place this work in perspective, the paper also examines related work in online computing and engineering education.