ENGI 1006 Introduction to Computing for Engineers and Applied Scientists

Spring 2022

Course Calendar

Course info

ENGI1006 is an interdisciplinary course in computing intended for first year engineering students, but open to students from all schools. This course will be a practical introduction to the field of computer science, and will cover computational thinking, algorithmic problem solving, and Python programming with a focus on science and engineering applications. In particular, we will look at case studies in physics, statistics, electrical engineering, biology, and selected other topics.

Prerequisites: No programming prerequisites. High-school level math and science is required.


There is no required textbook for this course. However, you may find a textbook to be a handy reference. There are three textbooks that I like:


Python can run almost anywhere, on almost any computing device. The Python language is constantly being improved and expanded. The Python ecosystem is also an integral part of Python development, and is composed of tens to hundreds of thousands of independently developed libraries and projects.

To standardize the version of Python and the collection of Python libraries we use for this course, we will all install the same Python distribution - a term that refers to this combination of Python and libraries.

Our distribution of choice will be Anaconda, which you can download for your system at this link. This will install Python, popular libraries, and a collection of tools such as an enhanced text editor and interactive python notebooks.

There are lots of great developer tools out there. I recommend getting familiar with GitHub for storing your code.

You can follow the presentation here


We will be utilizing the Ed platform for this course.

Supplementary materials


The course will be composed of several in-class quizzes and several homeworks. Homeworks are to be completed individually, but you may work in small groups in accordance with the academic honesty policies detailed below. The weighting of quizzes and homeworks is subject to change, but the initial weighting will be 50–50.


You are expected to attend all lectures, either in-person or virtually. Any material covered in class or in a homework is fair game for exams. All courses will be available in real time on Zoom, and recorded for asynchronous viewing or review.

Academic Honesty

Please read the following information carefully. Failure to abide by these policies may result in serious consequences, including homework or exam grades of 0 and referral to the Office of Student Conduct and Community Standards (SCCS).


All homework assignments are to be completed individually. You are encouraged to collaborate with others to work through the logic of a problem, but the solution you submit should be written entirely by you. Sharing your solution with others and rewriting from a preexisting solution both count as cheating.

Online references like StackOverflow are valuable tools for working out parts of a problem, and you are encouraged to explore the wealth of educational resources on the internet. However, apart from the obvious cheating example of finding whole solutions online, including any code snippets that you did not write without proper attribution counts as cheating. If you use code that you did not come up with yourself, you must include a full link to the reference, e.g. provide a link in your submission to the StackOverflow answer you relied on.

Furthermore, even if you find references online, if you do not understand the code that you are using, it will still count as academic misconduct. If you are quizzed on your submission and cannot demonstrate understanding, it will not be counted.

Your Work

The material for this course, including but not limited to lectures, examples, homeworks, and exams, is wholly owned by me and provided to you for educational use only.

If I find any material on GitHub, Chegg, etc, I will DMCA to have it taken down and pursue those responsible both legally and academically. Remember, grades can be retroactively changed and degrees can be(and have been) retroactively revoked for academic misconduct.

School Policies

In addition to this policy, the CS department’s academic honesty policy applies to this course. Please revisit your school’s standards for academic integrity:

COVID Related Information

This course complies with the university’s COVID requirements and management plan. Please do not attend class in person unless you satisfy these requirements and receive a “green pass” through the ReopenCU app. For details, visit https://covid19.columbia.edu/

Note that masks will be required indoors for everyone unless the current COVID monitoring level is “Lower Risk” (green): https://covid19.columbia.edu/content/covid-19-monitoring-plan

If you are not wearing a mask, you will be asked to leave the classroom.

Please also refrain from eating and drinking in the classroom.

For students who are required to isolate or quarantine, or are unable to attend in-person, classes will be simultaneously conducted on Zoom. Recordings of each class will be uploaded to the Video Library.

Campus Resources

The instructor is committed to promoting students' well being and advancing a diverse, inclusive and welcoming campus culture. He is aware that students may experience personal, social, or financial challenges, whether related or unrelated to their coursework, that may affect their health and academic performance. In addition, the ongoing Covid-19 pandemic and high levels of stress experienced by many Columbia students during the semester may affect their mental and physical health.

If you are in need of support, you are encouraged to reach out to your school’s adviser (e.g. CSA advising dean). If you feel comfortable notifying the instructor, he will make every effort to provide support and connect you to available campus resources.

If you or someone you know feels overwhelmed or suffers from depression or anxiety, please contact

Counseling and Psychological Services (CPS, Columbia) - 212–853–2878 Furman Counseling Center (Barnard) - 212–854–2092 For additional campus resources, see https://universitylife.columbia.edu/student-resources-directory

Please note that the instructor is required to make a report of any information relating to gender-based misconduct.

Course Recordings

Lecture recordings are available at this link


Due Rubric Solutions
Homework 1 Monday, January 31 at 11:59pm
Homework 2 Wednesday, February 16 at 11:59pm Rubric
Homework 3 Monday, March 7 at 11:59pm Rubric
Homework 4 Monday, March 28 at 11:59pm Rubric
Homework 5 Friday, April 8 at 11:59pm Rubric
Homework 6 Friday, April 22 at 11:59pm Rubric
Homework 7 Monday, May 2 at 11:59pm Rubric


Due Rubric Solutions
Midterm 1 Sunday, March 12 at 11:59 pm Rubric
Midterm 2 Sunday, April 17 at 11:59 pm Rubric
Final Sunday, May 8 at 11:59 pm Rubric


Note that the following schedule is tentative. It will be updated as we go.

# Date Topic Reading Assignments
1 W 1/19 (Remote) Introduction and Overview
2 M 1/24 (Remote) History
3 W 1/26 (Remote) Software Setup G 1 / EP 0 / H 1 Homework 1
4 M 1/31 Basics G 2 / EP 1, 2.1–2.2, 3 / H 2.1–2.5, 3, 4 Homework 2
5 W 2/2 Basics Continued, Homework 2 Review
6 M 2/7 Python I, Files G 2 / EP 4 / H 5, 6
7 W 2/9 Python I Continued, Homework 2 Review
8 M 2/14 Python I Continued (Strings)
9 W 2/16 Python I Continued (Lists, Tuples, and Loops) G 5.1, 5.2, 5.3, 5.4, 5.5 / EP 7 / H 6
10 M 2/21 Python I Continued (Functions and mutability review), Homework 3 Review G 4.1, 4.2 / EP 5, 8.1 / H 5 Homework 3
11 W 2/23 Algorithms, Files G 11, 12 / H 12
12 M 2/28 Python II, Files G 5.6, 5.7 / EP 9 / H 8
13 W 3/2 Python II Continued, Homework 3 Review G 7 / EP 6 / H 7
14 M 3/7 Python II Continued G 5.3.2, 5.8 / EP 7.11, 9.8 Midterm 1
15 W 3/9 Python II Continued
_ M 3/14 No class
_ W 3/16 No class
16 M 3/21 Simulations, Files Homework 4
17 W 3/23 Recursion, Files
18 M 3/28 Scientific Computing, Files Homework 5
19 W 3/30 Numpy Continued, HW5 review
20 M 4/4 Scipy/Matplotlib Continued
21 W 4/6 Pandas, Files Homework 6
22 M 4/11 OOP, Files
23 W 4/13 OOP continued Midterm 2
24 M 4/18 Machine Learning
25 W 4/20 Scikit Learn, Files
26 M 4/25 Scikit Learn Continued Homework 7
27 W 4/27 Class Cancelled
28 M 5/2 What next? Topics Final