This course provides an introduction to JAVA and Object Oriented programming. It focuses on simple data types, control structures, an introduction to array and string data structures, algorithms, debugging techniques, and the social implications of computing. It emphasizes good software engineering principles and developing fundamental programming skills in the context of a language that supports the object-oriented paradigm. The lab component provides hand-on programming experience that is vital for beginning programmers and computer science students. 3/2/0