|What||When and Where|
|Lectures||Mon/Wed 09h00–09h50; A-0425|
|Labs||Per-section, see below; A-0418|
|Class forum||Blackboard »|
|repl.it Python||Run online »|
|Online Python Tutor||Debug/visualize online »|
|Online Jupyter Notebook||Run online »|
|Anaconda's latest Python 3.X version to run Jupyter Notebook||Download and install »|
|Lecture #1: introduction||2016-09-26|
|Lecture #2: literals, variables||2016-09-28||Python session|
|Lecture #3: data types (
||2016-10-08||Floating point Overflow/Underflow; Signed-integer representation (Pages 53-55)|
|Lecture #4: string formatting, functions||2016-10-10|
|Lecture #5: methods, coding||2016-10-12||Python session; Python formatting codes; Python Integer Overflow|
|Lecture #6: functions, conditionals||2016-10-17||Python session|
|Lecture #7: lists,
|Lecture #8: branched conditionals,
|Lecture #9: mutability, list and string methods||2016-10-26||Python session; Floating Point Arithmetic: Issues and Limitations; List/string length; Python built-in functions|
|Lecture #10: multidimensional indexing, file operations||2016-10-31||Python session；
|Lecture #11: dictionaries, mutable arguments||2016-11-02||Jeopardy example,
|Lecture #12: workflow,
||2016-11-09||plankton example ·
||2016-11-21||Python session ·
|Lecture #16: modeling||2016-11-23||Python session|
|Lecture #17: modeling & numerical error||2016-11-28||Lecture notes|
|Lecture #18: randomness||2016-11-30||Python session · pi/4 sequence 1 · pi/4 sequence 2 ·
|Lecture #19: optimization (brute force)||2016-12-05|
|Lecture #20: optimization (heuristic)||2016-12-07||
|Lecture #21: error handling||2016-12-12||square brackets vs parentheses|
|Lecture #22: MATLAB basics||2016-12-14||MATLAB handout|
|[No Lecture: Midterm 2 in the evening]||2016-12-19|
|Lecture #23: MATLAB I/O, functions||2016-12-21||
| [No Lecture: Holiday Break]| 2016-12-26 | |
| [No Lecture: Holiday Break]| 2016-12-28 | |
| [No Lecture: Holiday Break]| 2016-01-02 | |
| Lecture #24: MATLAB statistics | 2016-01-04 | call-by-object-reference . Octave Descriptive Statistics . Octave Extra CORRCOEF . fplot . fzero ·
| Lecture #25: MATLAB curve fitting | 2016-01-09 |
| Lecture: Final review | 2016-01-11 | Python mumerical operations on arrays . Numpy ndarray any . Python boolean and integer . Numpy Question · MATLAB Find Array Elements That Meet a Condition|
Homework assignments are due at 6:00 p.m. on the due date. Many homework assignments are from the CodeLab site.
Although we can't provide technical support in setting up your personal machine, if you decide to install Python we warmly recommend using Anaconda Python 3.5.
All labs meet in A-0418. A1: Fri 08h00–09h5; B1: Fri 10h00–11h50
You should attend your own lab section to complete and submit assignments. Exceptions must be approved in advance.
Late Policy: late submission made by Friday 12pm will receive 50% credit; 25% credit by the weekend (Sunday 12pm). No further extension is accepted.
|Session||Date||Supporting Resources||Reference ans|
|Lab#01: python & Linux handson||2016-09-30||lab01.ipynb||lab01_ans.ipynb|
|Lab#02: strings and operators||2016-10-09||lab02.ipynb||lab02_ans.ipynb|
|Lab#03: function & more strings||2016-10-14||lab03.zip||lab03_ans.ipynb|
|Lab#04: lists, logic & control||2016-10-28||lab04.zip||lab04_ans.ipynb|
|Lab#05: loops and function logic||2016-11-4||lab05.zip||lab05_ans.ipynb|
|Lab#06: data analysis||2016-11-11||lab06.zip||lab06_ans.ipynb|
|Lab#07: application of list, dict and strings||2016-11-18||lab07.zip||lab07_ans.ipynb|
|Lab#08: application: remapping set for cipher machine||2016-11-25||lab08.zip||lab08_ans.ipynb|
|Lab#09: Modeling fluid behavior||2016-12-01||lab09.zip||lab09_ans.ipynb|
|Lab#10: Celestial Mechanics||2016-12-14||lab10.zip||lab10_ans.ipynb|
|Lab#11: Optimizing over Time||2016-12-16||lab11.zip||lab11_ans.ipynb|
|Lab#12: matlab: earthquake||2016-12-23||lab12.zip||lab12_ans.zip|
|Lab#13: weather forecast||2016-1-6||lab13.zip||lab13_ans.zip|
Please bring your campus card and arrive early. Consider visiting the location ahead of time so you know where you'll be taking the exam.
|Midterm #1||November 7, Monday 7pm-9pm in A-0414 -- as the day of the 12th lecture||Practice midterm; Midterm solution; Midterm question statistics|
|Midterm #2||December 19, Monday 7pm-9pm in A-0414 -- No lecture on that day||Practice midterm; Answers|
|Final||January 20, Friday 8am-11am in A-0414||Practice final; Answers|
Conflict exams are available for students with approved exceptions (such as another exam at the same time). Email course administration prior to the date of the midterm for more information.
All office hours will be held in Office 410 Arts and Science Building.
| Office Hours |
| --------------- |
| Please email the instructor
firstname.lastname@example.org to arrange a meeting slot by providing your available meeting slots |
|Component||Fraction of Total||Notes|
|Homework||20%||Lowest grade dropped|
|Labs||25%||Lowest grade dropped|
|Lecture quiz||10%||Participation-based; can drop three|
There is no physical textbook to buy for this course. Below, you will find references that will help you. Some are online textbooks. Others are interactive tutorials. They are listed here in order of quality. If you feel confused or lost, start with Code Academy.
Students should attend the lecture and lab section for which they registered, or they will receive a zero for that lecture attendance or lab. Permitted absences require proof of overriding considerations. Official proof of absence need to be in forms of doctor's note or letter provided by an authority that clearly states that the purpose of the letter is to prove absence; examples include a doctor's note, travel proof from an athletic team, etc. Special events might be taken into consideration only if it was contacted at least 72 hours in advance. To request for absence, students shall email course administration email@example.com. Requests for lab absence should be sent to firstname.lastname@example.org
When a student has a permitted absence for lab, make-up labs will be arranged. Make-up labs will be held in office hours under supervision.
Cheating not only robs you of an opportunity to learn, it also devalues your peers' hard work. Because of this, we take cheating very seriously in this course. The first case of cheating will result in a zero on the assignment or exam. The second case of cheating will result in a zero for the course. We will also report instances of cheating to the college and to your department. You'll find the official UIUC university policies on academic integrity here. You can learn more about the UIUC Computer Science Department's stance here.
Plagiarism is also very easy to detect in a programming class. Do not take shortcuts. Always do your own work. Note that we encourage discussion on course content. However, please write answers/codes to homework and lab assignments on your own (unless in some labs when you are instructed to complete assignments in pairs or groups).
Our philosophy in this course is based on the fact that (in real life) most of the time you have access to many resources: websites, peers, mentors, books, and others' source code. Your competence will be greatly increased by the resources you can use without recourse to external references, but when learning it only makes sense to let you function in a realistic manner. Thus, for lab exercises and assignments, you should work alone unless told otherwise, but you may consult outside sources of information. Any consultation is subject to the following restrictions: (1) you may not copy that source's work verbatim (i.e., ALWAYS write YOUR OWN code!); and (2) you must cite all sources used and the contribution they made to your work. This policy is designed to protect you against plagiarism.
You must also protect your own work from plagiarism. If you allow your peers to copy your work, you could end up with academic dishonesty. Do not send solutions to your peers. Do not show them your solution. Do not give out your account passwords. Do not leave your login sessions active.