CS 127: Practical Programming

Semester Hours 3
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:

  1. Explain the core building blocks of a programming language, such as variables, user-defined, and built-in functions
  2. Explain the flow control techniques (iteration, conditionals)
  3. Describe the fundamental programming data structures and their implementation in Python (lists, sets, tuples, dictionaries)
  4. Discuss the object-oriented programming paradigm and its purpose
  5. Discuss fundamental software development lifecycle and practices (e.g., top-down design, test-driven development, object-oriented analysis, and design)
  6. Describe common document formats and considerations related to web scraping and office document processing and manipulation

Project Learning Outcomes:

  1. Write small Python scripts using variables, built-in, and user-defined functions
  2. Write more advanced scripts using conditionals and iteration (control flow)
  3. Employ Python data structures, such as lists, dictionaries, sets, and tuples
  4. Use libraries implemented in object-oriented fashion and interact with classes and objects imported from those libraries
  5. Employ fundamental software development practices (e.g., top-down design, test-driven development, style, linting, pep8, documentation)
  6. 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
  7. Contrast among and experiment with different data storage and access solutions (CSV, JSON, XML, SQL, NoSQL, key-value stores)
  8. Analyze and visualize real-world data using Python data science libraries
Semester
Spring