Setting up CLion for CS 537

As the projects get larger and more complicated, I think it is important to have a good coding environment for this course. I'd like to share with you how I use CLion as the main IDE for C programming. I recommend CLion for the following reasons:
  • Sync changed files to the remote server. You don't need to manually copy and paste the modified code to the CS lab.
  • Powerful code analysis and correction suggestion. You can eliminate most of the compilation errors while you are editing the file.
  • Built-in ssh and scp support with a handy graphical interface. For Windows users, you don't need to install PuTTY/WinSCP/WSL to connect to the CS lab.
  • Quick search and navigation. It's much easier to search files in the project folder (compared to grep) and navigate between the declaration and definition among files (compared to vim or emacs).
Please feel free to post any questions or comments down below :) (more…)

CS/ECE 252

CS/ECE 252: Introduction to Computer Engineering Source: http://ece252.engr.wisc.edu/
Universal Computing Devices MP4 Flash
Trends and Complexity MP4 Flash
Abstraction MP4 Flash
Electrical Information MP4 Flash
Number Representation MP4 Flash
Base Conversion MP4 Flash
Counting MP4 Flash
Arithmetic MP4 Flash
Signed Numbers MP4 Flash
Sign Extension and Overflow MP4 Flash
Fixed- and Floating-Point MP4 Flash
ASCII MP4 Flash
Logic Functions MP4 Flash
Combinational Logic MP4 Flash
Combinational Building Blocks MP4 Flash
Sequential Logic and Flip-Flops MP4 Flash
Finite State Machines MP4 Flash
Registers and Memory MP4 Flash
Basic Processor Model MP4 Flash
Instructions and the Instruction Cycle MP4 Flash
LC-3 ISA and Processor Overview MP4 Flash
LC-3 Operate Instructions MP4 Flash
Simple Programs with LC-3 Operate Instructions MP4 Flash
Basic LC-3 Data Movement MP4 Flash
More LC-3 Data Movement MP4 Flash
LC-3 Control Flow MP4 Flash
Programming Techniques MP4 Flash
LC-3 Assembly Language MP4 Flash
LC-3 Memory Allocation MP4 Flash
LC-3 Assembler MP4 Flash
Subroutines MP4 Flash
Programming With Subroutines MP4 Flash
I/O Concepts MP4 Flash
LC-3 I/O MP4 Flash
Operating Systems MP4 Flash
LC-3 TRAPs MP4 Flash

CS/ECE 352

CS/ECE 352: Digital System Fundamentals Source: http://ece352.engr.wisc.edu/ 
Fundamentals Review MP4 Flash
Binary Coded Decimal, Counting MP4 Flash
Boolean Algebra MP4 Flash Slide
Standard Forms MP4 Flash Slide
Universal Gates MP4 Flash Slide
Introduction to K-Maps MP4 Flash Slide
Optimization with K-Maps MP4 Flash Slide
Don't-Cares MP4 Flash Slide
Decoders and Encoders MP4 Flash Slide
Multiplexers MP4 Flash Slide
Tristates MP4 Flash Slide
Implementation Technology MP4 Flash Slide
Arithmetic Structures MP4 Flash Slide
ALUs MP4 Flash Slide
Re-examining Carry Bits MP4 Flash Slide
Carry Look-Ahead Adders MP4 Flash Slide
D Latches and FFs MP4 Flash Slide
Intro to Sequential Circuits MP4 Flash Slide
State Diagrams MP4 Flash Slide
Sequential Circuit Design Overview MP4 Flash Slide
State Minimization MP4 Flash Slide
FSM Design and Verification MP4 Flash Slide
Flip-Flop Timing Parameters MP4 Flash Slide
Sequential Circuit Timing MP4 Flash Slide
One-Hot State Machines MP4 Flash Slide
Other Flip-Flop Types MP4 Flash Slide
Registers MP4 Flash Slide
Register Design MP4 Flash Slide
Intro to Complex FSMs MP4 Flash Slide
Complex FSMs MP4 Flash Slide
Pipelining MP4 Flash Slide
Serial Transfers MP4 Flash Slide
Registers with Shared Logic MP4 Flash Slide
Basic Processor Structure MP4 Flash Slide
Operation of a Basic Processor MP4 Flash Slide
Intro to Memory MP4 Flash Slide
SRAM Design MP4 Flash Slide
SRAM Arrays MP4 Flash Slide