This document contains lecture notes from Sanjay Goel's 2005 Data Structures course. Over 14 lectures, it discusses various topics related to problem solving, data structures, and software design. It provides assignments for students to practice describing problems clearly, developing test plans, and conceptualizing and physically designing data storage solutions. Key topics covered include problem characteristics, problem solving strategies, software team roles, program descriptions, testing approaches, and storage schemes for genealogical charts and Boolean functions.