Teaching
This special topic offering provides students with a foundation on understanding and engaging with open source communities. Topics include licensing, communication, documentation, understanding legacy code bases, and collaborative software development. Students will make contributions to existing community projects and build their public portfolios.
This course introduces techniques for ethically and responsibly wrangling and manipulating datasets to make them appropriate for addressing the question at hand. Topics may include cleaning and transforming data, integrity and quality measures, common file formats, feature selection and engineering, and generating features from unstructured sources such as text and images.
This course provides a broad introduction to machine learning. Topics include supervised learning, unsupervised learning, neural networks and reinforcement learning. This course will also discuss recent applications of machine learning such as robotics, data mining, autonomous navigation, speech recognition, and text and web processing.
Introduction to object-oriented analysis and design, programming using an object-oriented language, and implementation of linked data structures. Issues of modularity, software design, and programming style will be emphasized.
This course provides an introduction to problem solving in the context of computer programming. The course emphasizes fundamental algorithmic solutions and implementation of those solutions using a practical programming language. Topics include data representation, program control, file handling and elementary data structures.