Course Syllabus

Course Policies

Office Hours

Course Description:

An introduction to software concepts and implementation, emphasizing problem solving through abstraction and decomposition. Introduces processes and algorithms, procedural abstraction, data abstraction, encapsulation, and object-oriented programming. Recursion, iteration, and simple data structures are covered. Concepts and skills are mastered through programming projects, many of which employ graphics to enhance conceptual understanding. Java, an object-oriented programming language, is the vehicle of exploration. Active-learning sessions are conducted in a studio setting in which students interact with each other and the professor to solve problems collaboratively. Prerequisites: Comfort with algebra and geometry at the high school level is assumed. Patience, good planning, and organization will promote success.

Learning Outcomes:

  • Be able to create programs from "scratch" to solve modest computational problems.

  • Be able to create a class for a defined concept

  • Be able to make use of basic collections to solve problems

  • Be able to utilize a new API based on "typical documentation" (Ex: Javadoc docs for Java)

  • Familiarity with basic control structures and flow within a computer program (loops, if statements, methods
  • Be able to explain the differences between basic collections (Set, List, and Map)

Course Summary:

Date Details Due