Advanced Programming for Computer Design Problems
The course (ECE 5960-023/6960-025) teaches you how to write good programs with a specific focus on solving computer design problems. You will gain hands-on experience in writing C++/Python code for implementing important data structures and algorithms, such as graphs, dynamic programming, and machine learning that are fundamental to this domain.
The class will teach you the following topipcs:
Lecture | Topics | Slides | Practice | Assignment | Due | Note |
---|---|---|---|---|---|---|
2020/1/9 | Introduction | lecture1 | icp1 | hw0 | - | CADE access |
2020/1/16 | Divide and Conquer (I) | lecture2 | icp2 | - | - | - |
2020/1/23 | Divide and Conquer (II) | lecture3 | icp3 | - | icp2 | - |
2020/1/30 | Stack, Queue, and Floorplan | lecture4 | icp4 | hw1 | icp3 | - |
2020/2/6 | Hash Set | lecture5 | icp5 | - | icp4 | - |
2020/2/13 | Disjoint Set and Binary Search | lecture6 | icp6 | - | - | - |
2020/2/20 | Graph Algorithms (I) | lecture7 | icp7 | - | icp6 | - |
2020/2/27 | no class | - | - | - | hw1 | - |
2020/3/5 | Graph Algorithms (II) | lecture8 | icp8 | hw2 | icp7 | - |
2020/3/19 | Graph Algorithms (III) | lecture9 | icp9 | - | icp8 | online |
2020/3/26 | Graph Algorithms (IV) | lecture10 | icp10 | - | icp9 | |
2020/4/2 | Image Segmentation | - | - | hw3 | icp10 | - |
2020/4/9 | Range Query | lecture12 | icp12 | - | - | - |
2020/4/16 | Research Overview | lecture13 | icp13 (course evaluation) | - | - | |
2020/4/29 | - | - | - | - | hw3 | - |
The grade calculated so far is available here.
Due to the COVID-1 pandemic, we are following the University policy to move this course online. We will be using zoom to stream our course starting from 3/19/20.
In order to compile the practice problems we will be doing in this class you will need the GNU C++ Compiler (G++).
To correctly compile programs for this class you must specify C++11 with the -std=c++11
flag. You will also need to specify an output file for your program's binary executable with the -o
flag. Here is an example:
g++ my-program.cpp -std=c++11 -o my-program
You can execute this program in the same directory by running:
./my-program
And you can specify an input file my-program.in
by using input redirection:
./my-program < my-program.in
To check your compiler version you can run:
g++ -v
You can also enable compiler optimization with the -O2
flag.
Finally, on some systems, you may need to install the GNU C++ Compiler.
MacOS
You'll need to install XCode on the Apple Store
https://apps.apple.com/us/app/xcode/id497799835?mt=12
CentOS (EL7 Distros)
sudo yum update && sudo yum clean all
sudo yum install gcc-c++ -y
Ubuntu (Debian likes)
sudo apt-get update
sudo apt-get install build-essential