Projects
Mathematical Analysis, Practice of Programming in C&C++, Data Structure and Algorithm, Algorithm Design and Analysis, Compiler Design, Operating Systems, Introduction to Computer Systems, Computer Organization, Microcomputer Experiments, Web Software Technology, Computer Architecture, Design of Digital Logic, DataBase, Data Analysis, Probability Theory and Statics, Computer Network and Web Technology
Course Projects
MiniJava Compiler
A Minijava compiler transforms a Minijava program into Mips code. We can run the Mips code on SPIM simulator and get the correct output. Minijava is a programming language simplified from Java. The implementation of a Minijava compiler consists of 5 components: Typecheck, Minijava to Piglet, Piglet to Spiglet, Spiglet to Kanga, and Kanga to Mips.
code
Nachos Operating System
Nachos is instructional software for teaching undergraduate, and potentially graduate, level operating systems courses. The project explore all areas of modern operating systems, including threads and concurrency, multiprogramming, virtual memory, software-loaded TLB’s, file systems, and distributed systems.
code
RISC-V Simulator
RISC-V simulator can run some simple program based on RISC-V instruction set. We resolve the ELF for header information and load the code and data into memory to execute instructions one by one. We simulate the pipeline processor and the multilevel cache.
code
Elevator Controller on Microcomputer
We implement a elevator controller with assembly based on microcomputer and the experiment box of interface circuit to make the elevator run safely, stably and effectively. Meanwhile, we also utilize electronic keyboard to simulate the elevator buttons and indicator light, nixie tube and lattice to show the current status.
code
Calculator and Timer on FPGA
We implement a simple calculator and timer on FPGA. It realizes 8-bit addtion, multiplication and timer that can start, parse and reset.