The course objective is work with various data types, recognize different types of loops, and create and apply user-defined functions. In contrast with the detailed step-by-step approach in an introductory course, this more advanced course will use a more open and independent learning style, and students should expect to occasionally wrestle a bit with the concepts and be comfortable with a trial-and-error approach.