Share this project

Done

Share this project

Done
Learn how Python is used in modern engineering applications, like image and video processing.
Learn how Python is used in modern engineering applications, like image and video processing.
311 backers pledged £6,280 to help bring this project to life.

About this project

£6,280

311

----------------------------------------------------------------------------------------

Missed the Kickstarter? You can still pre-order the course at:

http://pythonforengineers.com/

See you there!

----------------------------------------------------------------------------------------

Less than 12 hours, and fully funded already! Thanks everyone.

When it comes to scientific and engineering computing, there is a clear choice for programmers: Python.

Many scientists prefer it to Matlab, and it is often taught as the first language in Universities.

But there is no single resource for people who want to use Python for engineering. You have to go hunting through blog posts everytime you want to draw a graph.

I'd like to create a single book that shows how Python can be used for a multitude of scientific purposes.

Pre-requisites

You no longer need to know Python, as I will cover that. All I ask is, you be good in at least one programming language.

Practice, Not Theory

The book will be heavily practical, with little or no theory. The goal is to get you using Python for real world engineering applications. For each topic, we will choose a real case scenario and build a quick solution in Python to solve our problem.

As a quick example, you must have seen Facebook draw a square around your faces when you upload a photo so that you can tag it. Did you ever wonder how Facebook knows where your face is?

I wrote some code for this:

(Image Taken from Wikipedia http://en.wikipedia.org/wiki/Abba)

Original:

 After Python has detected faces:

How much time did you think I spent writing this code, and how long do you think it is?

Five minutes, and <25 lines, including space and comments. Have a look at the code here:

https://github.com/shantnu/FaceDetect/blob/master/face_detect.py

Warning: The code is very rough, as I said, I wrote it in 5 minutes. In the final book, we will go line by line, and I will explain each one.

Topics to be covered

1. Advanced Python: Useful advanced topics like list slicing, list comprehension, eval.

2. Introduction to Numpy

3. Plotting with Matplotlib - I will take some real life scientific data, and show how we can graph and analyse it (min/max, mean etc).

4. Some engineering application: Something like, take a noisy signal, and extract the noise frequencies from it. Or, find the frequency of a tone signal.

5. Image processing: Image recognition and processing with OpenCV. Counting objects in an image, sharpen/blur images etc.

6. Video processing: Again, with OpenCv. Face detection, object tracking in video.

**** Stretch Goals 2

£4000 - I will add parallel and distributed programming with Python.

£5000 - Raspberri Pi as an embedded controller with Python.

******* End of Stretch goals 2

**** Stretch Goals 1 - Achieved!

I have come up with the following stretch goals:

£1000 - I will cover the basics of the Python, specifically for the programmers wanting to use Python for engineering. This is not just another "Intro to Python" - this will be tailored to those who want to use Python for science and engineering, and have some previous experience programming.

£1400- I will cover pandas (http://pandas.pydata.org/), which is the main Python library for statistics / data analysis.

£1600 - I will add Machine Learning with Python, using SciKit http://scikit-learn.org/stable/. Example will be recognising hand written numbers / recognising flowers.

******* End of Stretch goals 1

Risks and challenges

The project might be delayed if life interferes.

Learn about accountability on Kickstarter

FAQ

  • A VM allows you to run another operating system within your own, like Linux on a Windows machine. The most popular is the open source Virtual box (https://www.virtualbox.org/)

    The advantage is that you don't have to mess up your own system by installing dozens of libraries that may clash with each other. Also, if you are on a Windows machine (like I am), you will find that many of these libraries don't work so well on Windows (at least not the first time).

    And then there is the 32/64 bit version nightmare. I recently spent several hours trying to figure out why OpenCv wasn't working for me, till I found that I had a 32 bit version of Python, but 64 bit version of a library. But the problem is that if I move to 64bit Python, that doesn't work with other libraries I have.

    Which is why I'm going to do the development on a Linux VM. If you want, you can have a copy of this VM, with all the libraries installed. Trust me, it'll save you hours, and you can start coding immediately.

    I recommend everyone go for the VM version, if you can afford it. Otherwise, the basic book is also a good option.

    Last updated:
  • So I'll be using Virtual Box (https://www.virtualbox.org/), which is available for Windows, Linux, and Mac. Yes, it'll run natively on every system.

    Give it a try- Virtual Box is really easy to use. It just gives you a new virtual machine(VM), and you can install any operating system on it. It then becomes a PC within a PC. The advantage is, you can try new stuff here without worrying about corrupting your main system.

    Inside the VM, I'll be running Linux Mint. I'll install all libraries in here. If you have chosen the option, you will get this VM. That means you just start Virtual Box, and you'll get a fully fledged Linux system that you can just start using. Even if you already using Linux, you can still use this VM if you want to save time by using a preconfigured option.

    Last updated:
  • Yes, of course. All rewards include everything below them.

    Last updated:
  • Yes.

    Last updated:
  • No.

    This is a highly practical course. I find that most blogs blast you with theory, but don't actually teach you anything. This course hopes to remedy that by teaching you how to build practical real world projects.

    Last updated:
  • I will teach Python as a part of the course. For this, I expect a bare level of programming knowledge- so you should know about loops, conditionals, functions etc. So I will start straight with something like "This is how you iterate over an array in Python," expecting you to know what arrays are and what a for loop is, so that all you need to learn is how Python does it.

    If I give you a file with 1000s of numbers and ask you to extract the 3 largest, and you can bang out a solution in less than 5 minutes (in any language), that's how comfortable you need to be with programming.

    Last updated:

Support this project

  1. Select this reward

    Pledge £1 or more About $1.69

    Be awesome and show your support for the project! In addition, I will send you all the source code to the final version of the project.

    Less
    Estimated delivery
    12 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  2. Reward no longer available

    Pledge £7 or more About $12

    Get the eBook (early bird offer)

    Less
    Estimated delivery
    Reward no longer available 10 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  3. Select this reward

    Pledge £15 or more About $25

    Get the eBook

    Less
    Estimated delivery
    183 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  4. Select this reward

    Pledge £25 or more About $42

    The biggest hassle with projects like these is installing libraries, struggling with version differences, 32/64 bit versions of libraries, etc. You can spend more time installing libraries than running the code.

    For this reason, I will create a Virtual Machine and do most of the testing there. You can have this VM too. It means you can start coding immediately, without wasting any time installing libraries.

    Less
    Estimated delivery
    94 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  5. Select this reward

    Pledge £72 or more About $122

    Get all of the above, plus video lectures of the lessons.

    Less
    Estimated delivery
    8 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  6. Select this reward

    Pledge £150 or more About $254

    Build your awesome project! I will help you build a cool project, which you can use to boost your resume or start your own business. Email for details.

    Less
    Estimated delivery
    Limited 3 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  7. Select this reward

    Pledge £300 or more About $508

    Promote yourself! (or your company). Your name, website and logo will be displayed not only on my website, but also in front of the book. Reach the highly intelligent and dedicated people supporting this project. Contact me for details.

    Less
    Estimated delivery
    Limited 0 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.

Funding period

- (30 days)