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 teach an introductory programming course, with many students who have never programmed before. My course is 13 weeks, but the first 5 cover what I consider to be the basics. I have 3 hours of lectures and 2 hours of labs per week.
So here's a suggestion for 5 weeks:

Week 1: The basic idea of thinking algorithmically, ordering the steps of a process. You can use the logo turtle to get them to "write some code" on day 1. (see for instance the online editor here: <https://www.tortue-logo.fr/en/logo-turtle>). Then teach variables and expressions, decomposing an arithmetic computation in several steps (e.g. calculating how much you'll spend per month on gasoline, given the distance to your workplace, the mileage of your car, and the price of gas).

Week 2: using if conditions and boolean expressions, with or/and. Incorporating those into algorithms. What you can code with that: things like the absolute value, compute the solutions of a second-degree equation (using built-in square root), calculate income tax in a toy setting (with several tax brackets). If time permits, start talking about loops.

Week 3: Loops. Once you have the semantics of the while / for statements, you show them a classic algorithm such as Euclid's GCD algorithm: describe it by a flowchart and show how to translate it to code. Then move on to trying to figure out the steps of solving a problem, showing them classic techniques like using an accumulator to compute a sum (e.g. the sum of even integers between A and B).

Week 4: Functions. How you can package a computation in a function, with inputs and related outputs. Insists on the goals of modularity, abstraction, etc.

Week 5: Working with lists and / or matrices (since Matlab is heavily focused on matrices). By the end of it they can't do terribly "fun" stuff like games, but there are some scientific applications of interest, like a LFSR to do simple cryptography (that's what I do in my fifth-week lab). For students who aren't afraid of some math, there's plenty of useful math-oriented algorithms like approximating an integral (with rectangles or trapezes and such), using Heron's algorithm to approximate the square root, etc. I think with Matlab you can also plot graphs quite easily, so there are definitely interesting applications there.
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.)