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.
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.
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.
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.
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:
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.
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.
Lecture recordings are available at this link
Due | Rubric | Solutions | |
---|---|---|---|
Due | Rubric | Solutions | |
---|---|---|---|
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 |
---|---|---|---|---|
- |