Advanced Computer Programming

ENCH610061 / ENCH800066

Prerequisites

Computational Thinking

Introduction to Data Analytics

Numerical Computation

Chemical Engineering Modeling

Statistics and Probability

Course Type

Elective

Credit Hours

3

Course Description

This course is designed to provide chemical engineering students with advanced programming skills relevant to computational modeling, simulation, and data analysis in chemical processes. It focuses on programming languages like Python and MATLAB, as well as tools for numerical methods, optimization, and data visualization. Additionally, the course covers machine learning concepts and techniques specifically designed for chemical engineering applications including predictive modeling and process optimization.

Course Learning Outcomes

  • Implement advanced programming concepts in Python and/or MATLAB to solve chemical engineering problems.
  • Employ machine learning techniques for data analysis, predictive modeling, and process optimization in chemical engineering.

Course Content / Syllabus

  • Introduction to Advanced Programming Concepts

    • Review of basic programming concepts
    • Data structures (arrays, linked lists, stacks, queues)
    • Object-oriented programming (OOP) principles and design
  • Python for Scientific Computing

    • Computation using libraries: numpy, scipy, and matplotlib
    • Data manipulation with pandas for analysis and processing
  • Optimization Techniques

    • Introduction to optimization problems
    • Linear and nonlinear programming using scipy
  • Process Modeling and Simulation

    • Developing mathematical models for chemical processes
    • Case studies in reactor design and separation processes
  • Introduction to Machine Learning

    • Overview of machine learning and its applications in chemical engineering
    • Types of machine learning: supervised, unsupervised, and reinforcement learning
    • Key terminology and concepts in machine learning
  • Data Preprocessing

    • Data collection and cleaning techniques
    • Handling missing data and outliers
    • Feature engineering and selection
  • Advanced Data Visualization

    • Using seaborn and plotly for advanced data visualization
    • Best practices for presenting data effectively
  • Supervised Learning: Regression Techniques

    • Linear regression and polynomial regression
    • Regularization techniques (Ridge, Lasso)
  • Supervised Learning: Classification Techniques

    • Logistic regression and classification metrics
    • Decision trees and random forests
    • Support vector machines (SVM) and k-nearest neighbors (KNN)
  • Unsupervised Learning Techniques

    • Clustering methods: k-means, hierarchical clustering
    • Dimensionality reduction techniques: PCA, t-SNE
  • Neural Networks and Deep Learning

    • Introduction to neural networks and their applications
    • Architecture of deep learning models (feedforward, CNN, RNN)
  • Model Evaluation and Hyperparameter Tuning

    • Cross-validation techniques for model evaluation
    • Grid search and random search for hyperparameter tuning
    • Importance of model interpretability
  • Machine Learning in Chemical Engineering Applications

    • Applications of machine learning in process optimization, fault detection, and data-driven modeling in chemical engineering

Recommended References

  1. McKinney, W. (2022). Python for Data Analysis, 3rd ed., O’Reilly Media, Inc.
  2. Hernández, E. M., & Martín, M. (2014). Introduction to Software for Chemical Engineers, CRC Press.
  3. Yeo, Y. K. (2020). Chemical Engineering Computation with MATLAB®, CRC Press.
  4. Constales, D., Yablonsky, G. S., D’hooge, D. R., Thybaut, J. W., & Marin, G. B. (2016). Advanced Data Analysis and Modelling in Chemical Engineering, Elsevier.
  5. Zhang, D., & del Ro Chanona, E. A. (Eds.). (2023). Machine Learning and Hybrid Modelling for Reaction Engineering: Theory and Applications, Vol. 26, Royal Society of Chemistry.