Introduction to Mathematical and Scientific Programming
Spring/Summer 2020
- Exam distribution of grades can be found here: Exam_DistributionPNG. Mosaic Grades will be uploaded when I am able to access next week.
- At the end of the exam, please fill out the course evaluation, if enough of you do it, I will be a happy person. Otherwise, the department will imprison me in the dungeons of Hamilton Hall.
- A reminder all exams projects and exams will be checked over for academic dishonesty, do not submit the same piece of work as other students. You will be penalized.
- Exam dropin zoom calls start now 1pm-2pm and 7pm-8pm, see exam README file for link
- Exam is up!
- Hi Everyone, it looks like VLOOKUP is a terrible function, and has some undefined behaviour I am not used too. Please bear with me while I attempt to fix your grades!
- I have sent out an automatic email containing your grades, please make sure you have received it, please check your SPAM, if you have not received it, or if a grade is not accurate, please let me know.
- Some clarification on one of the questions. The questions that asks to code "This function calculates the highest number of infected cases for each run, and returns the trajectory with the lowest highest infected case among all runs", its easier to think of it like this, "Take the peak of infected cases of each run, compare the peaks across all runs, find the lowest peak, return the trajectory with the lowest peak."
- Final exam information has been posted, please see the README file on macdrive. Also, as a department tradition, the final exam has the option of being worth 100% of your final grade. I will take a maximum between your final exam, and the normal way of calculating your final grade (see syllabus).
- Final question 1 is too poorly worded, the answer is True for this question. Please disregard both the result, and the question when answering final question 4.
- There are no tutorials for the rest of the semester as of last week. If you have any questions please email the TA
- Homework 3 graded files have been sent out. If you have not received them, please email me.
- Homework 2 Graded Files have been sent out. If you have not received them, please email me.
- The exam will be held on June 17th, it will start at 9 am and conclude by 9pm. It will be open book, and you can use the internet.
Format will be similar to the midterm, except longer, and more challenging. More annoucements to follow.
- Project is now released. You have about 1 and a half weeks to do it, this should be more than enough time. Direct all questions to the TA
as I am busy writing the exam and grading/adjusting marks for the course.
- The grade you received on midterm is the one you got last week, this isn't a "re-grade", it is just marked work. I adjusted everyones midterm. Please take a look at the last cell of the sent notebook.
- To those submitting HW3, if you do not follow instructions, or if your code doesn't compile, or if you have infinite loops, you will receive a grade of 0.
- Pandemic Model lecture videos are up! These videos will be the last content I will cover for this course. Final exam will cover everything we have learned. Project will be strictly based on these last few videos.
- Homework 3 is posted within MacDrive! PLEASE READ THE UPDATED README FILE BEFORE STARTING Click Here.
- For hw2 (framignham risk score), please look at tutorial_1.ipynb notebook that is found within the git, you should be using my code for that question!
- Dear everyone, I encourage you all to re-read the academic dishonesty policy. Specifically, the rammifications of copying each others work. Due to recent events, I will be reviewing all work at the end of year, to check for copying, all work found out will receive a grade of 0, and the academic dishonesty process will be started.
- If you are interested in the class average and other statistics please look at the midterm folder in MacDrive!
- Dear everyone, I have decided to make homework 2 easier on you all, if you achieve a grade of 50% or higher, I will award you a perfect grade. If you get below 50%, and make a submission, I will award you a grade of 50%. This is because I want everyone to focus on the numpy material this week.
- Midterm grades have been sent out!, if you have not received an email, please notify me immediately, if you are concerned about your grade, notify me as well.
- I have sent out an email with your graded homework 1 assignment! If you didn't get it, check your SPAM!, if you still didn't get one, I dont have a submission from you!
- PLEASE REDOWNLOAD THE math1mp_hw2.ipynb from HW2 as I have fixed an error. If you submit the old version, I wont be able to mark your work!
- Homework 2 is posted within MacDrive! PLEASE READ THE README FILE BEFORE STARTING Click Here. The assignment is due on Thursday night next week. Be sure to keep up with new material as Homework 3 is issued the same day Homework 2 is due. Also, if you submit multiple files, I will only take the last submission to grade.
- As a tradition, I always ask for feedback at the midterm point of the course, please fill out this form here. I will be able to make improvements if you give me feedback now, rather than at the end of the course.
- If you didnt get an email, it means you didnt follow instructions well, the file could be found here. If it is here, contact me with your macid. error_dump
- Due to a number of emails, the Last day for withdrawing from courses without failure by default is Wednesday, June 3rd.
- If you are interested in a Python tutor, please send an email to zhangs37@mcmaster.ca, note that this is a paid service, he is not a TA for the course.
- Lecture 5 files are now available on MacDrive! Click Here
- I encourage all of you to attend Tutorial on Wednesday May 20th !
- Before you submit your assignment 1, please re-read the README.md file in the directory. You must remove all of the raise NotImplementedLines from your code! and replace it. Also, do not print the final result in the function... you must return it!
- Tutorials on Wednesday May 20th will run as usual, however they will be mostly last minute questions you have before the midterm content. No new content will reviewed. In addition, I will keep the tutorial's zoom meeting open until 8pm for any questions during the midterm.
- A reminder to please review all lectures and tutorial content for the first Midterm 1.
- MIDTERM 1 information is posted within the MacDrive. PLEASE READ THE README FILE Click Here.
- No lectures or tutorials on Monday due to Victoria Day celebrations.
- Homework 1 is posted within MacDrive! PLEASE READ THE README FILE BEFORE STARTING Click Here. The assignment is due on Thursday night next week. Be sure to keep up with new material as Homework 2 is issued the same day Homework 1 is due. Also, if you submit multiple files, I will only take the last submission to grade.
- Tutorial notebooks available on the math1mp3 repo, simply perform a git pull to recieve the updated files!
- Lecture 4 files are now available on MacDrive! Click Here
- Lecture 3 files are now available on MacDrive! Click Here
- Lecture 2 files are now available on MacDrive! Click Here
- For those of you who joined this course late, and did not receive the zoom email, please email me immediately.
- Lecture 1 files are now available on MacDrive! Click Here
- Hello! Welcome to MATH 1MP3, my name is Nik Počuča and I will be your instructor for the course. My contact information can be found at the bottom of this webpage. Save this webpage in your favourites and visit it regularly for any updates.
Schedule
I will post the topics covered every week here. You should update and familiarize yourself with the material regularly.
- Week 1.0: Introduction to UNIX, Bourne-Again shell (Bash), File system, managing files, creating files, moving file, managing files.
- Week 1.1: Introduction to Programming Principles, basic concepts, Python REPL, Python Jupyter Notebook. Requirements: Syzygy or any computer with Jupyter installed.
- Week 1.2: Primitive Data Types and Operators, Addition, Subtraction, Multiplication, Strings, Booleans, Modulo, Comparisons.
- Week 1.3: Variable Declaration, Assignment, Primitive Functions, If/Else Statements, Print Statements.
- Week 2.0: Lists, List Manipulation, Control Flow, For Loops, While Loops, Iteration over Lists, Infinite Loops, Breaks, Iteration over strings, Concatenation with strings, Deep copy.
- Week 2.1: Functions, Local/Global Scopes, Return, Arguments, Key word arguments, Variable Number of Arguments, Higher-order Functions, Defensive Programming, Recursion.
- Week 3.0: Advanced Higher Order Functions, Map, Filter, Reduce, Anonymous Functions.
- Week 3.1: Dictionaries, basic concepts (key/value), operators on dictionaries, other dictionary functions.
- Week 4.0: Modules: math and numpy, pyplot, scientific computing concepts, floating point numbers and arithmetic, plotting.
- Week 4.1: Modules: numpy, basic introduction to random numbers. Random walk example