The objective of this course is to improve programming and problem solving capabilities and skills of students using Python with an emphasis on programming practice, efficiency and data science. Pyhton is widely used language in education, scientific computing and data science with a large number of libraries. Students will learn, design, develop and test efficient programs that take advantage of builtin libraries developed for AI and data science without having to know about complex logic and mathematics behind them. Topics include programming efficiency and analysis, study and analysis of some basic algorithms, graphical user interfaces, advanced featues of Python, Python Data Structures, Loading Datasets from Different Data Stores, ArrayOriented Programming with NumPy, HighPerformance NumPy Arrays, Pandas Series and DataFrames, Regular Expressions and Data Wrangling, Time Series and Simple Linear Regression, Natural Language Processing (NLP), Web Scraping, Data Mining Twitter: Sentiment Analysis, Machine Learning: Classification, Regression and Clustering, Deep Learning Convolutional and Recurrent Neural Networks, Recommendations with Collaborative Filtering, Optimization.
Introduction to Programming
Intro to Python for Computer Science and Data Science: Learning to Program with AI, Big Data and The Cloud, Paul Deitel, Harvey Deitel, Pearson, 2020 (html). 

 Paul J. Deitel et al., Intro to Python for
Computer Science and Data Science: Learning to Program with AI, Big
Data and The Cloud, Pearson, 2020. [DE]
 Toby Segaran,
Programming Collective Intelligence, O Reilly Press, 2007. [TO]
 Brad Miller and David Ranum, Luther College, Problem Solving with
Algorithms and Data Structures using Python,
Franklin, Beedle & Associates, 2011 (html).
 Introduction to Computation and
Programming Using Python, John V. Guttag (html).
 Starting Out with Python, Global Edition, 4/E, Tony
Gaddis, Pearson, 2019 (html).
 Introduction to Programming in Python: An Interdisciplinary
Approach,
Robert Sedgewick, Kevin Wayne, Robert Dondero, Pearson, 2015. (html)
 Fundamentals of Programming Python, Richard L. Halterman, 2019 (PDF)
 Python Practice Book, Anand Chitipothu , (html)

Python Programming (html)
 A Practical Introduction to Python Programming (hmtl)
 w3schools Python Tutorial (html)
 tutorialspoint Learn Python (html)
 LearnPython.org (html)
 javaTPoint Python Tutorial (html)
 Programiz  Learn Python Programming (html)
Evaluation Tool (*)  Weight in % 

Programming Assignments  16 
Labs  10 
Interm Exams  2 Quizes (14%)  1 Midterm (20%) 
34 
Final  40 
WEEK  TOPIC(S) 

1  Developing Efficient Algorithms 
2  Analysis of Searching and Sorting Algorithms 
3  Python Data Structures 
4  Data Analysis and Visualization 
5  ArrayOriented and Scientific Programming with NumPy and SciPy 
6  Pandas, Regular Expressions and Data Wrangling 
7  Time Series and Simple Linear Regression 
8  Exam Week 
9  Natural Language Processing (NLP), Web Scraping 
10  Data Mining Twitter: Sentiment Analysis, JSON and Web Services 
11  Machine Learning: Classification, Regression and Clustering 
12  Deep Learning Convolutional and Recurrent Neural Networks 
13  Collaborative Filtering, Making Recommendations 
14  Optimization 
15  Review 