Even I have found that the topics covered for teaching any programming language are same
I'm not sure what that means.... programming is a discipline. A programming language is what one uses to carry out that discipline. Since all programming languages are used to do programming, it only stands to reason that they are all going to have identical concepts. So yes, programming has variables, control structures, and data types, so one would learn how to use those concepts in whatever language they may be using in the process of learning the discipline of programming.
@im_no_good_with_computers, lesson #1, programing can be taught without doing any programming at all using only flow charts, addition, and automata. Turning machines
were formulated in the mid 1930s. Finite state machines are based on mathematics. Those are not classes you will get to until later though. Your first Java class will be tricky because not only are you learning programming concepts, you are also learning a language in order to implement those concepts. You are really learning two things. Stick with it though, because Computer Science has little to do with code (although writing programs is sometimes necessary to understand various concepts). There is a huge market for Computer Scientists (which is not the same as being a programmer).
if its a oop like java c++ then oops concepts
Oop can apply to any language, yes, even C.