Introduction to Programming in Java: An Interdisciplinary Approach