Question: I am an assistant professor preparing a 5 lecture series 'introduction to programming'. The target audience are first year engineering undergrads - from a mix of mechanical, electrical, electronic, telecomms and civil engineering majors. Some of these students will never have programmed before. We will use Matlab.

I am expecting that many of these students will never have coded before and almost all will not have seen Matlab before. They will need Matlab in all subsequent years of their degree.

Given the extremely limited time for this course, how can I give best bang for their buck, without it being too dry?

Is there something cool we could work towards creating over the 5 weeks?

More info: There are 5 x 4 hours sessions. Classroom cannot be flipped as there will be 50+ students.

Editing here to thank everyone who has taken the time and effort to give extremely helpful detailed replies. I appreciate it guys.

Answer: 
I studied and TA'd electrical engineering and computer science in college and graduate school. You have a unique opportunity versus most introductory programming languages that use general languages like java or python because Matlab, which is a portmanteau for "Matrix Laboratory", is a language that is meant to be very interactive, intuitive to mathematically-savvy students, and easy to pick up and includes the constructs of 1-d vectors, 2-d matrices, and n-dimensional tensors as first-order data structures (I know you know all this, but I'm stating it for other readers who may be less familiar with this language). 

Most of your students will have a background in linear algebra and matrix notation and use in mathematics from their courses in all of the state engineering disciplines. Therefore, you can focus less on teaching fundamental of data types, data structure, control flow logic, hierarchy and namespaces, and instead build up from intuitive Matrix-like mathematical operations that naturally have sequences of repeating steps with exit conditions.

* 1st-week of introduction to typical matrix problems in the engineering sciences, and walking them through building the simple scripts to execute those.
* 2nd-week add Matlab function wrapper per file concept as an introduction to hierarchy and namespace (informally, this is how it works, not focusing on the deeper theoretical aspects) of scoping local variables in input/return values.
* 3rd-week show how there are lots of the simple operations (like matrix multiples, inverting matrices, DFT and FFT, that are prebuilt library functions, and study some tradeoffs on choosing them and how they deal with padding, non-invertible data sets, etc.)
* 4th and 5th-week focus on a large programming project that does something interesting with larger data and doing something iterative like gradient descent on a simple pattern match like regression, or simple cases of convex cost function search, or even backpropagation in a 3-layer neural network. 

Pre-build much of the base and helper code and have them learn how to use what they learned so far to code the inner loop of the iterations. Definitely give them the code that they can easily tweek so they get some experience generating graphics to demonstrate (and debug) the optimization iteration sequence.
I think I'd try to hook them with **image processing**. Maybe with [an edge detection algorithm](https://en.wikipedia.org/wiki/Canny_edge_detector) or [something else along those lines](https://en.wikipedia.org/wiki/Feature_detection_(computer_vision)#Feature_detectors).

Topics that get naturally covered:

* Basic syntax, data, and other features of the language
* Basic program structure and design (not many libraries needed, you get to cook the dark magic yourself)
* Matrix manipulation, (algebra and entrywise)
* "The scientist's approach to programming": try something, look at the result (literally in this case, because the results are pictures), and if it looks good, move on and build on that result. We're not trying to create software engineers here.

Particular benefits:

* Matlab (or Octave) might actually be a good choice for implementing image processing algorithms in the real world, so the topic doesn't feel forced. (Somewhat unlike using Matlab for "intro to programming"..)
* Shows Matlab and programming as a tool for getting work done ("oh, the source image needs to be rotated? Hold on while I whip up this nifty rotation matrix..")
* In case the students don't yet see matrices as the best thing since Sliced ([2019](https://en.wikipedia.org/wiki/Sliced_(TV_series))), this might double as a sales pitch for matrix algebra too.
* **Pretty pictures!**

(Really, the final bullet point is the important thing. Finding the result to an interesting physics problem just doesn't cut it as the behaviour-reinforcing reward a beginning programming student needs. With image manipulation, it's not entirely unheard of that some even fiddle with the code in their free time.)