Java & Object Oriented Programming (Module 3) (9th - 12th grade)
Java & Object Oriented Programming (Module 3) (Summer 2016)
Course Length (Module 2 - One week (M-F), 4 hours each day)
This class is part three of a three-part series, offered in Summer of 2016. Students do not need to commit to all three modules, but will be required to have completed module 1 & 2 (or have equivalent competency) in order to advance to modules 3 respectively. Module 3 will provide in-depth exploration of Object-Oriented Programming concepts for data abstraction, such as, modularity, encapsulation, overloading, inheritance, polymorphism and other modern programming paradigms. We will also introduce algorithms and data structures that combine these modern programming paradigms with classic methods of organizing and processing data.
Necessary Skills & Materials required for this course:
- Middle school mathematics background (advanced mathematics concepts required for the course will be fully explained by the instructor)
- Laptop that can run a chrome browser. (software and course texts will be provided by the instructor through the cloud and via pdf formats)
- No prior programming experience is required.
At course completion students will know:
- Java Programming language
- Concepts of Object-Oriented Programming
- Knowledge of Algorithms and Data Structures
- How to apply the above knowledge toward solving real-world problems in the fields of finance, biology, engineering, graphic design, entertainment, etc.
- How to ace AP Computer Science level examinations
Full Course Description
This course teaches Java programming based on real life applications in science, engineering, and commercial computing, and leverages familiar high-school science and mathematics while preparing students to use computers effectively throughout their careers.
The course is organized around four stages of learning to program: basic elements, functions, object- oriented programming, and algorithms (with data structures). Each stage of learning draws upon examples from applied mathematics, the physical and biological sciences, and computer science itself, and includes simulation of physical systems, numerical methods, data visualization, sound synthesis, image processing, financial simulation, and information technology.
Basic elements include variables, assignment statements, built-in
types of data, flow of control (conditionals and loops), arrays, and
input/output, including graphics and sound.
Functions and modules provide the student first exposure to modular programming. The course builds upon familiarity with mathematical functions to introduce Java static methods, and then considers the implications of programming with functions, including libraries of functions and recursion.
Object-oriented programming introduces data abstraction. The course emphasizes the concepts of a data type (a set of values and a set of operations on them) and an object (an entity that holds a data-type value) and their implementation using Java’s class mechanism. Students are taught how to use, create, and design data types. Modularity, encapsulation, and other modern programming paradigms are the central concepts of this stage.
Algorithms and data structures combine these modern programming paradigms with classic methods of organizing and processing data that remain effective for modern applications. The course provides an introduction to classical algorithms for sorting and searching as well as fundamental data structures (including stacks, queues, and symbol tables) and their application, emphasizing the use of the scientific method to understand performance characteristics of implementations.
Utilizing complete Java programs, the primary goal is to teach the specific mechanisms and skills that are needed to develop effective solutions to any programming problem. Students who master the material in this course will be prepared to address computational challenges wherever they might appear later in their careers.
Examples of class questions that will be covered/analyzed:
- How does Google's search engine work?
- How do you implement audio and video based graphics applications?
- How do you use fractal geometry to implement shapes seen in the nature, such as, mountains, trees, blades of grass and cat's fur? These techniques are used by Hollywood to produce special effect films like Fast & Furious or Toy Story.
- How do you analyze human genome to find malfunctioning genes that causes genetic diseases in human beings? By using genetic engineering, the malfunctioning genes can be fixed to cure the diseases.
- How do you find if an author's work is original or plagiarized from other sources? This software is used by universities to detect academic fraud.
- How do you analyze stock market information to make buy or sell decisions?
Computer Science/Java Programming can only be learned effectively by implementing interesting problems on your own. The instructor will provide problems for homework as well as detailed solutions after the homework has been submitted.
Meet the Instructor:
Alok Sharma is the Chief Executive Officer of MobileNerd, cloud based SaaS (Software-as-a-Service) company that delivers virtual computing environments for education, training and distance learning applications with the objective of optimizing IT infrastructure and eliminating Digital Divide.
Earlier, Alok was Senior Vice President, Corporate Development and Alliances, at Harris-Stratex, Microwave Division of Harris Corporation (NYSE: HRS), where he was responsible for leading corporate strategy, mergers and acquisitions, as well as the development of key strategic relationships for the company. Beginning in June 2004, Alok was the Founder and Chief Executive Officer of Telsima Corporation, a global provider of 4th Generation (4G) broadband wireless solutions, until it was acquired by Harris-Stratex in February 2009. Prior to Telsima, Alok was Vice President and General Manager of the Worldwide Cable Business at Juniper Networks (NYSE: JNPR) from December 2001 to May 2003. Before Juniper Networks, Alok was the Founder and Chief Executive Officer of Pacific Broadband Communications which was acquired by Juniper Networks in December 2001. Prior to that, Alok held senior management and technical positions at Hewlett Packard, Fujitsu/Amdahl, Integrated Device Technology and Siara Systems, a metro routing company acquired by Ericsson.
Alok currently serves on the Board of Sequans (NYSE: SQNS). Alok received his PhD in Electrical Engineering from the University of Wisconsin-Madison, holds 7 patents and has authored several articles in leading academic and trade publications. He is also a Florida State Certified Teacher and a volunteer STEM instructor at local schools and Suncoast Science Center - Faulhaber Fab Lab.