ENGR-E110

https://engr110.github.io

Welcome to E110! "Engineering Computing Architecture" is about how computers are built from simpler components, and how they encode information into physical parts. Along the way, we will also cover the Linux shell, Hardware Description Languages (HDL) and intermediate Python programming.

Prerequisites

Students should have already taken ENGR-E 101 Innovation and Design: https://registrar.indiana.edu/browser/soc4192/ENGR/ENGR-E101.shtml

Students should also come to E110 prepared with:

  • intermediate computer literacy
  • editing, saving, and sharing documents
  • working knowledge of Windows, MacOS, and/or Linux
  • beginner experience in Python programming language (variables, functions, loops, lists)
  • beginner experience with electronics (knowledge of transistors, microcontrollers, voltage, electricity)

Outcomes

Students will finish E110 with knowledge in:

  • fundamentals of digital logic (gates from transistors, complex gates from simple gates)
  • how a CPU is constructed, as a system, from simpler components
  • number representations (decimal, hexadecimal, binary)
  • Linux command-line interface (CLI)
  • MyHDL (hardware description language in the form of a Python library)
  • intermediate Python

Contact

name role office email office hours
Alex Shroyer instructor Luddy 4148 ashroyer@iu.edu (Tues;Thurs) 01:00-02:00
Juliette Zerick AI Luddy 4114M jzerick@iu.edu (Mon) 03:00-04:00
Daniel Osei AI Luddy 4125 dosei@iu.edu  

Classroom location, meeting times

section lecture lab location
10678 (Mon) 10:10-11:00 (Tues;Thurs) 11:15-12:30 Luddy 4111
29714 (Mon) 11:15-12:05 (Tues;Thurs) 04:00-05:15 Luddy 4111

Announcements

We will post to Canvas with updates/clarifications/announcements. By default, you should already have notifications from Canvas enabled. It is your responsibility to ensure you can receive such announcements.

Autograder

We will an automated grading system for assignments: autograder link

For security reasons, you must access it through the IU network - either access it while on campus, or use a VPN service to make the site think you're on campus.

Materials/Textbooks

Conduct

Lab/Classroom etiquette

  1. Respect others who want to work or listen quietly, minimize distractions.
  2. No food or open drinks. Non-spill bottles are OK.
  3. Leave the lab at least as clean as you found it.
  4. Log out before leaving.

Do your own work

Collaboration for learning and helping each other is encouraged, however all assignments must be exclusively your own work. Cheating results in 0 credit for the assignment, reporting to the Dean, and possible further consequences. Cheating also includes allowing others to copy your work.

See the official IU policy for more information.

No late work

You may submit multiple times to the Autograder; the highest scoring submission is the one that will be used in grading. No submissions after the deadline will be accepted. Sometimes the Autograder server may be heavily used and respond more slowly, so plan accordingly.

Extensions may, at the instructor's discretion, be given to individuals in extreme circumstances, such as medical emergencies (Doctor note required).

Attendance

We will take attendance at random times throughout the semester, primarily for enrollment reporting purposes.

Get the help you need

Disability Assistance

If you require accommodations for a disability, please let your instructor know within the first 3 weeks of the semester. As soon as we are aware of your needs, we can work with the Office of Disability Services for Students (DSS) to help determine appropriate academic accommodations. Any information you share with us will be treated as confidential.

Tutoring

SICE tutoring is available free of charge for this course (and others you may be taking currently, such as ENGR-E111). Sunday 2-6pm, Monday-Thursday 6-9pm, at Teter F160.

Schedule

See also: Official IU Calendar for Spring 2019

Date Day Topic Reading Assignment
01/07 Mon Intro, Linux CLI Essential Linux Commands  
01/08 Tues Python CLI, number conversion Python builtin functions A00a
01/10 Thurs Autograder practice MyHDL manual M1, M2, M3 A00b
01/14 Mon MyHDL, Boolean Logic Ch1 and slides1 A01
01/15 Tues truth tables    
01/17 Thurs truth tables, continued    
01/21 Mon MLK Jr. Day    
01/22 Tues Gates: 16-input and/or/etc. Ch2 and slides2  
01/24 Thurs Gates: Mux, Demux    
01/28 Mon      
01/29 Tues      
01/31 Thurs      
02/04 Mon   hwtypes and structure A02
02/05 Tues      
02/07 Thurs      
02/11 Mon   Ch3 and slides3  
02/12 Tues   M4  
02/14 Thurs      
02/18 Mon      
02/19 Tues      
02/21 Thurs      
02/25 Mon   Ch4 and slides4 A03 (due Wed)
02/26 Tues      
02/28 Thurs      
03/04 Mon Midterm Review    
03/05 Tues Midterm Review    
03/07 Thurs Midterm - normal class time    
03/11 Mon Spring Break    
03/12 Tues Spring Break    
03/14 Thurs Spring Break    
03/18 Mon   Ch5 and slides5  
03/19 Tues     A04
03/21 Thurs      
03/25 Mon      
03/26 Tues     A05
03/28 Thurs      
04/01 Mon   Ch6 and slides6  
04/02 Tues      
04/04 Thurs      
04/08 Mon      
04/09 Tues     A06
04/11 Thurs      
04/15 Mon     Final Review
04/16 Tues      
04/18 Thurs      
04/22 Mon      
04/23 Tues Final Review None None
04/25 Thurs Final Exam - normal class time None None
04/29 Mon Finals Week    
04/30 Tues Finals Week    
05/02 Thurs Finals Week    
05/06 Mon      
05/07 Tues      
05/09 Thurs Semester Ends