This document is a thesis submitted by Surendra Singh in partial fulfillment of the requirements for a Master of Technology degree in Machine Design from the Indian Institute of Technology Guwahati. The thesis addresses two problems using topology optimization: designing stiff structures under loading conditions and designing structures for optimal natural frequencies. It presents literature on truss and continuum topology optimization, as well as frequency optimization approaches. The thesis then describes applying topology optimization to maximize and minimize structural stiffness and frequency, and developing intuitive low-frequency designs based on the results.