This is Pace University's CS232 repository taught by the best Professor I've ever had: Dr. Jun Yuan(PhD in CS):
Computer Organization(CS232):
### Language used
- C
### OS environment used
- Unix/Linux
### About:
Introduction to major combinational circuits and sequential circuits including digital logic,
gates, decoders, registers, counters, and memory units. Data representation including such concepts
as number systems and their operations and conversions as well as complements and fixed and floating
point representation. Other concepts include microoperations; organization and design of a basic computer;
introduction to assembly language programming; interrupts and interrupts processing; central processing unit;
instruction design tradeoff -- RISC versus CISC; pipeline, vector processing, and multiprocessors versus multicomputers.
1. Highly profivient in C programming language.
2. Thorough understanding of the processes that lay behind running code in C and other programming languages.
3. Effective and Dynamic memory allocation, using functions: calloc(), malloc(), realloc(), free().
4. C language's memory allocation standards and processes(logic gates, circuits, registers, counters, compliments etc.).
5. Debugging, coding complicated systems, spotting memory-leaks in C using "Valgrind"
6. Understanding of Stack, Heap memory allocation and memory manipulation.
7. Optimization of arithmetic operations with bit-manipulation. Bit-manipulation approaches' pros and cons.
8. Familiarity in x86 assembly language.
9. Familiarity in RAM-Hashing processes.
10. Strong confidence in coding and understanding of Software Development at the much higher level.
1. Start projects right when received, finish before the deadline and check for bugs(self-discipline).
2. Always deliver the best solutions possible.
3. Be tenacious, creative and colaborative while working on heavy projects.
4. Working in a purpose-driven group encourages you at maximum of your abilities and even beyond.
5. Hardware and software have somewhat similar approaches and might be applied vice versa, so read a lot.
6. Do not overthink problems, divide and conquer complicated tasks.
7. Trust yourself and your expertise!