Increasingly, mobile apps provide information based on server-side analytics driven by artificial intelligence algorithms. Full stack developers need skills set in both front-end (user interface, native mobile) and back-end (database, data mining) This course dives into object-oriented user interface design as well as essential algorithms from machine learning and artificial intelligence (AI). Short histories of user interface design (e.g. graphical user interface standards, as well as new modalities such as voice and handwriting recognition) point toward the emerging influence of traditional AI techniques at all levels of mobile development. The short history of AI is explored, starting with knowledge representation and simple heuristic search, moving toward current stochastic techniques that borrow heavily (not always in a principled fashion) from statistics. Natural language processing, a subfield of AI has a profound impact on user interfaces, though in in the manner anticipated in the early days of personal computing. A bit of network theory is included as current ‘apps’ are essentially client devices connected to massively powerful ‘servers’ via the Internet. Appropriate for those concentrating in computer science, but also for those who need more than novice level coding for their plan. Interdisciplinary projects are encouraged. Coding is expected and will be intense from the start requiring students to explore algorithms in C, Java and Python.
Registration: By email or in person after the start of 4000-level registration.