Teacher discourses in handling science and mathematics lessons prompts code switching, specifically alterational pattern due to the influence of bilingualism or even multilingualism. The functions of code switching are into varied categories such as communication, authority, emphasis, conceptual, interlocution, ethnicity, psychological, trigger, and lexicon. The reasons of such speech act can be seen in consonance with the observed and expected consequences. It is considered linguistic incompetence with the inability of teachers and students to use the target language in theirs discourses, while linguistic resourcefulness is coined to mean the strategy employed by teachers and students. This study is limited to patterns, reasons, functions and implications of code switching heeding the recommendation of further research on the functionality of code switching as an instructional strategy to validate the notion that code switching is either linguistic incompetence or linguistic resourcefulness, considering the millennial trends and approaches of teaching and learning, setting of absolute limitations in distinguishing code switching from code mixing as not all studies support the idea that code switching is an umbrella of code mixing, and further researches on the impact of switching can be correlated with results of studies on switching only two languages.