I've planned a shallow and broad curriculum for a summer program (5 days a week for 2 weeks, 9:00 to 17:00) or sorts, and the flow of the subjects seems flawed.
The students are gifted (not a prerequisite, but most of them are) highschoolers with either no background in programming, or very little background.
The purpose is to interest them in learning programming. More specifically, to give them a taste of some aspects of various languages, hoping that each will find something they like and, being naturally curious, they might pursue the subjects they liked a bit more.
The curriculum I have in mind is more or less:
- Using
C
:- Intro to the simplest of things
printf("Hello World!\n");
and the like- most importantly, introduction to types.
- Using
C++
/Java
:- very brief overview of OOP, just at the concept level
- "Things" are described in
class
es which have properties etc.
- Using
JavaScript
:- Intro to functional programming. Again, just at the concept level
- "Things" are described with functions.
and finally:
- Using
python
:- finish with small tasks for them to get some hands on experience and things to show their friends
As I see it, the main issue is, for lack of a better word, synergy. Subjects 2 and 3 seem highly disconnected. Moreover, I fear that for the students, the things they learnt in C
and C++
will seem "pointless", since most of them will think that they don't use those concepts and ideas in the tasks in part 4.
How might I bridge between OOP in Java or C++, with functional programming in JavaScript? Personally, I thought using Java's functional interfaces could work, but that would require teaching about interfaces, making the course far less "shallow" than it should be.
Might there be a simple or neat "trick" to connect the two subjects?
PS: Any other suggestions regarding the partial curriculum I outlined are also welcome. It's the first I've built from nothing