Skip to content. | Skip to navigation

Personal tools

Navigation

You are here: Home / ECPE 170 / TO-DO LIST

TO-DO LIST

ABET Assessment

  • Outcome A - An Ability to Apply Knowledge of Science and Engineering Fundamentals
    • (i.e. COMP 53 material)
  • Outcome B - An Ability to Design and Conduct Experiments, as Well as to Analyze and Interpret Data
  • Outcome K - An Ability to Use the Techniques, Skills, and Modern Engineering Tools Necessary for Engineering Practice

 

2017 Spring Changes 

 

2016 Fall Changes

  • Vivek: Lab 5 -- Image Amplification

2016 Spring Changes

  • Vivek: Lab 4 - Snakes game
  • Vivek: Lab 5 - Canny Edge Detector
  • Jeff:  Lab 12 - Hangman game

  

MISC IDEAS

  • Lab 10 - MIPS 1
    • Add a sixth exercise to the lab.  Have funA() call funB() call funC().  Each should have local variables and print them before/after calling the next function in the sequence, so that students have to use the stack to store $ra and the local variables.
  • Lab 11 - MIPS 2
    • A few people tried really hard to avoid using the floating-point square root instruction by having a sequence of if-statements test for all squares (1, 4, 9, 16, 25, ... 81).  If you want them to use floating-point square root, require it!   (Also, consider dropping the simplification that they can have two human players instead of 1 human and 1 computer)
  • Lab 8 - Networking
    • Add a extra-credit option to download.py:  Display a "progress bar"  (## bytes downloaded / ## total bytes - ##% done).  Warren implemented this already.
  • Labs 9 (Endianness) and 12 (Networking)
    • Endianness is boring.  Expand the networking lab to have students implement a client and server, and then work-in endianness here (where a programmer would naturally be concerned about endianness between different computer systems).
    • It would be great if there was a big-endian machine someone one campus that the students could verify interoperation with...

     

    • Switch to MARS simulator (more syscalls, perhaps a nicer GUI?.  The MIDI syscalls could be a fun lab exercise...)
    • Lab: Benchmark hard drive?
    • Lab: Benchmark SSD?
    • Lab: Implement your own version of malloc() and free()
    • Lab: Write a cache SIMULATOR to understand how caches work
      • This is too hardware-oriented for the class, which is supposed to focus only on what the programmer needs to understand about hardware)
    • Lab: C Programming
      • The linker exercises took a lot of time for very little knowledge.  Consider cutting or seriously condensing...
    • Lab: Operating Systems
      • What does the operating system DO for you?  (Networking, device management, IO, memory, scheduling, etc...)
      • Mini labs each focused on a different service provided by the kernel?
      • Lots of possibilities here!!

     

    MIPS Project Ideas:

    Program 1:  Implement a simple W=X*Y+Z-A*3  ... style equation

    Program 2: Implement a matrix multiply equation. (Fix the array size or have it variable?)

    Program 3: Implement the bubble sort as a FUNCTION?  (http://www.cse.sc.edu/~jbakos/212/projects/project1.pdf)

    Program 4: Implement the recursive Fibonacci function? (http://www.cs.jhu.edu/~masson/csf333/spim-labs/lab2f2002.html)

    Fancy project!  (CRC calculation:  http://www.ee.unlv.edu/~meiyang/cpe404/project1.pdf)

    Fancy project!  (Vowels in your name:  http://www.ecs.umass.edu/ece232/projects/lab1.pdf)

    BIG project (Write Minesweep in C, and again in assembly) - http://users.ece.gatech.edu/~linda/2035/Fall12/Project%201/Project1-v2.pdf