This course introduces the principles of computer programming. Students develop the design skills needed to promote code reuse, encapsulate function, develop incrementally and test computer programs, while exploring the fundamentals of data representation through static data types, class definition and object instantiation. Programming assignments progress incrementally from simple sequential logic through the full range of the program control structures and use of the array structures. The study of computer organization, machine code, numerical and character representation in various formats provides the conceptual and practical background for future study. This course covers the recommended course of curricula for the Association of Computing Machinery(ACM) and Industrial Electronic Engineering Society (IEEE):CS 1 Â¿Structured Programming. The course uses the Java programming language. Corequisite: MAT 160 or equivalent.