teaching

(2004-now)

  • Advanced VLSI (Explored advanced topics in VLSI design, including arithmetic circuits design, memory array design, system-on-chip (SoC) design, low-power design, and VLSI testing techniques.)
    • Universities & Institutions: Sharif University of Technology (SUT); Iran University of Science & Technology (IUST); Kharazmi University (KHU); Azad University.
    • References:
      • “CMOS VLSI Design: A Circuits and Systems Perspective” by Neil Weste and David Harris
      • “Digital Integrated Circuits: A Design Perspective” by Jan M. Rabaey, Anantha Chandrakasan, and Borivoje Nikolic
  • Computer Arithmetic (Studied algorithms and hardware design techniques for arithmetic operations in computers, emphasizing binary, decimal, and modular arithmetic.)
    • Universities & Institutions: IROST; Kharazmi University (KHU); Shahid Beheshti University (SBU); Azad University.
    • References:
      • “Computer Arithmetic: Algorithms and Hardware Designs” by Behrooz Parhami
      • “Digital Arithmetic” by Miloš D. Ercegovac and Tomás Lang
  • Cryptography (Hardware Implementation) (Introduced cryptographic algorithms focusing on hardware implementation, including practical examples using FPGAs, ASICs, hardware security aspects, and side-channel attacks.)
    • Universities & Institutions: IROST; Shahid Beheshti University (SBU); Azad University.
    • References:
      • “Understanding Cryptography” by Christof Paar and Jan Pelzl
      • “Cryptographic Engineering” by Cetin Kaya Koc
  • Hardware Description Language (Introduced hardware description languages such as VHDL and Verilog, covering syntax, semantics, and practical design examples.)
    • Universities & Institutions: IROST; Iran University of Science & Technology (IUST); Shahid Beheshti University (SBU); Azad University.
    • References:
      • “Circuit Design With VHDL” by Volnei A. Pedroni
      • “VHDL: Analysis and Modeling of Digital Systems” by Zainalabedin Navabi
  • Digital System Design (DSD) (Designed and analyzed digital systems, covering combinational and sequential logic design, finite state machines, and digital design flow.)
    • Institutions: Sharif University of Technology (SUT); Tehran.
    • References:
      • “Digital Design” by M. Morris Mano and Michael D. Ciletti
      • “Digital Design: A Systems Approach”, by William James Dally , R. Curtis Harting
      • “Verilog HDL: A Guide to Digital Design and Synthesis”, by Samir Palnitkar
  • Digital Electronics (Covered principles of digital electronics, including logic gates, combinational and sequential circuits, and digital system design.)
    • Institutions: Azad University.
    • References:
      • “Digital Electronics: Principles, Devices and Applications” by Anil K. Maini
      • “Digital Integrated Circuits: A Design Perspective” by Jan M. Rabaey, Anantha Chandrakasan, and Borivoje Nikolic
      • “Logical Effort: Designing Fast CMOS Circuits”, by Ivan Sutherland, Robert F. Sproull, David Harris
  • Advanced Computer Programming (Covered advanced topics in computer programming, including object-oriented programming, data structures, algorithms, and software engineering principles.)
    • Institutions: Institute for Advanced Studies in Basic Sciences (IASBS).
    • References:
      • “The C++ Programming Language”, by Bjarne Stroustrup
      • “Data Structures and Algorithm Analysis in C++” by Mark Allen Weiss
      • “Programming: Principles and Practice Using C++” by Bjarne Stroustrup
      • “Introduction to Algorithms” by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.
  • Basic Computer Programming (Covered fundamental programming concepts, including syntax, control structures, data types, and basic algorithms using languages such as C or Python.)
    • Institutions: Azad University.
    • References:
      • “C Programming Language” by Brian W. Kernighan, Dennis M. Ritchie
      • “Turbo Pascal: The Complete Reference” by Stephen K. O’Brien
      • “Python Programming: An Introduction to Computer Science” by John M. Zelle
  • Microprocessor & Microprocessor Lab (Covered microprocessor architecture, programming, and interfacing. Included hands-on labs with assembly language and interfacing techniques.)
    • Institutions: Shahid Beheshti University (SBU); Azad University.
    • References:
      • “80X86 IBM PC and Compatible Computers: Assembly Language, Design, and Interfacing” by Muhammad Ali Mazidi, Janice Mazidi Gillispie, Janice Gillispie Mazidi.
      • “Microprocessor Systems Design: 68000 Family Hardware, Software, and Interfacing” by Alan Clements
      • “The X86 PC Assembly Language, Design, And Interfacing” by Muhammad Ali Mazidi
  • Assembly Language (Introduced assembly language programming for processors. Topics included instruction sets, addressing modes, and programming techniques.)
    • Institutions: Azad University, Ghazvin, Iran.
    • References:
      • “Professional Assembly Language”by Richard Blum
      • “Assembly Language for Intel-Based Computers” by Kip R. Irvine
  • Basic Computer Concepts (Introduced fundamental concepts of computer science, including hardware, software, algorithms, and data structures.)
    • Institutions: Shahid Beheshti University (SBU), Tehran.
    • References:
      • “Computer Science: An Overview” by J. Glenn Brookshear and Dennis Brylow
      • “Invitation to Computer Science” by G.Michael Schneider and Judith L. Gersting
      • “Computer Organization and Design: The Hardware/Software Interface” by David A. Patterson, John L. Hennessy
  • Computer Lab (Provided practical hands-on experience in computer science. Included programming, debugging, and using software tools and environments.)
    • Institutions: Shahid Beheshti University.
    • References: No specific textbook; lab manuals and course notes used.