Author :
Amir Mohammad Karimi Mamaghan
- Artificial Intelligence
- Deep Learning with Applications
- Calculus I
- Calculus II
- Differential Equations
- Engineering Probability and Statistics
- Engineering Mathematics
- Signals and Systems
- Discrete Mathematics
- Data Structures
- Algorithm Design I
- Formal Languages and Automata Theory
- Advanced Programming
- Programming Languages and Compiler Design
- Operating Systems
- Database Design
- Computer Networks
- Internet Engineering
- Software Engineering
- Introduction to Computing Systems and Programming
- Introduction to Software Testing
- Computer Networks Security
- Object Oriented Systems Design
- Computer Aided Digital System Design
- Logic Circuits
- Electrical Circuits
- Computer Architecture
Textbook(s): "Artificial Intelligence, A Modern Approach" 3rd Edition, Stuart Russell and Peter Norvig, Prentice Hall
Topics: Intelligent agents | Problem solving, complexity metrics | Uninformed search (BFS, DFS, Uniform cost, depth-limited, iterative deepening) | Informed search (Greedy, A*) | Other search (simulated annealing, genetic algorithms) | Game playing (minimax, alpha-beta pruning, nondeterministic games) | Knowledge-based agents | Propositional logic, syntax, semantics, inference, limitations | First-order logic (including inference, unification, Goedel's theorem, generalized modus ponens, resolution, forward chaining, backward chaining, situation calculus) | Building a knowledge base (ontologies, translation between English and FOL, difficult cases like events, substances, composite objects) | Logical reasoning systems (Implementing indexing, retrieval and unification. Theorem provers. Frame systems and semantic networks) | Planning (including STRIPS) | Uncertainty | Decision Trees | Fuzzy logic | Neural networks (including Hopfield, perceptrons, backpropagation)
Textbook(s): Ian Goodfellow, Yoshua Bengio, and Aaron Courville. 2016. Deep Learning. The MIT Press | Dong Yu and Li Deng. 2014. Automatic Speech Recognition: A Deep Learning Approach. Springer Publishing Company, Incorporated | Alex Graves. 2012. Supervised Sequence Labelling with Recurrent Neural Networks. Springer, Berlin, Heidelberg.
Topics: Neural Networks (Basic Structures for Classification, Training NNs) | NNs as Conditional Density Estimators | Regression (RBF Networks, Mixture Density Networks) | Convolutional Neural Networks (CNN Architectures) | Some Visual Recognition Applications | Recurrent Neural Networks (Architectures, Applications) | Speech Recognition (CTC-Loss, Attention Mechanism) | Generative Models for Speech and Image Synthesis (Autoregressive Models, Generative Adversarial Networks, Variational Auto-encoders)
Textbook(s): Calculus, Thomas | Single Variable Calculus, James Stewart
Topics: Single variable calculus | Limit | Integral | Taylor series | Improper Integral andseries
Textbook(s): Calculus, Thomas. Calculus, Vol II, Apostol
Topics: Single variable calculus | Multi-variable calculus | Curl | Divergent | Gradient |Introduction to linear algebra | Linear independence | Orthogonality | Multidimensional Integrals | Matrix | Eigenvalues | Eigenvectors
Textbook(s): Differential Equations, Dr. Moazzami | Elementary Differential Equationswith Boundary Value Problems, Boyce, DiPrima
Topics: First order ODEs (Ordinary Differential Equation) | Second order ODEs | Higherorder equations | Systems of differential equations | Partial differential equations | Non-linear equations | Laplace Transform
Textbook(s): Probability and Statistics, Papoulis | A First Course in Probability,Sheldon Ross , 8th Edition
Topics: Set theory | Conditional probability | Repeated trials | Random variables | Conditional distributions | Regression | Sequence of random variables | Asymptotic theorems | Central limits theorem | CI and Hypothesis Testing
Textbook(s): Engineering Mathematics, Dr. J. Rashed Mohassel | Advanced Engineering Mathematics, C. Ray Wylie and Louis C. Barrett | Advanced Engineering Mathematics, Erwing Kreyszig, 10th Edition | Complex Variables and Applications, James Ward Brown and Ruel V. Churchill, 8th Edition | Elementary Applied Partial Differential Equations With Fourier Series And Boundary Value Problems, Richard Haberman, 2nd Edition | Elementary Applied Partial Differential Equations With Fourier Series And Boundary Value Problems, Gerald B. Folland | Fourier Series and Boundary Value Problems, James Ward Brown and Ruel V. Churchill, 8th Edition
Topics: Fourier series | Fourier transform | Wave equations | Heat equation | Partialdifferential equations | Laplace Transform | Complex calculus | Integral in complex plane | Residue theorem
Textbook(s): Signals and systems, Oppenheim
Topics: System properties | Properties of LTI systems | Fourier series | Fouriertransform Laplace transform | Z transform | Sampling | Decimation | Amplitude modulation
Textbook(s): Discrete Mathematics and Its Applications by Kenneth H. Rosen
Topics: Fundamental of Logic and Proofs | Sets, Functions, Sequences and Sums | The Fundamentals: Invariance Principles, Number Theory | Induction and Recursion | Counting | Advanced Counting Techniques (recurrence relations, generating functions, inclusion-exclusion) | Relations | Graph (terminology, representations, isomorphism and homomorphism, connectivity, Euler and Hamiltonian paths, Dijkstra, planar graphs, graph coloring) | Trees (properties, spanning trees, BFS, DFS, Kruskal and Prim algorithms)
Textbook(s): Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein
Topics: Complexity | Recursion Complexity | Recursive Algorithm | ADT | Arrays, Stack |Arrays, Stack | Expressions (using Stack) | Queue and Linked List | Tree (Expression Tree, Huffman Tree, Heap Tree, Binary Search Tree, AVL, Red-Black Tree) | Sorting | Hashing | Graph (BFS, DFS, DAG, MST, Shortest Path)
Textbook(s): Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein |Design and Analysis of Computer Algorithms by David M. Mount, University of Maryland
Topics: Intro to Algorithm Design & Math Background | Intro to Graphs | Greedy Algorithms |Divide and Conquer | Dynamic Programming | Network Flows | Computational Geometry | Linear Programming | NP-Completeness
Textbook(s): Peter Linz, "An Introduction to Formal Languages and Automata", 5thEdition, 2012. | John E. Hopcroft, Rajeev Motwani, Jeffrey Ullman, "Introduction to Automata Theory, Languages, and Computation", 3rd Edition, 2006. | Micheal Sipser, "Introduction to the Theory of Computation", 3rd Edition, 2013.
Topics: Introduction to the Theory of Computation, Finite Automata | RegularLanguages and Regular Grammars | Properties of Regular Languages | Context-Free Languages | Simplification of Context-Free Grammars and Normal Forms | Pushdown Automata | Properties of Context-Free Languages | Turing Machines | Limits of Algorithmic Computation | Models of Computation | Computational Complexity
Textbook(s): P.J. Deitel and H.M. Deitel, Java: How to program. 10th ed., Prentice Hall Inc., 2016 | Programming Principles and Prictice Using C++, Bjarne Stroustrup, Second Edition
Topics: Overview of the basics of programming | Top-down design | Basic concepts of object-oriented programming: real-world modeling | Basic object-oriented programming structures: object, class, method, constructor | Inheritance and polymorphism | Memory Management - An Introduction to Dynamic Data Structures | Generic Programming | Handling Errors and Exceptions | Input / Output libraries | Standard data-structure libraries | Create graphical user interface | Text processing and threads | Introduction to concurrent programming | Test and debug the program
Textbook(s): Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman , Compilers: Principles, Techniques, and Tools, Second Edition Boston: Addison-Wesley, 2007 | Modern Compiler Implementation in Java, Secone Edition, Andrew W. Appel and Jens Plaberg
Topics: Introduction to different language translators | An abstract introduction to compiler components and their responsibilities | Scanner and its implementation | Parser and its implementation: grammar definition, grammar classification, derivation and parsing concept, non-predictive recursive descent parser, predictive parsers: LL(K), SRL(K), CRL(K), LALR(K), error handling of LL and LR parsers: panic mode, local and global approaches, power of parsers | Code analysis techniques exploited during parsing: syntax directed definitions (SDD) and syntax directed schema (SDS) | Semantics analyzer: the concepts and scope, type checking and approaches | Intermediate code generation: expressions, assignment, control flow instruction | Management of run-time environment: stack and heap, code generation for procedure definition and calls, arrangement of objects in memory, dynamic lookup in object-oriented languages | Intermediate and machine code optimization: control flow analysis, loop and block optimization, peephole optimization
Textbook(s): A. Silberschatz, P. B. Galvin, and G. Gagne, "Operating System Concepts", 10th Ed., 2018.
Topics: Introduction (Basic terminologies and concepts as well as different computer systems architectures and software systems, Interrupts, Dual-mode, …) | Operating system structures (Different architectures for operating systems, system calls, APIs, virtualization, cloud computing) | Processes (PCB, context switch, short-term, medium-term and long-term schedulers, process creation and communication) | Threads (Multithreading models, thread management) | Process synchronization (Critical sections and respective solutions, semaphores, monitors, classic synchronization problems) | CPU scheduling (Preemptive and non-preemptive scheduling, CPU scheduling algorithms, SMP, SMT, multicore scheduling, real-time scheduling) | Deadlock handling (Necessary conditions for deadlock, resource-allocation graph, deadlock prevention, avoidance, detection, and recovery) | Main memory management (Binding, physical and logical addresses, fragmentation, paging, TLB, shared pages, segmentation) | Virtual memory management (Demand paging, page fault handling, copy-on-write, page replacement policies, Belady's anomaly, frame allocation, thrashing, memory-mapped I/O and files, kernel memory management) | Storage management (File system structure, virtual file system, storage allocation methods) | I/O management (Interrupts, I/O subsystem, I/O management and performance aspects)
Textbook(s): R. Ramakrishnan and J. Gehrke, Database Management Systems, McGraw-Hill 3rd Edition, 2003.
Topics : Foundations (The relational model, Relational Algebra and Relational Calculus, SQL: Queries, Constraints, Triggers, Schema Refinement and Normal Forms) | Storage and Indexing (Storing Data: Disks and Files, Tree-Structured Indexing, Hash-Based Indexing) | Query Evaluation (External Sorting, Evaluating Relational Operators, A Typical Relational Query Optimizer) | Transaction Management (Overview of Transaction Management)
Textbook(s): James F. Kurose and Keith W. Ross, Computer Networking: A Top-Down Approach, 7th edition, Pearson, 2017 | Larry L. Peterson and Bruce S. Davie, Computer Networks, Fifth Edition: A Systems Approach, 5th edition, Morgan Kaufmann Publishers Inc , 2011
Topics : Internet protocols and components in the edge and the core of the network | Performance concepts such as queue, delay, loss and throughput | Layered architecture | Application Layer (Web and HTTP protocol, Electronic Mail and SMTP protocol, Internet's Directory Service and DNS protocol, P2P applications and P2P file distribution, Video streaming and DASH protocol, Content distribution and Cache, Socket programming) | Transport Layer (Multiplexing and de-multiplexing, UDP protocol, Principles of reliable transfer and GBN and SR protocols, TCP protocol, round-trip time estimation and flow control, Principles of congestion control) | Network Layer: Data Plane (Data and control planes, Router architecture, Addressing, IPv4 and IPv6, Network address translation and NAT protocol, Generalized forwarding (SDN) and OpenFlow protocol) | Network Layer: Control Plane (LS and DV routing algorithms, Intra-AS routing and OSPF protocol, Inter-AS routing and BGP protocol, SDN control plane, ICMP and SNMP protocols) | Data Link Layer and LANs (The data link layer services, Error-Detection and –Correction techniques, Multiple access protocols, Local area networks, Ethernet, ARP protocol and VLAN protocol, Link virtualization and MPLS protocol, Data center networking)
Textbook(s): M. Fowler, Patterns of Enterprise Application Architecture. Addison-Wesley, 2003 | D.C. Ashmore, The Java EE Architect's Handbook. 2nd ed., DVT Press,2014 | M. Harwood, M. Goncalves, and M. Pemble, Security Strategies in Web Applications and Social Networking. Jones & Bartlett Learning, 2010.
Topics: An Introduction to Web- HTTP protocol - Web page design | Create simple web applications (based on Servlet, PHP or .NET) | 3-tier architectural pattern | Connection to Databases - Mapping Objects to Relations | Domain logic organization | Frameworks and layout patterns on the web | Manage Sessions | Concurrency control on web systems | Distributed web systems | Clustering and cloud computing | Web application's security | Create Authenticated Web Sites | Performance of Web-based systems | Web services | Semantic web, social networks | User interface design on the web | Mobile programming on the web
Textbook(s): Roger S. Pressman and Bruce R. Maxim, Software Engineering: A Practitioner's Approach. 8th ed., McGrawHill, 2014.
Topics: An Introduction to Software Engineering | Software Development Processes and Models – Iterative Development | An overview of software analysis | Software design: design principles, patterns, refactoring | Software Architecture: Design, Documentation and Evaluation | Software testing | Software Quality Managemen | Cost and time estimation | Project Management - Human Resources Management - Risk Management | Life Cycle Management - Change Management – Configuration Management | Agile methods
Textbook(s): P. Ammann, J. Offutt, Introduction Software Testing, Cambridge University Press,1st ed., 2008 | G. Meszoros, xUnit Test Patterns, Addison-Wesley, 1st ed., 2007
Topics: Introduction, Why Testing | Model Driven Test Design, Test Automation | Coverage Criteria | Graph Coverage | Logic Coverage | Input Partitioning | Syntax Based Testing | Principles of Test Automation | Fixture Management and Result Verification | Test Doubles and Testing with Databases | Organizing Our Test & A Road Map to Effective Test Automation | Code Smells | Behavior & Project Smells | Design for Testability Patterns | Testing for Web Applications | Performance Test | High Performance Applications Tuning | Property Based Testing: Quick Check (Movie) | Model Based Testing | Reviewing Experiences from the SE Industry | Reviewing Experiences from the SE Industry | The Role of Software Testing in Agile Methods
Textbook(s): "Network Security Essentials: Applications and Standards", William Stallings, 6th ed., Pearson, 2017
Topics: Fundamentals of Cryptography | Fundamentals of Computer Networks | Key Management | Authentication | Internet Security (Web, Firewall, Email, IDS, VPN / IPSec, DNS Security) | Wireless Security | Access Control | Malwares and Attacks
Textbook(s): J. Arlow and I. Neustadt, UML 2 and the Unified Process, 2nd ed., Addison-Wesley, 2005 | R. Martin, Agile Principles, Patterns, and Practices in C#, Prentice Hall, 2006 | E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1995 | E. Evans, Domain Driven Design, Addison-Wesley, 2003.
Topics: Introduction and Principles of Object-Oriented Design | Introducing the Evolutionary History of Object Oriented Analysis and Design | Introduction to the Unified Modeling Language (UML) | Design patterns | Domain Driven Design
Textbook(s): P. Chu, FPGA Prototyping By VHDL Examples- Xilinx Spartan-3version, John Wiley & Sons Pubs., 2008. | Clive Maxfields, The Design Warrior's Guide to FPGAs, Elsevier, 2004. | Z. Navabi, Embedded Core Design with FPGAs, Mc Graw Hill, 2006.
Topics: Hardware description and synthesis using VHDL (Basic concepts of VHDL (language structure, data types, timing), Abstraction layers (structural, dataflow, behavioral), Combinational logic and Sequential logic modeling in VHDL, State machine design (FSM,ASM chart) and implementation | Synthesis (VHDL coding for synthesis, Reviewing Xilinx ISE synthesis rules and constraints, Synthesis control by user-defined constraints, Introduction to low-power design) | Test and verification (Introduction to verification methods, Introduction to test methods, Random generation, Basic testbench concepts and code coverage) | Programmable logic devices (SPLDs, CPLDs and FPGAs, Basic FPGA architectures, Xilinx Spartan 3 Architecture, Modern (series 7) Xilinx FPGA architecture) | Design reuse and IP-cores (IP-Core and SoC design concepts, System On a Programmable Chip (SoPC), Design example: implementing a mouse controller IPcore on Spartan-3 FPGAs)
Textbook(s): Stephen Brown and Zvonko Vranesic, Fundamentals of Digital Logic with Verilog Design, 3rd Edition, McGraw-Hill, 2014
Topics: Boolean algebra | Logic gates and networks | Verilog/SystemVerilog HDL (hardware description language) | Combinational logic circuit synthesis and optimization | Number representation and arithmetic circuits | CMOS technology and programmable logic devices | Flip-flops, registers, and counters | Finite state machines | Synchronous sequential circuits | Digital system design | Asynchronous sequential circuits | Testing and testability of logic circuits | RTL Design | Intra-RTL communication | More on datapath / controller timing
Textbook(s): Electric Circuits, Nilsson and Riedel, 9th edition, 2011
Topics: Definitions and units of basic electrical quantities | Ohm's law and Kirchhoff's laws and series and parallel dc circuit analysis | Dependent sources, input and output resistances, and operational amplifiers | Mesh, loop and nodal analyses of general dc resistive and op-amp circuits | DC network theorems and bridge circuits | First-order transient analysis of RL and RC circuits | Sinusoids, phasors, phasor circuits, impedance and admittance | Nodal, mesh and loop analyses of general ac circuits | Network theorems applied to ac circuits
Textbook(s): D. A. Patterson, and J. L. Hennessy, "Computer Organization and Design: The Hardware/Software Interface", 4th Edition, Morgan Kaufmann Publishers, 2014
Topics: Computer Arithmetic | Instruction Set Architecture (ISA) | MIPS Single-Cycle/Multi-Cycle Implementation | Performance Evaluation | MIPS Pipeline Implementation | Memory Hierarchy (including Cache, Main Memory and Secondary Storage) | Input / Output System | Multicore Processors Architecture
Textbook(s): Yale Patt and Sanjay Patel, Introduction to Computing Systems From bits and gates to C and beyond-McGraw-Hill, 2005 | The C Programming Language, Brian W. Kernighan and Dennis M. Ritchie, Second Edition | C How to Programm, P. J. Deitel, H. Deitel, Pearson 2015
Topics: Base Convertion | Binary Operation | Floating Point | Flow Chart | C Compiler | Introduction to C Proggramming Language | Top-Down Design | Pointers | Debugging | Digital Logic Structure | Data Structure | The Von Neuman Model | Assembly Language