Look if you're going to start out you really need to introduce them to Boolean logic first and foremost. That is your lifeblood in computer science. Start with the basics - true/false, if/else then go to simple compound statements with or/and/xor/nand and show them basic truth tables for evaluating them. From there you can build out. And you should have them working on very simple projects.
If this is in a classroom environment where they will be doing actual homework and such your entire first week will be devoted to getting them to set up a basic build environment and have them do simple I/O. They needn't understand all the ins and outs, but they should be able, after one week, to build a simple "Hello World!" program that asks for input from the keyboard and prints the results back to the screen.
After Boolean logic you can start branching out. A really good goal to work towards is having them build out a text-based "Connect-4" style game. This gives them something they can actually show off and lets you build incrementally on a wide swath of programming topics. Start with loops - like how would you print out a row of empty squares on the command line? Then expand that to nested loops - how would you print out a 2d game board of empty squares? Now they can get an introduction into states - is it red's turn, black's turn, or is the game over? How do we keep track of which squares have a red or black piece in them? Oh wait, it has to occupy the lowest square on the board, how do you think we could do that? Now how and when do we check for a game over condition?
You can work collaboratively on the Connect-4 project with them throughout the semester as a teaching tool and assign side projects highlighting the topics you want them to learn along the way. For their individual final project you could have them make a Tic-Tac-Toe text-based game.
Depending on how fast they progress you could move on to more advanced topics - like showing them how to do a Depth First Search on the Connect-4 board to check for connected chains, modifying the Connect-4 game to be of arbitrary size/shape/connections for a win, and maybe some lessons on Object Oriented Programming by abstracting the game into its own class. Or maybe even introduce them to graphics programming by starting to make a graphical version of Connect-4 using the text engine as a base (the background structures are identical, all that really changes is how you draw the gameboard and how input is done).
And if you decide to show them sorting the best thing I can recommend is start with all the cards from one suit in a deck of cards. Then demonstrate how various sorting algorithms go about sorting. Remember - human sorting is typically a variation on insertion sort, that one will probably make the most intuitive sense to them, even though bubble/selection is easier to code up. This works well even transitioning into n*log(n) algorithms because you can at least visually show them the heap structure in heapsort and how it heapifies, the split buckets and merge process in merge sort, or the pivoting and splitting in quicksort. And don't get me wrong, I think sorting algorithms are fundamental to a good CS education, but they are kind of an advanced way to start. Usually that's a Sophomore CS class when you start learning about algorithm design and analysis (and it's often merged in with an introduction to data structures).