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

Optional Text Reading Assignments:

By Fri., Jan. 26: Read through the end of Chapter 1.
By Wed., Jan. 31: Read through the end of Section 2.3
By Mon., Feb. 5: Read through the end of Chapter 2.
By Fri., Feb. 9: Read through the end of Section 3.1
By Fri., Feb. 16: Read through the end of Section 4.2
By Mon., Feb. 26: Read through the end of Chapter 4.
By Mon., Mar. 5: Read through the end of Chapter 5.
By Fri., Mar. 9: Read through the end of Chapter 6.
By Fri., Mar. 23: Read through the end of Chapter 7.
By Mon., Apr. 2: Read through the end of Chapter 8.
By Wed., Apr. 4: Read through the end of Chapter 9.
By Mon., Apr. 9: Read through the end of Chapter 10.
By Mon., Apr. 16: Read through the end of Chapter 11.

Labs:

Lab 0: Week of January 22 - Lab 0 assignment is here. No pre-lab this time.
Lab 1: Week of January 29 - Lab 1 assignment is here. No pre-lab this time.
Lab 2: Week of February 5 - 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 12 - Lab 3 assignment is here. and Put your answers on this answer sheet No pre-lab this time.
Lab 4: Week of February 19 - 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 26 - Lab 5 assignment is here. For pre-lab, do what you can.
Lab 6: Week of March 5 - Lab 6 assignment is here. For pre-lab, write the code the best you can.
Lab 7a: Week of March 19 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 26 - 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 2 - 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 9 - 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 16 - 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 23 - 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 24: Simple C program
Friday, February 16: Moon Age program
Friday, February 16: Control structures
Wednesday, February 28: More on repetition control structures
Monday, March 26: Examples of array operations
Friday, March 30: Examples of array operations with some function calls
Wednesday, April 11: Examples of arrays, pointers and functions
Friday, April 20: Working with structs (and pointers)
Friday, April 27: 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)

Notes:

Precedence Chart