ECE 177 --- Introduction to Programming for Engineers
Assignments

Homework Assignments:

Homework handed in and zyBook assignments are due at the beginning of the class period. Substantial points will be taken off if late.
CodeLab is here for homework that requires it. CodeLab is due at 11:59 on the given day. Half credit is given for problems completed late.

# Due Assignment
Z1) Fri. Jan 25: zyBook activites through Section 1.4
C1) Fri. Jan 25: Sign up for Codelab Instructions here.
Z2) Mon. Jan 28: zyBook activites through Section 1.10
Z3) Wed. Jan 30: zyBook activites through Section 2.3 (this implies you also finish Chapter 1)
C2) Thu. Jan 31: Work CodeLab problems up to and including those in the section titled Arithmetic Operators in Chapter 2. Due 11:59pm
Z4) Fri. Feb 1: zyBook activites through Section 2.7
Z5) Mon. Feb 4: zyBook activites through Section 2.10
Z6) Wed. Feb 6: zyBook activites through Section 2.14
H1) Wed. Feb 6: Homework 1. Same assignment in Word format if you want to fill it out it on the computer.
Z7) Fri. Feb 8: zyBook activites through Section 2.18
Z8) Mon. Feb 11: zyBook activites through the end of Chapter 2
H2) Mon. Feb 11: Homework 2
Z9) Wed. Feb 13: zyBook activites through Section 3.2
Z10) Fri. Feb 15: zyBook activites through Section 3.4
H3) Fri. Feb 15: Homework 3
C3) Sun. Feb 17 (11:59pm): CodeLab problems through the first section of Chapter 4 on Logical Expressions. (This includes the rest of Chapter 2 and all of Chapter 3.)
Z11) Mon. Feb 18: zyBook activites through Section 3.6
C4) Tues. Feb 19 (11:59pm): Work all CodeLab problems corresponding to Homework 4
Z12) Wed. Feb 20: zyBook activites through Section 3.10
C5) Thu. Feb 21 (11:59pm): Work all CodeLab problems through the section of Chapter 4 on Selection
Z13) Fri. Feb 22: zyBook activites through Section 3.13
Z14) Mon. Feb 25: zyBook activites through Section 4.4
C6) Tue. Feb 26 (11:59pm): Work all CodeLab problems through the end of Chapter 4
Z15) Wed. Feb 27: zyBook activites through Section 4.8
Z16) Fri. Mar 1: zyBook activites through Section 4.11
Z17) Mon. Mar 4: zyBook activites in chapter 6 through Section 6.4 (Skipping chapter 5 for now)
Z18) Wed. Mar 6: zyBook activites in chapter 6 through Section 6.7
C7) Thur. Mar 7 (11:59pm): Work all CodeLab problems through the end of Chapter 5
Z19) Fri. Mar 8: zyBook activites in chapter 6 through Section 6.12, but skip 6.9 to 6.11 for now
Z20) Mon. Mar 11: zyBook activites in chapter 5 through Section 5.5
Z21) Wed. Mar 13: zyBook activites in chapter 5 through Section 5.10
C8) Thur. Mar. 14 (11:59pm): Work all CodeLab problems titled Homework 5
Z22) Fri. Mar 15: zyBook activites in chapter 5 through Section 5.15
Z23) Mon. Mar 25: zyBook finish any remaining activites (all chapters) through the end of chapter 6
C9) Lab 7 Prelab: Work all CodeLab problems related to Lab 7 before coming to lab (week of March 25).
C10) No due date: Work all CodeLab problems titled Homework 6
C11) Sun. Mar 31 (11:59pm): Work all CodeLab problems through the end of Chapter 7
C12) Lab 8 Prelab: Work all CodeLab problems related to Lab 8 before coming to lab (week of April 1).
C13) Thu. Apr 4 (11:59pm): Work all CodeLab problems titled Chapter 9 and PREPROCESSOR
Z24) Fri. Apr 5: zyBook activites in chapter 6 Section 6.9 - 6.12
Z25) Mon. Apr 8: zyBook activites in chapter 7 (Pointers) through Section 7.4
C14) Lab 9 Prelab: Work all CodeLab problems related to Lab 9 before coming to lab (week of April 8).
Z26) Fri. Apr 12: zyBook activites until the end of Chapter 6 that have not yet been completed
C15) Sun. April 14 (11:59pm): Work all CodeLab problems in Chapter 10 (Pointers and Dynamic Storage).
Z27) Mon. Apr 15: zyBook activites in chapter 8 (Structs) through Section 8.3
C16) Lab 10 Prelab: Work all CodeLab problems related to Lab 10 before coming to lab (week of April 15).
Z28) Mon. Apr 22: zyBook activites in chapter 8 (Structs) through Section 8.6
C17) Sun April 21 (11:59pm): Work all CodeLab problems in Chapter 11.
C18) Lab 11 Prelab: Work all CodeLab problems related to Lab 11 before coming to lab (week of April 22).
C19) Sun April 28 (11:59pm): Work all CodeLab problems titled Homework 7.
Z28) Sun . May 5: zyBook activites through the end of Chapter 11, including any uncompleted activites in previous chapters.

Optional Text Reading Assignments:

By Fri., Jan. 25: Read through the end of Chapter 1.
By Wed., Jan. 30: Read through the end of Section 2.3
By Mon., Feb. 4: Read through the end of Chapter 2.
By Fri., Feb. 8: Read through the end of Section 3.1
By Fri., Feb. 15: Read through the end of Section 4.2
By Mon., Feb. 25: Read through the end of Chapter 4.
By Mon., Mar. 4: Read through the end of Chapter 5.
By Fri., Mar. 8: Read through the end of Chapter 6.
By Fri., Mar. 15: Read through the end of Chapter 7.
By Mon., Apr. 1: Read through the end of Chapter 8.
By Wed., Apr. 3: Read through the end of Chapter 9.
By Mon., Apr. 8: Read through the end of Chapter 10.
By Mon., Apr. 15: Read through the end of Chapter 11.

Labs:

Lab 1: Week of January 28 - Lab 1 assignment is here. No pre-lab this time.
Lab 2: Week of February 4 - Write and run programs for problems in the optional text: Chapter 2 problems 1, 3 and 7, and Chapter 1 problem 3.
   Here is some useful information to do the lab.

Lab 3: Week of February 11 - Lab 3 assignment is here. and Put your answers on this answer sheet No pre-lab this time.
Lab 4: Week of February 18 - Lab 4 assignment is here. and Lab 4 C code to debug is here. No pre-lab this time.
   Here is a guide for compiling and debugging with gdb

Lab 5: Week of February 25 - Lab 5 assignment is here. For pre-lab, do what you can.
Lab 6: Week of March 4 - Lab 6 assignment is here. For pre-lab, write the code the best you can.
Lab 7a: Week of March 11 Breadboard wiring is here.  Hex code for testing is here.
 FYI, datasheet for the AVR is here.
 Instructions for programming are here.

Lab 7b: Week of March 25 - Lab 7 assignment is here. and starter code is here. Note: For pre-lab work the CodeLab problems associated with this lab before coming to lab.
 To use the LCD you will need lcd.h and liblcd.a and link them with your code (may need to "Save link as...")

Lab 8: Week of April 1 - Lab 8 assignment is here. and starter code is here.
 Note: For pre-lab work the CodeLab problems associated with this lab before coming to lab.
 Optional: Here is a test program for testing your getkey() routine before putting it into CodeLab
 Optional: Here is a hex code for testing your keypad and wiring (in case you didn't test it before)

Lab 9: Week of April 8 - Lab 9 assignment is here. and starter code is here.
 Note: For pre-lab work the CodeLab problems associated with this lab before coming to lab.
 Here are some test sequences:

Lab 10: Week of April 15 - Lab 10 assignment is here. and starter code is here.
 Note: For pre-lab work the CodeLab problems associated with this lab before coming to lab. Read "Pre-lab" section on lab sheet first.

Lab 11: Week of April 22 - Lab 11 assignment is here. and starter code is here.
 Note: For pre-lab work the CodeLab problems associated with this lab before coming to lab.

Notes and examples from class:

Wednesday, January 23: Simple C program
Friday, February 15: Control structures
Wednesday, February 27: More on control structures
Monday, March 11: Moon Age program
Monday, March 11: Examples of array operations
Monday, March 25: Examples of array operations with some function calls
Monday, April 8: Examples of arrays, pointers and functions
Friday, April 19: Working with structs (and pointers)
Friday, April 26: Sorting and searching with arrays of things

Other exercises/examples:



Quick Guides and hardware info:

Quick start guide for setting up a console application in Visual Studio (for PCs)

Quick start guide for setting up PuTTY, running ssh, and doing a gcc compile (PC)

One page quick reference on the linux command line

Data sheet for the AVR can be found here.

Data sheet for the LCD display can be found here.

Highlight of some gdb (gcc command line) debugger commands is here.

Windows Programming files here (avr.zip)
 Info on compiling and programming is here for Windows users and here for Mac users

Notes:

Precedence Chart