ENGI 1006 Introduction to Computing for Engineers and Applied Scientists

Spring 2024

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.

Textbook

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:

Software

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

Discussion

We will be utilizing the Ed platform for this course.

Supplementary materials

Grading

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.

Attendance

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).

Homeworks

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

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

Homeworks

Due Rubric Solutions
Homework 1 Monday, January 22 at 11:59pm Rubric N/A
Homework 2 Tuesday, February 6 at 11:59pm Rubric Files
Homework 3 Tuesday, February 20 at 11:59pm Rubric Files
Homework 4 Tuesday, March 19 at 11:59pm Rubric Files
Homework 5 Tuesday, April 2 at 11:59pm Rubric Files
Homework 6 Thursday, April 25 at 11:59pm
Homework 7 Friday, May 10 at 11:59pm

Exams

Due Rubric Solutions
Midterm 1 - Take Home Sunday, February 25 at 11:59 pm Rubric Solutions
Midterm 1 - In Class Tuesday, February 27
Midterm 2 - Take Home Sunday, April 7 at 11:59 pm Rubric Solutions
Final - Take Home Sunday, May 5 at 11:59 pm
Final - In Class Tuesday, May 7 7:10pm-10pm

Schedule

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

To view slides as a printable PDF, add ?print-pdf=true to the base url (e.g. 000-intro.html -> 000-intro.html?print-pdf=true)

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