Coding Workshop

Descriptions:
Python is a popular, general-purpose, multi-paradigm, open-source, scripting language. It is designed to emphasize code readability – has a clean syntax with high level data types. It is suited for interactive work and quick prototyping, while being powerful enough to write large applications in. Python has a large number of available and well-written modules for everything – from humanity subjects to Sciences.

Learning Outcomes:
Upon completing requirements for this course, the student will be able to:
 * 1) Create a software application using Python.
 * 2) Debug a software application written in Python.
 * 3) Understand Computational thinking Process through the programming.

Objectives:
After taking this workshop, you should be able to:
 * use Python interactively
 * execute a Python script at the shell prompt
 * use Python types, expressions, and None
 * use string literals and string type
 * use Python statements (if...elif..else, for, pass, continue, . . . )
 * understand the difference between expressions and statements
 * understand assignment semantics
 * write and call a simple function
 * utilize high-level data types such as lists and dictionaries
 * understand the difference between mutable and immutable types
 * write a simple class and access methods and attributes
 * read from and write to a text file
 * learn about resources for learning Python
 * develop Computational Thinking Skill

Materials:
Main: Online Python Tutorials from Codecademy: https://www.codecademy.com/learn/learn-python

Reference book: Learning Python (5th Edition) from O’ Reilly Media, Inc. http://www.dsf.unica.it/~fiore/LearningPython.pdf

Computational thinking Process:
An additional aspect of coding and programing is that people can develop Computational thinking (CT), which refers to the thought processes involved in expressing solutions as computational steps or algorithms that can be carried out by a computer. (Cuny, Snyder, & Wing, 2010; Lee, 2016). CT is essential to the development of computer applications, but it can also be used to support problem solving across all disciplines, including the humanities, math, and science. Students who learn CT across the curriculum can begin to see a relationship between academic subjects, as well as between life inside and outside of the classroom. This workshop will provide an opportunity to experience some of the elements of CT, including:
 * Decomposition: Breaking down data, processes, or problems into smaller, manageable parts
 * Pattern Recognition: Observing patterns, trends, and regularities in data
 * Abstraction: Identifying the general principles that generate these patterns
 * Algorithm Design: Developing the step by step instructions for solving this and similar problems