COMP-4006 Details

COMP 4006 Python Programming II (Python Software Development)

Course description

This accelerated course covers advanced Python programming for data scientists and cybersecurity professionals. Students are assumed to have an introductory level Python programming course prior to this, covering basics (writing/executing programs, conditionals, loops, functions, and classes).

This course focuses on giving students the ability to create and utilize modules (including the Python standard library) for advanced programming tasks. Projects are used to give practice taking a high-level problem statement and developing a solution. Understanding advanced data types (classes) as well as common source code management are covered. Object oriented and functional programming are introduced as common techniques used to organize and implement solutions to problems. Usage of Python to manipulate and present data is also covered, so that students can begin to understand how to analyze information and discern meaningful observations based on that information.

Topic list (approximately week by week for ten-week quarter):

  • Python Review and Git
  • Command Line Basics and Anaconda environments
  • Importing and Testing Code
  • Python Memory Model / References / Aliasing
  • Collections module
  • Functional vs Object-Oriented Programming
  • Object-oriented programming
  • Python Standard Library
  • Scientific Python Ecosystem

Course learning objectives

After this course, students can:

  • Use classes as more complex data structures than lists/maps/tuples
  • Understand implementation concerns and performance of common data structures (e.g., dictionaries, linked-lists, etc.)
  • Use Python library modules for extended structures (e.g., collections, dataframes, etc.)
  • Understand how to create and utilize modules for larger projects
  • Be able to use git for source code management
  • Have the confidence to ingest data, do basic manipulation (such as descriptive statistics) and present the data in common formats
  • Use python unit testing libraries to write tests for their code
  • Create and understand object oriented code structures
  • Understand basic functional programming concepts

Course Syllabus

Previous
Next