This course provides an introduction to elementary computer programming. It lays a foundation for subsequent language specific programming languages that are taught in later courses. The course presents object oriented and procedural software engineering methodologies in data definition and measurement, abstract data type construction and use in developing screen editors, reports and other IS applications using data structures including indexed files. It includes the use of logical and physical structures for both programs and data. Programming in traditional and visual development environments that incorporate event-driven, object-oriented design is explored. Language independent topics include variables, expressions, statements, sequential execution, selection, iteration, subroutines, simple data structures, structured programming, algorithm development, and debugging.