The course objective is to engage in a set of hands-on activities, where students will gain familiarity with foundational concepts, structures, and tools used to develop Java programs, practice using common processes for peer reviewing, testing, and debugging the source code of a Java program, and gain an understanding of how to identify and analyze similarities in the structure, syntax and semantics of different coding languages.