Description
Students learn the concepts, techniques, skills, and tools needed for developing programs in Python. Core topics include types, variables, functions, iteration, conditionals, data structures, classes, objects, modules, and I/O operations. Students get an introductory experience with several development environments, including Jupyter Notebook, as well as selected software development practices, such as test-driven development, debugging, and style. Course projects include real-life applications on enterprise data and document manipulations, web scraping, and data analysis.
Course Learning Outcomes
Conceptual Learning Outcomes:
- Explain the core building blocks of a programming language, such as variables, user-defined, and built-in functions
- Explain the flow control techniques (iteration, conditionals)
- Describe the fundamental programming data structures and their implementation in Python (lists, sets, tuples, dictionaries)
- Discuss the object-oriented programming paradigm and its purpose
- Discuss fundamental software development lifecycle and practices (e.g., top-down design, test-driven development, object-oriented analysis, and design)
- Describe common document formats and considerations related to web scraping and office document processing and manipulation
Project Learning Outcomes:
- Write small Python scripts using variables, built-in, and user-defined functions
- Write more advanced scripts using conditionals and iteration (control flow)
- Employ Python data structures, such as lists, dictionaries, sets, and tuples
- Use libraries implemented in object-oriented fashion and interact with classes and objects imported from those libraries
- Employ fundamental software development practices (e.g., top-down design, test-driven development, style, linting, pep8, documentation)
- Scrape information from the web or query publicly available APIs and extract data from common office document formats, transform it and present it using a different appropriate format
- Contrast among and experiment with different data storage and access solutions (CSV, JSON, XML, SQL, NoSQL, key-value stores)
- Analyze and visualize real-world data using Python data science libraries
Semester
Spring