Introduction
              to Quantum Technology (¶q¤l¬ì§Þ·§½×) 2024
    
      
        
          
      
      Lecturer: ¦¿®¶·ç
      Teaching Assistant (TA): 
·¨
        ªN®¦
      Time: (11/22¡B11/29)¶g¤
        13:00~15:50 
        Place: ¥ú¹q¤j¼Ó IL-116 
      
      Goal: To guide students to understand the basic principles of
        quantum computing through programming. (±a»â¾Ç¥Í³z¹Lµ{¦¡³]p¤F¸Ñ¶q¤lpºâ°ò¥»ì²z)
      
      
      Scoring¡G
      
      
        - exercise (programming) (40%)
 
- project (programming) (45%)
- questionnaire (15%)
 
Textbooks:
      
      Textbook Source Code:
      
      Reference Books:
        - ±i¤¸µ¾, ¶q¤l¹q¸£»P¶q¤lpºâ, ùÖ®p¸ê°T, 2020. 
- ³¯«Ø§»(Ķ), ¶q¤lpºâ¹ê¾Ô, ùÖ®p¸ê°T, 2020. 
 
- ²ø¥Ã¸Î(Ķ), ¹Ï¸Ñ¶q¤l¹q¸£¤Jªù, ÁyÃÐ, 2020.
- ªL§ÓÂEµ¥, ¶q¤l¹q¸£À³¥Î»P¥@¬É¯ÅÄvÁɹê°È, 2021.
- Jack D. Hidary, Quantum Computing: An Applied Approach (2nd
          Ed), 2021.
- Chris Bernhardt, Quantum Computing for Everyone, 2020.
- Nihal Mehta, Quantum Computing -- Program Next-Gen Computers
          for Hard, Real-World Applications, 2020.
- Michael A. Nielsen, and Isaac L. Chuang, Quantum Computation
          and Quantum Information, 2002.
 
Syllabus: 
      
      
      
        - (11/22) (11/29) Quantum
            programming for the first time (Introduction to IBM Q
            quantum computer and D-Wave quantum computer) (QBookCh1.zip)
 (QBookCh2.zip)(QBookCh3.zip)(QBookCh4.zip)(QBookCh5.zip)(QBookCh6.zip)(QBookCh7.zip)
 
- Use Qiskit 0.XX to be
            compatible with my source
 !pip install qiskit[visualization]==0.43.0  #This is an
            old but stable version that is compatible with my codes
 !pip install qiskit.aer
 
- Migrate from Qiskit 0.XX to
            Qiskit 1.XX
 1. !pip install qiskit.aer  =>  !pip
          install qiskit-aer
 2. from qiskit.providers.aer import AerSimulator => from
          qiskit_aer import AerSimulator
 3. 3. from qiskit import execute => from qiskit import
          transpile
 4. The qiskit.execute function is not available in Qiskit
          1.XX. This function served as a high-level wrapper around the
          transpile and run functions in Qiskit. Instead of
          qiskit.execute, use the transpile function followed by
          backend.run().
 # Legacy path
 from qiskit import execute
 job = execute(circuit, backend)
 # New path
 from qiskit import transpile
 new_circuit = transpile(circuit, backend)
 job = backend.run(new_circuit)
- #Installing
            the following two packages for running quantum circuit with
            simulator in Qiskit 1.xx
 !pip install qiskit[visualization]==1.2 #Install Qiskit 1.2
            with visualization tools
 !pip install qiskit-aer #install qiskit.aer for version
            before 1.X
- from qiskit import
            transpile #for qiskit 1.0 or later
 from qiskit_aer import AerSimulator #for qiskit 1.0 or later
 from qiskit.visualization import plot_histogram
 backend = AerSimulator()
 transpiled_circuit = transpile(qc, backend=backend)
 job = backend.run(transpiled_circuit,shots = 1000)
 result = job.result()
 counts = result.get_counts()
 total_shots = sum(counts.values())
 prob = {key: value / total_shots for key, value in
            counts.items()}
 plot_histogram(prob)
 
- Exercise:
              (Due 11/28 23:59) 
 Write a program in the form
                            of ipynb to generate the following
                            Bell-state quantum circuit and its
                            associated measurement results.
  
- Project:
            (Due 12/4 23:59) (ú¥æipynbÀÉ®×)
 °ò©ó¤U¦C±`¼Æ - ¥¿Å¨ç¼Æ§PÂ_°ÝÃDªº¶Â½c¨ç¼Æ
              f¡A³]p¶q¤lµ{¦¡«Øºc¨ÃÅã¥Ü¹ïÀ³ªºDeutsch-Jozsa ºtºâªk¶q¤l½u¸ô¡A¨Ã¦b¶q¤l¹q¸£¼ÒÀÀ¾¹¤W°õ¦æ¶q¤l½u¸ô
              1000 ¦¸¡AÅã¥Ü¨ä¶q¤l¦ì¤¸´ú¶qµ²ªG¦UºØ¤£¦P¶q¤lºA³Q´ú¶q¥Xªº¦¸¼Æ¤Î¨ä¹ïÀ³ªºª½¤è¹Ï¡A³Ì«á¨Ã»¡©ú¬°¦ó´ú¶qµ²ªG¥Nªí¶Â½c¨ç¼Æ
              f ¬°¥¿Å¨ç¼Æ¡C
 
 𝑓: {0, 1}3¡÷ {0, 1}
 
 𝑦 = 𝑓( 𝑥2𝑥1𝑥0
              ) = 1, if 𝑥1
              = 1; otherwise, 𝑦 = 𝑓( 𝑥2𝑥1𝑥0
                  ) = 0
 
 
 
    
    
    
      
        
    
    