OK, I am not sure what time frame you are looking at. You mentioned an awful lot of topics and comp. sci. would normally be studied for 4 years. I do not consider office tools a part of a traditional comp. sci. program, but they should be taught nonetheless. Assuming there is 4 years of high school I would recommend:
Year 1/Semester 1&2: OS and Office Tools - In this course I would expose the student to different operating systems: Windows, Ubuntu Linux, and Mac OS. I would have the student master some basic end-user activities, like installing software, installing new hardware, modifying system settings (i.e. env vars, etc) and finally touch on some shell scripts (batch files, .bash scripts). I would then move into basic office programs. I would show Word and Open Office and introduce the student to basic word processing and touch on some advanced editing (tables, formatting, formulas, etc.). In spreadsheets I would show the basics plus introduce macros, which are programming based. Also pivot tables and graphs. There would be plenty of material for 1 year of school, especially considering this as an "elective" which would not be studied more than 1-2 hours per week.
Year 2/Semester 1: Introduction To Programming - Just like it sounds, I would focus on basic programing. The tough part is what language - Pick whatever you are really comfortable with and able to teach. I personally would choose a slightly non-main-stream language like Ada. Focus on basic program structure, good commenting and the fundamentals of the language.
Year 2/Semester 2: Advanced Programming - Move into advanced aspects of the language, structs/records, user-defined types, compiler pragmas, memory management (pointers).
Year 3/Semester 1: Introduction To Data Structures - Classic CS course. Array/Stack/Queue/List
Year 3/Semester 2: Advanced Data Structures - Another Classic. Various Trees/Graphs/Heap
Year 4/Semester 1: Introduction to OO - Focus more on the design aspect. Also use a language that is a "pure" OO language. We used Eiffel, but the latest .NET stuff if pretty good too. I honestly would not use C++ or Java as the language hinders some of the pure OO techniques.
Year 4/Semester 2: Advances OO - Get into the more complicated OO stuff. Design patterns, multiple inheritance, repeated inheritance, etc.
That would cover a good bit of computer science...