• Teaching

  • Here are the classes i taught in 2015/2016. I will be teaching the same classes in 2016/2017 academic year. Please feel free to use materials with appropriate referencing and referals.
  • >> EE203 - Digital Systems Design (Fall 2016)
  •     Brief Description: This course is aimed at providing an introduction to logic design and the basic building blocks of modern digital systems such as digital computers. The course has three phases. The first phase deals with the number system, Boolean algebra, combinational logic including logic gates and minimization/optimization techniques. The second phase considers sequential logic including flip-flops, counters, summers and basic memory elements. The third phase will include discussions about more advanced topics like registers and basic computer design. Throughout the course, different representations such as truth tables, timing diagrams and state diagrams will be discussed. This course has an accompanying lab component in which the students are expected to obtain hands-on experience with modern computer-aided design softwares as well as applied digital integrated circuit technology using breadboards.

Past Exams: Midterm I_16, Midterm II_16, Final_16

  • >> COMP206 - Computer Architecture (Spring 2016)
  •    Brief Description: In this class, we will learn about the basics of the computer organization and architecture, roles of processors, main memory, and input/output devices. It also involves understanding the concept of programs as sequences of machine instructions. Understanding the relationship between assembly language and machine language; development of skill in assembly language programming; understanding the relationship between high-level compiled languages and assembly language. Understanding arithmetic and logical operations with integer operands. Understanding floating-point number systems and operations. Understanding simple data path and control designs for processors. Understanding memory organization, including cache structures and virtual memory schemes. Understand and implement basic pipelining concepts. If time permits, learn about advanced microarchitecture concepts such as branch prediction and multithreading.
  • Articles

  • These articles are intended to cover some of the fundamentals as well as advanced concepts for each and every topic. However, most of my applications are for storage and data recording scenarios. The contents of these text documents here have found many applications in digital communications, computer vision and parallel computing applications etc. I urge you to search for other brilliant documents available on the web for various succesful applications of the algorithms presented in those documents.

I will appreciate if you can provide any corrections you might have regarding the uploaded documents. Provide your feedback at the contact me web page.

Research Articles for Data Compression: Deduplication

  • Article 1 - Introduction to Coded Deduplication Systems

Research Articles for Constrained Codes:

  • Article 1 - Constraint systems
  • Article 2 - RLL and MTR codes

Research Articles for Digital Communication Systems

Research Articles for Reliability Theory Basics:

Articles for Time Series Analysis:

  • Article 1 - Hidden Markov Models: Evaluation, Decoding and Learning.

Review Articles for Multimedia Communications: