Sharif Undergraduate Courses

List of my undergraduate major-related courses

This is a list of the major-related courses (labs, workshops, human sociology, theology, and general courses excluded) I took over my undergraduate studies at Sharif University of Technology.

Transcript: Please contact me if you wish to see an unofficial copy of my transcript or contact vpaa@sharif.edu or registrar@sharif.edu directly and ask for an official copy.

Table of Content:

Mathematical Courses

General Courses

GEN MATH 1 (Math Dep., Course NO. 20-015, 4 Credits, 190 Hours)

Instructor: Dr. M.H. Mostafid

This course covers basic concepts of single variable calculus and geometry and provides the needed background for later technical courses.

Reference Books:

  1. R. A. Adams, C. Essex. Calculus, A Complete Course. 7th Edition, Chapters 1-10.

GEN MATH 2 (Math Dep., Course NO. 20-016, 4 Credits, 190 Hours)

Instructor: Prof. M. Gholamzadeh Mahmoudi

Continuing from GEN MATH 1, This course covers essential multi-variable calculus and geometric concepts and provides the needed background for later technical courses.

Reference Books:

  1. R. A. Adams, C. Essex. Calculus, A Complete Course. 7th Edition, Chapters 11-End.

DIFF EQN (Math Dep., Course NO. 20-034, 3 Credits, 150 Hours)

Instructor: Prof. H.-R Fanai

In this course, first and second-level linear differential equations and some non-linear differential equations and systems of equations are introduced, along with some numerical and analytical ways to solve them.

Reference Books:

  1. M. Braun. Differential Equations and Their Applications: An Introduction to Applied Mathematics. 4th Edition
  2. W. E. Boyce, R. C. DiPrima, Elementary Differential Equations and Boundary Value Problems, 11th Edition

Computer & Data Sciences Related Courses

DISCRETE STRUCTURES (Course NO. 40-115, 3 Credits, 150 Hours)

Instructor: Prof. H. Zarrabi-Zadeh

This course aims to acquaint students with the concepts, structures, and techniques of discrete mathematics that are widely used in computer science and engineering. Developing necessary skills such as understanding and constructing accurate mathematical proofs, creative thinking in problem-solving, familiarity with logic, combinations, number theory, graph theory, and computational theory, as well as providing the mathematical prerequisites needed for many other courses are the objectives of this course.

Reference Books:

  1. K. H. Rosen. Discrete Mathematics and Its Applications. 8th Edition, McGraw Hill, 2018.
  2. R. P. Grimaldi. Discrete and Combinatorial Mathematics: An Applied Introduction. 5th Edition, Pearson Addison Wesley, 2004.
  3. A. Engel. Problem-Solving Strategies. Springer, 1998.

ENG PROBABILITY & STAT (Course NO. 40-181, 3 Credits, 150 Hours)

Instructor: Prof. A. Sharifi-Zarchi

The purpose of this course is to acquaint students with the fundamental concepts of probability theory and statistical inference and their applications in computer engineering, such as data modeling problems and regression. These concepts include statistical interpretation and principles, univariate and multivariate probability distribution functions, conditional probability and statistical independence, random variables, defined functions on random variables, statistical distribution families, central limit theorem and law of large numbers, and hypothesis testing.

Reference Books:

  1. A. Papoulis and S. Pillai. Probability, Random Variables and Stochastic Processes. 4th Edition, McGraw Hill, 2002, Chapters 1-8.

  2. S. Ross. A First Course in Probability. 10th Edition, Prentice Hall, 2019.

  3. G. Casella and R. L. Berger. Statistical Inference. 2nd Edition, Wadsworth Press, 2002.


LINEAR ALGEBRA (Course NO. 40-282, 3 Credits, 150 Hours)

Instructor: Prof. S. A. Motahari

This course aims to acquaint students with the necessary theoretical concepts of linear algebra and how to use and implement them in a suitable software context. Familiarity with this course's concepts allows the analysis of mappings and linear systems through matrices and operations, operators, and defined concepts related to them. The problem of optimization is also considered one of the most widely used applications of linear algebra.

Reference Books:

  1. Right Sheldon Axler. Linear Algebra. Springer, 2015.
  2. Gilbert Strang. Linear Algebra and Its Application. 4th Edition, Cengage Learning, 2006.
  3. David Clay. Linear Algebra and Its Application. 4th Edition, Pearson, 2011.

STOCH PROC (Math Dep., Course NO. 20-635, 4 Credits, 190 Hours)

Instructor: Prof. M. Esfahani Zadeh

This courses is a compact introduction to Stochastic Processes aiming to familiarize students with fundamental concepts such as Markov Processes (Finite, Countable, Continuous-Time), Optimal Stopping, Martingales, Renewal Processes, Reversible Markov Chains, Brownian Motion, and more advanced ones such as Stochastic Integration and Itô Calculus.

Reference Books:

  1. G. F. Lawler, Introduction to Stochastic Processes, 2nd Edition

NUMERICAL COMPUTATION (Currently Taking) (Course NO. 40-215, 3 Credits, 150 Hours)

Instructor: Dr. F. Baharifard

The purpose of this course is to acquaint undergraduate students with numerical methods for solving scientific problems in various fields of science and engineering. These methods can approximate the scientific issues of different disciplines, which cannot be accurately calculated by conventional mathematical analogies, with a limited error. At the beginning of this course, students will be introduced to the concepts of error and the various numerical methods for solving technical engineering problems. On the other hand, using efficient software environments to solve problems, compare numerical methods, and graphically displaying the results to summarize them are the other objectives of this course.

Reference Books:

  1. S. Pal. Numerical Methods Principles, Analysis and Algorithms. Oxford University Press, 2010.
  2. J. Kiusalaas. Numerical Methods in Engineering with Python 3. Cambridge University Press, 2013.
  3. C. B. Moler. Numerical Computing with MATLAB. MathWorks, 2013.

Physics Courses

PHYSICS 1 (Physics Dep., Course NO. 24-011, 3 Credits, 190 Hours)

Instructor: Prof. A. Rezakhani

This course aims to familiarize students with the fundamentals of classical Newtonian physics, covering topics including Dynamics and Cinematics of mechanical systems.

Reference Books:

  1. Fundamentals of Physics, Extended, By David Halliday, 10th Edition.

PHYSICS 2 (Physics Dep., Course NO. 24-012, 3 Credits, 190 Hours)

Instructor: Prof. A. Iraji Zad

This course continues on the topics covered in PHYSICS 1 and aims to familiarize students with the fundamentals of Electronics and Electromagnetism and very briefly introduce the concepts of modern physics.

Reference Books:

  1. Fundamentals of Physics, Extended, By David Halliday, 10th Edition.

Computer Science Courses

Hardware Related Courses

LOGIC DESIGN (Course NO. 40-212, 3 Credits, 150 Hours)

Instructor: Prof. S. Hesabi

This course covers topics such as: Design and implementation of combinational and sequential logic circuits, Concepts of Boolean algebra, Karnaugh maps, flip-flops, registers, and counters along with various logic families and comparison of their behavior and characteristics.

Reference Books:

  1. "Digital Design" by M. Morris Mano, and Michael D. Ciletti, Pearson, Fifth Edition.

FUND ELEC&ELCTRNIC CIRCTS (Course NO. 40-124, 3 Credits, 150 Hours)

Instructor: Prof. S. Koohi

This course covers topics such as fundamentals of electronic elements and circuits (i.e. Circuit analysis in time and frequency domains), diode circuits, circuit characteristics of bipolar and MOS transistors, MOS and CMOS digital circuits, and applicable circuits (e.g. Latches, Shift Registrs, RAMs, conversion circuits).

Reference Books:

  1. "Basic Circuit Theory", by Charles A. Desoer, and Ernest S. Kuh, 1966.
  2. "Engineering Circuit Analysis" by William H. Hayt & Jack E. Kemmerly Engineering Circuit Analysis McGraw-Hill Book, Seventh edition, 2007.
  3. "Microelectronic Circuits", by Adel S. Sedra, Kenneth C. Smith, Tony Chan Carusone, Vincent Gaudet, (The Oxford Series in Electrical and Computer Engineering) 8th Edition.

COMPUTER STRUCT & LANG (Course NO. 40-126, 3 Credits, 150 Hours)

Instructor: Prof. H. Asadi

This course introduces students to the foundations of hardware design and the interface of hardware to software implementations. Focusing on basic arithmatic digital circuits, this course motivates hardware inspired low-level assembly languages (specifically the MIPS Assembly language) and discusses topics such as ISAs, computational arithmatics, Addressing modes, Interpretation and runtime of programs, Memory organization, and I/O.

Reference Books:

  1. "Computer Organization & Design", The Hardware/Software Interface, 5th Ed, by D Patterson & J Hennessey, MK publishing, 2014.
  2. "The 80x86 IBM PC and Compatible Computers, Vol I & II", 4th Ed, M Mazidi & J Mazidi, Pearson, 2003.
  3. "Structured Computer Organization", 6th Ed, by S Tanenbaum, T Austin, Pearson, 2013.
  4. R E Bryant & D R O'Hallaron, "Computer Systems: A Programmer's Perspective", 3rd Ed, Pearson, 2016.

COMPUTER ARCHITECTURE (Course NO. 40-323, 3 Credits, 150 Hours)

Instructor: Dr. L. Arshadi

Continuing from COMPUTER STRUCT & LANG, this course dives deeper in to the architectural design of computer hardware, covering topics such as: RTL, Datapaths, Control Paths, Advanced Computational Arithmetics and Numbers Reperesentation, Interupts and I/O, Pipelining, Caches, Parallelization.

Reference Books:

  1. "Computer Organization & Design", The Hardware/Software Interface, 5th Ed, by D Patterson & J Hennessey, MK publishing, 2014.
  2. "Structured Computer Organization", 6th Ed, by S Tanenbaum, T Austin, Pearson, 2013.
  3. "Computer System Architecture", M. Morris Mano, Pearson, 1999.

DIGITAL SYSTEM DESIGN (Course NO. 40-223, 3 Credits, 150 Hours)

Instructor: Prof. F. Baharvand

This course intends to familiarize students with the practical design of digital systems and covers topics ranging from the pipeline of manufacturing digital circuit boards, verification tools and strategies, and extensively discusses Verilog and HDLs role in various parts of digital systems' world. Students will be able to design their own custom circuits for a wide range of applications using the Verilog HDL after going through the lectures and appointed practical and theoretical problem sets.

Reference Books:

  1. Verilog HDL: A Guide to Digital Design and Synthesis, Second Edition, By Samir Palnitkar
  2. Design Through Verilog HDL, by T. R. Padmanabhan, B. Bala Tripura Sundari, 1st Edition.
  3. Quick Reference Verilog® HDL

DATA TRANSMISSION (Currently Taking) (Course NO. 40-343, 3 Credits, 150 Hours)

Instructor: Prof. A. Hemmatyar

This course aims to develop an understanding of the various aspects of data communications and computer networking systems. Topics include: data transmission, channels and mediums, multiplexing, switching, protocols and architecture and more.

Reference Books: Is yet to be announced.

Software Related Courses

INTRO PROGRAMMING (Course NO. 40-153, 3 Credits, 150 Hours)

Instructor: Dr. M. Rivadeh

The purpose of this course is to familiarize students with the fundamentals of programming and the C language, to write effective code. Concepts like structured programming, software documentation, fundamental algorithms (i.e. sorting algorithms), basic software analysis tools, and pseudocodes are covered in this course.

Reference Books:

  1. P. Deitel and H. Deitel. C: How to Program. 8th Edition, Prentice-Hall, 2016.
  2. B. W. Kernighan and D. M. Ritchie. The C Programming Language. 2nd Edition, Prentice Hall, 1988.

ADVANCED PROGRAMMING (Course NO. 40-244, 3 Credits, 150 Hours)

Instructor: Dr. M. Mostafazadeh

In this course, object-oriented programming concepts and basic software engineering concepts such as clean code and best practices are taught with Java programming language conventions in mind. Advanced programming concepts including Java's inherent features, concurrency and parallel programming, and software quality concepts are also discussed in this course.

Reference Books:

  1. P. Deitel, H. Deitel. Java: How to Program. 11th Edition, Pearson Education, 2017.

  2. B. Eckel. Thinking in Java. 4th Edition, Prentice Hall, 2006.

  3. M. Fowler, K. Beck, J. Brant, W. Opdyke, D. Roberts. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.


WEB PROGRAMMING (Course NO. 40-419, 3 Credits, 150 Hours)

Instructor: B. Hatami

This course is a complete walkthrough of web technologies, fundamental network concepts and protocols, basic web security, and software engineering concepts and methodologies used in web application development. This course also offers a compact introduction to various front-end and backend programming tools and languages (Python,JS) and students are expected to study the state-of-the-art web development frameworks on their own to finish their course projects.


Compiler Design (Course NO. 40-414, 3 Credits, 150 Hours)

Instructor: A. Golzadeh-Kermani

This course studies the principles of programming languages with an emphasis on programming language implementation and compiler design. This includes various techniques for describing and defining a language, as well as techniques for implementing compilers. Course topics include: lexical analysis, syntactic analysis, recursive descent parsing, LR parsing, syntax-directed translation, type checking, code optimization.

Reference Books:

  1. A. Aho, M. Lam, R. Sethi, J. Ullman, Compilers: Principles, Techniques, and Tools, 2nd Edition, Addison Wesley.

PROGRAMMING LANGUAGES (Course NO. 40-364, 3 Credits, 150 Hours)

Instructor: Dr. S. Baghoolizadeh

The main objectives of this course are:

Reference Books:

  1. D. P. Friedman, M. Wand. Essentials of Programming Languages. 3rd Edition, MIT Press, 2008.
  2. S. Krishnamurthi. Programming Languages: Application and Interpretation. 2nd Edition, 2017.

SYSTEM ANALYSIS & DESIGN (Course NO. 40-418, 3 Credits, 150 Hours)

Instructor: Prof. A. Heydarnoori

Building computer systems requires identifying their complexities and dimensions and designing appropriate strategies before they can be implemented. In this course, students are introduced to software analysis and design skills such as requirements analysis, feasibility analysis, process modeling and analysis, architectural design, and UI/UX‌ design. In addition to these skills, this course covers computer systems production management and production planning skills such as agile methodologies, process automation, and project management concepts.

Reference Books:

  1. L.D. Bentley, K.C. Dittman, and J.L. Whitten. Systems analysis and design methods. Irwin/McGraw Hill, 2007.

  2. K.S. Rubin. Essential Scrum: A practical guide to the most popular Agile process. Addison-Wesley, 2012.


OPERATING SYSTEMS (Course NO. 40-424, 3 Credits, 150 Hours)

Instructor: Prof. R. Jalili

The purpose of this course is to acquaint undergraduate students with the principles of operating systems along with the fundamental concepts of linux kernel programming through an extensive set of assignments and course projects.

Reference Books:

  1. A. Silberschatz, P. B. Galvin, and G. Gagne. Operating System Concepts. 10th Edition, Wiley Publishing, 2018.
  2. T. Anderson and M. Dahlin. Operating Systems: Principles and Practice. 2nd Edition, Recursive Books, 2014.

COMPUTER NETWORKS (Course NO. 40-444, 3 Credits, 150 Hours)

Instructor: Prof. M. Jafari Siavoshani

This course aims to acquaint students with the basic concepts of computer networks and related ideas focusing on underlying network structures and protocols.

Reference Books:

  1. Larry L. Peterson and Bruce S. Davie. Computer Networks: A Systems Approach. 5th Edition, 2011.

DATA & NETWORK SECURITY (Currently Taking) (Course NO. 40-441, 3 Credits, 150 Hours)

Instructor: Dr. K. Mizanian

The purpose of this course is to acquaint students with the fundamental concepts of security, defense strategies, and attacks in the field of system, web, network, and data security.

Reference Books:

  1. Matt Bishop. Computer Security. Addison-Wesley, 2017.
  2. John Erickson. The Art of Exploitation 2nd Edition, No Starch Press, 2008.
  3. Robert C. Seacord. Secure Coding in C and C++. 2nd Edition, Pearson Education, 2005.

SOFTWARE ENGINEERING (Currently Taking) (Course NO. 40-474, 3 Credits, 150 Hours)

Instructor: Dr. M. Rivadeh

This course presents modern software engineering techniques and examines the software life-cycle, including software specification, design, implementation, testing and maintenance. The course gives an overview of methods and techniques used in agile software processes, contrasts agile approaches with traditional software development methods, and discuss the sweet spots of both classes of methodologies. Other non-agile commonly used approaches along with Process improvement initiatives such as the Capability Maturity Model (CMM) and Personal Software Process (PSP) will also be discussed in this course.

Reference Books:

  1. Software Engineering: A Practitioner's Approach By Roger S. Pressman and Bruce Maxim McGraw-Hill Higher International.

Algorithmic Courses

DATA STRUCT & ALGO (Course NO. 40-254, 3 Credits, 150 Hours)

Instructor: Dr. M. Safarnejad-Boroujeni

In this course, students are introduced to algorithm analysis methods, simple and advanced data structures, and some introductory algorithms. In this course the emphasis is on analyzing and proof of the correctness of algorithms. Student are expected to implement most of the discussed algorithms and data structures through an extensive list of assignments and the final course project to understand the syllabus thoroughly.

Reference Books:

  1. T. Cormen, C. Leiserson, R. Riverst, and C. Stein. Introduction to Algorithms. 3rd Edition, MIT Press, 2011.

DESIGN OF ALGORITHMS (Course NO. 40-354, 3 Credits, 150 Hours)

Instructor: Prof. A. Sharifi-Zarchi

This course aims to acquaint students with standard methods in designing efficient algorithms for various problems. This course emphasises on analyzing the algorithms' efficiency and proving their correctness. Also, algorithm theory topics such as computational complexity, induction, network flow, linear programming, and graph algorithms are of the discussed topics in this course. A brief introduction of approximate algorithms is proposed as well.

Reference Books:

  1. J. Kleinberg and E. Tardos. Algorithm Design. Addison Wesley, 2005.
  2. T. Cormen, C. Leiserson, R. Riverst, and C. Stein. Introduction to Algorithms. 3rd Edition, MIT Press, 2011.

Research Related Courses

TECHNICAL PRESENTATION (Course NO. 40-221, 2 Credits, 150 Hours)

Instructor: Prof. S. Kasaei

This course provides an introduction to scientific & technical presentation. Topics include: Guidelines on good technical presentations (written and oral), elimination of sporadic noise in technical presentations, writing technical documents with emphasis on content and style, accessing technical information, engineering a presentation, and writing other common technical documents.

Reference Books:

  1. The Craft of Scientific Writing, by Michael Alley, 3rd edition, Springle-Verlag, 1996.
  2. Writing for Science and Engineering, by H. Silyn Roberts, Butterworth-Heineman, 2002.
  3. The Manual of Scientific Style, by H. Rabinowitz and S. Vogel, Elsevier, San Diego, CA, 2009.
  4. Scientific Paper and Presentation, by M. Davis, Academic Press, San Diego, CA,1997.
  5. From Research to Manuscript: A Guide to Scientific Writing, by Michael Jay Katz, Springer, 2009.
  6. Writing Scientific Research Articles: Strategy and Steps, by M. Cargill and P. O’Connor, John Wiley & Sons Inc., UK, 2009.
  7. Scientific Writing: Easy When You Know How, by J. Peat, BMJ BOOKS, India, 2002.
  8. A Guide to Writing as an Engineer, by D. Beer and D. McMurrey, John Wiley & Sons Inc., 1997.
  9. The Student Skills Guide, by S. Drew and R. Bingham, Sampad Publisher, 1997.
  10. From Research to Printout: Creating Effective Technical Documents, by J.H. White, The American Society of Mechanical Engineers ASME Press,1997.
  11. Writing in the Technical Fields: A Step-by-Step Guide for Engineers, Scientists, and Technicians, by M.H. Markel, IEEE Press, 1994.
  12. Dictionary of Problem Words and Expresions, by H. Shaw, McGraw-Hill, 1987.
  13. Handbook of Technical Writing, by C.T. Brusaw, G.J. Alred, & W.E. Oliu, 6th edition, St. Martin’s Press, New York, 117.
  14. The non-desiner’s Design Book, by R. Williams, Peachpit Press, Berkley, CA, 1994.

CMPTR ENG INTERNSHIP (Course NO. 40-450, 0 Credits, 240+ Hours)

Computer Engineering Internship is an obligatory course during which students can adapt their learning to practical and executive procedures used in the country's industrial environments by spending +240 hours in approved industrial centers. Additionally, during the internship, students can plan to address potential weaknesses while recognizing their abilities and assessing their readiness to participate in industrial environments.


COMPUTER ENGINEERING PROJECT (Currently Taking) (Course NO. 40-760, 3 Credits, 240+ Hours)

The purpose of an undergraduate project is to analyze, design, and implement an actual project or to carry out a research project based on what has been learned during the undergraduate course and curate and defend the undergraduate thesis.

Data Science and AI Related Courses

DATABASE DESIGN (Course NO. 40-384, 3 Credits, 150 Hours)

Instructor: Dr. S. Dolatnezhad

In this course, students will be introduced to the concepts of semantic data modeling and database design. At the end of the semester, it is expected that students will be fully acquainted with the database design ideas, including principles of database design, semantic data modeling using ER and ERR methods, relational database design, SQL and NoSQL DBMS, and other core concepts.

Reference Books:

  1. R. Elmasri, S. Navathe. Fundamentals of Database Systems. 7th Edition, Pearson, 2015.

  2. A. Silberschatz, H. F. Korth, S. Sudarshan. Database System Concepts. 6th Edition, McGraw-Hill, 2010.

  3. C. J. Date. An Introduction to Database Systems 8th Edition, Pearson, 2003.


SIGNALS & SYSTEMS (Course NO. 40-242, 3 Credits, 150 Hours)

Instructor: Prof. M.T. Manzuri Shalmani

The purpose of this course is to acquaint students with modeling, description, and analysis of signals and systems in time and frequency domains from both theoretical and practical perspectives. Python exercises are appointed in addition to theoretical exercises for practical mastery of the concepts discussed in this course.

Reference Books:

  1. Alan V. Oppenheim, Alan V. Willsky, and S. Hamid Nawab. Signals and Systems. 2nd Edition, Prentice Hall, 1996.

COMPUTER SIMULATION (Course NO. 40-634, 3 Credits, 150 Hours)

Instructor: Prof. A. Hemmatyar

The purpose of this course is to acquaint students with various discrete and continuous event simulation methods and related topics.

Reference Books:

  1. Banks, Carson, Nelson, and Nicol. Discrete-Event System Simulation. 5th Edition, Prentice-Hall, 2010.

ARTIFICIAL INTELLIGENCE (Course NO. 40-417, 3 Credits, 150 Hours)

Instructor: Prof. M.H. Rohban

This course proposes the theoretical and practical aspects of artificial intelligence. With the aim to introduce techniques for making optimal or near-optimal decisions in various issues and environments, this course looks at concepts such as search, problem-solving, inference in uncertain environments, Bayesian networks and probabilistic reasoning, Markov decision processes, machine learning, deep learning and reinforcement learning.

Reference Books:

  1. Stuart Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. 3rd Edition, 2009.

ADV INFO RETRIEVAL (Course NO. 40-324, 3 Credits, 150 Hours)

Instructor: Prof. H. Beigy

This course introduces information retrieval systems. First, Boolean indexing operations and data retrieval models are discussed. After presenting the TF-IDF vector space model and techniques for speeding up document scoring and sorting, probabilistic information retrieval models are introduced, and the concepts of document classification and clustering are discussed. Next, web search engines are introduced, and essential components such as document graph analysis crawler and similar document recognition are examined. Finally, reference systems and advanced information retrieval concepts are briefly discussed.

Reference Books:

  1. C.D. Manning, P. Raghavan, and H. Schutze. Introduction to Information Retrieval. Cambridge University Press, 2008.

Image Processing (Graduate Course, Course NO. 40-933, 3 Credits, 190 Hours)

Instructor: Prof. S. Kasaei

This course provides an insight to image processing theory and techniques. Topics include: 2D signals & systems, 2D random processing, image perception & formation, color image processing, image sampling & quantization, image transforms, image enhancement, image filtering & restoration (Wiener filtering), image analysis (edge detection, region representation, scene matching, image segmentaion, image classification, morphological filtering, Hough transform), image data compression (predictive, Huffman, arithmetic coding), deep learning for image processing applications, and wavelets.

Reference Books:

  1. Fundamentals of Digital Image Processing, by Anil K. Jain, Prentice Hall, 1989.
  2. Computer Imaging: Digital Image Analysis and Processing, by Scott E. Umbaugh, CRC Press, 2005.
  3. A Study Guide for Digital Image Processing, by Mark J. T. Smith and Allen Docef, Scientific Publishers, 1999.
  4. Digital Image Processing, by Rafael C. Gonzalez & Richard E. Woods, Addison-Wesley, 2nd edition, 2002.
  5. Digital Image Processing using Matlab, by Rafael C. Gonzalez, Richard E. Woods, & Stevev L. Eddins, Prentice-Hall, 1st edition, 2003.
  6. Digital Image Processing, by William K. Pratt, John Wiley & Sons Inc., 3rd edition, 2001.
  7. Algorithms for Image Processing and Computer Vision, by J.R. Parker, John Wiley & Sons, 1996, ISBN:0471140562.
  8. Multidimensional Digital Signal Processing, by Dan E. Dudgeon & Russel M. Mersereau, Prentice-Hall, 1984.
  9. Two-Dimensional Signal & Image Processing, by J. S. Lim, Prentice-Hall, 1990.
  10. Two-Dimensional Imaging, by Ronald N. Bracewell, Prentice-Hall, 1995.
  11. Computer & Robot Vision, by Robert M. Haralick & Linda G. Shapiro, Addison-Wesley, 1993.
  12. Computer Vision, by Dana H. Ballard & Christopher M. Brown, Prentice-Hall, 1982.
  13. Handbook of Pattern Recognition & Image Processing, by Tzay Y. Young & King-Sun Fu, Academic Press, 1986.
  14. Video Processing & Communications, by Yao Wang, Jom Ostermann, & Ya-Oin Zhang. Prentice Hall, 1st edition, 2001, ISBN: 0130175471.
  15. Digital Video Processing, by A. Murat Tekalp, Prentice Hall, 1995, ISBN: 0-13-190075-7.
  16. Image and Video Compression for Multimedia Engineering: Fundamentals, Algorithms,and Standards, by Yun Q. Shi & Huifang Sun. CRC Press, 2000, ISBN: 0-8493-3491-8. (QA 76 .575 .S555 1999 C.2)
  17. A Wavelet Tour on Signal Processing, by Stephane Mallat, Academic Press, 2nd edition, 1999, ISBN: 0-12-466606-X.
  18. Wavelets and Subband Coding, by Martine Vetterli & Jelena Kovacevic, Prentice Hall, 1995, ISBN: 0-13-097080-8.
  19. Probability, Random Variables, & Random Signal Principles, by Peyton Z. Peebles, JR., McGraw-Hill, 3rd edition, 1993, ISBN:0-07-112782-8.
  20. Probability, Random Variables, & Stochastic Processes, by Athanasios Papoulis, McGraw-Hill, 1991 (QA 273 .P2 1991).