ECE 314


Spring 2020

All ECE 313 students are encouraged to take this optional one hour course. This course counts as technical elective credit for CE and EE majors and (software) laboratory credit for EE majors.

This one credit-hour course is designed to be taken concurrently with ECE 313 Probability with Engineering Applications. The course will strengthen your understanding of the concepts in ECE 313 through computer simulation and computation, and expose you to a variety of applications. It will help prepare you for follow on courses using probability, computation, and analysis of data.

Syllabus and Recommended Readings

Question and Answer Group: Piazza

In Class and Office Hours Questions Queue: Queues@Illinois

Laboratory periods meet weekly on Thursdays at 2022 ECEB. There will be weekly laboratory assignments, and the deadline for handing in each lab assignment is 11:59pm the first Wednesday after the lab period it was assigned (or if that Wednesday is during semester break, then a week later). Students must be present at the beginning of each lab period to take a brief quiz on the lab assignment that was just due. In addition, after the quiz, a TA will present a fifteen minute overview of the week's lab assignment. We encourage students to stay present and work on the lab assignment together for at least an hour after that, although students can work later on their own time, either in the lab, remotely, or on their own computers.

Grading will be 80% based on the lab assignments and 20% based on the quizzes. The lowest lab assignment score and lowest quiz score will be dropped. (Note: There will be no quiz for the last lab (Lab 14). Instead, the score for Lab 14 will be used twice, as both the lab score and the quiz score for Lab 14.)

Course Policy on Absences: Course policy is to not grant excused absences beyond dropping the lowest quiz score and lowest lab assignment score. Many students at some time during the semester for one reason or another miss due to illness, funeral, etc. that is beyond their control and we apply the policy uniformly, unless there is a major disruption for multiple weeks.

Teaching Assistant (Name and NetID): Yanda Hu yandahu2 and Zeyu Zhou zzhou51

Office Hours: 4-5pm Tuesdays on Zoom:

1:30-3:30 Wednesdays on Zoom:

Instructor: B. Hajek NetID: b-hajek

Section Meeting Time in Room 2022 ECE Building
A 9 - 10:50 am Thursdays on Zoom:
B 11 am - 12:50 pm Thursdays on Zoom:
C 1 - 2:50 pm Thursdays on Zoom:

Getting Started

The lab assignments will be distributed to you via Compass2g. Turn in the lab assignment by uploading your Jupyter notebook (.ipynb) file back to Compass2g each week. We will be using Jupyter to work with Jupyter (formerly called iPython) notebook files (extension .ipynb) on the EWS Linux machines. Jupyter is being used broadly worldwide across many packages and languages including Python. To get started on an EWS Linux machine, run the following commands in a terminal window:

module load ece314
virtualenv ece314
source ece314/bin/activate
python3 -m pip install matplotlib scipy jupyter networkx
jupyter notebook

Also, if you put the first and third of these lines into your .bashrc file, then the next time you log in, you will be able to use just the last line to open Jupyter.

[If that doesn't work and you see the word "Canopy" somewhere in the error messages, open Canopy by typing "canopy" from a terminal window, and from the Canopy preferences, make sure you are NOT choosing Canopy as your default for Python. Then logout and log in again.]

If you are working on labs on your own machines you should update the software there to Version 7.5 Ipython / Jupyter using Python version 3.7. For Mac OS X the Anaconda/Jupyter download works well. There are numerous tutorials on the web to help you get started, such as for:

In addition, you can download Lab 0 here, or see Lab 0 as a static web page here. Lab 0 is not to be handed in; it is most of the first lab that deals with the introduction to Python. If you have multiple Python projects, perhaps for different courses you are taking, and different packages are needed, Python virtual environments might be quite helpful.

A note on collaboration and academic integrity reporting

We encourage you to discuss the labs with each other to help you understand the labs and formulate solutions. However, you are expected to write up on your own each lab you turn in, including both code and Markdown cells. If course staff detects identical or nearly identical notebooks handed in by two or more students, all students involved will be assigned a zero score for that lab, including those who wrote the code and those who copied. According to University policy, whenever a penalty of any magnitude is imposed for violation of academic integrity, it is mandatory for course staff to file an academic integrity report that could go into your student record. See Students' Quick Reference Guide to Academic Integrity for more information. The consequences for a first offense can be significant/disturbing. The bottom line: please make sure to write your own answers in the notebooks you turn in, and don't help others violate the policy.

If you have any questions, please discuss with the instructor or a TA.