I'm just finishing up a graduate course in computational topology which could be adapted very effectively for this purpose. We're focusing on topological data analysis and computational homology. All the topology in the course has been self-contained, meaning that essentially no previous experience in topology was required.
The book we're using is Computational Topology: An Introduction, by H. Edelsbrunner and J. Harer. It's available online, or you buy it in print (I did this and found it worthwhile). The author works in computer science, and it is written in a style that engineers would appreciate.
The professor began the class by explaining our basic problem: if we have a bunch of data points from some topological space, how do we figure out what space the data came from? He continued by showing us various motivating examples to explain why this question is well-posed, e.g. a ton of points obviously taken from a circle. He moved on with illustrations and animations to explain (at least visually, in the 2D case) how the Vietoris-Rips complex works, then worked up to bar codes / persistence diagrams. We were exposed to essentially everything we were going to do over the course of the semester, so we had the "big picture" in our heads right away. This was very important, especially because I had no background in algebraic topology.
We spent the next couple weeks learning the basics of abstract simplicial complexes and their embeddings in $\mathbb{R}^n$. Everything here was intuitive. Most examples had dimension $2$ (i.e. visually, graphs with some triangles filled in). In this context, homology groups were easily motivated by Betti numbers, which conceptually bridge the gap to group theory. "What we want is to know the number of components, the number of missing 'circles', the number of missing 'spheres', etc."
To get the Betti numbers, we needed to learn how homology groups worked. Working in this discrete context everything is very constructible, so we could actually make the $C_p$, $Z_p$, and $B_p$ groups (cf p.96 of Edelsbrunner's book), along with the $\delta$ maps, for small examples. I went home and did this for a whole bunch of examples until I understood how ranks of the matrices related to the "missing pieces" interpretation. Shortly after this, the professor gave us homework where we had to compute the $\bmod{2}$ and $\bmod{3}$ Betti numbers of the Torus, Klein Bottle, and projective plane from given triangulations (which of course was expected to be done with computational algebra software, not by hand.) This really cemented the whole point of the course for me.
After some more theory about persistence, we started using javaplex (in conjunction with MATLAB, for most of us) to actually get our hands dirty with some data. A few weeks ago, we were given a few data sets, told which manifolds they came from, and told find the Betti numbers using a barcode analysis. For our final assignment, we were given several data sets, but no other information, and tasked with figuring out what topological space they came from. (One of the data sets was an embedding of a certain well known $3$-manifold in $\mathbb{R}^9$.) So, we got to take the whole thing to fruition.
Anyhow, it probably wouldn't take much to adapt this course towards engineering students. A few less proofs, a few more computation-based homeworks and lectures, and earlier introduction to javaplex (or another topology package) would suffice. The most critical aspect of adapting the course would be to keep the big picture in everyone's mind at all times, so that the definitions and influx of information doesn't become overwhelming. Including real world examples should keep the abstraction terror at bay.