Introduction to Computer Science vs. Computer Fundamentals & Programming



210036 計算機概論 210146 基礎程式設計
Time & Place
Wednesday 08:10-11:00, (H-103 [94334493]) Friday 08:10-11:00, (TC-208 [94334492])
TAs:
  • 王琮閔 s105321521@ncnu.edu.tw
  • 江炯廷 s105321506@ncnu.edu.tw
  • 吳柏逸 s104321017@ncnu.edu.tw
  • 張雅琦 s104321033@ncnu.edu.tw
Students enrolled in this class
64
39
Python Textbook Learning Pythonqr_code.png

Programming Environment

Tips for Python 3

  1. Why doesn't the keypad work as expected? It keeps sending an escape sequence.
    Ans: These confusing things happen when PuTTY is in "application keypad mode".  Please follow the following steps:
    1. Bring up PuTTY Configuration.
    2. In the left pane, select Terminal - Features.
    3. Put a check mark next to "Disable application keypad mode".
  2. In case your Python program crashes after you call curses.noecho(), then under the Unix shell you cannot see the characters you type, although the shell still executes your commands.  To enable echo under the shell, type "stty echo" (although you cannot see it) and press Enter.
  3. In the nano editor, you may press Ctrl-W (Where Is) to search a string, or press Ctrl-C to show the current position (row/column) of the cursor.

FAQ

  1. Q: Difference between Python 2 and Python 3.
    A: For example,
    1. print vs. print()
    2. 5/2
    3. long int
    4. Unicode
    5. urllib2
    6. need to invoke random.seed()
  2. How could I connect to the STU.ipv6.club.tw server if I am not inside the campus?
  3. Q: Why can't I type Chinese characters in my editor?
    A: If you are using the "ee" editor, its support for Chinese is incomplete at this moment (until somebody fixs it up). Please try to use "nano" or "vim".

Code Writing

  1. Draw a flowchart or write a pseudo code to illustrate the basic idea
  2. Prepare a test case so that you will verify when your code is complete.
  3. Keyin your code and check it is correct or not.
  4. If the outcome differs from what you expect, ask yourself why.

How will your programming assignments be evaluated

課程評量方式

Syllabus


Wednesday
Quiz
Hands-On Exercise
Extended Reading
More Exercises on Friday
Week 1 9/14
Chapter 1: Computers and Programs


  1. Create Mail Filters
  2. Subscribe to the CS101 Mailing List
  3. Writing Python Programs on a FreeBSD server.
  4. Editors on the server: nano, ee, vi




9/16 Mid-Autumn Festival
Text-mode games: TETRIS, 2048, Typing Test

Week 2 9/21 
Chapter 2: Writing Simple Programs
Chapter 3: Computing with Numbers
[Video] Data Types in Python
Quiz 1 Exercise:
9/23 Mozart: The Marriage of Figaro - Overturevideo
Week 3 9/28 Chapter 5: Sequences: Strings, Lists, and Files

Quiz 2 Exercises:
  1. Reverse a String
  2. Weekdays
  3. Isosceles Triangle
  4. Caesar Cipher
  5. 3Q
  6. Dice Rolling
9/30 Rossini : The Barber Of Seville - Overturevideo

Week 4 10/5
Chapter 5: String Formatting and FilesPDF
Quiz 3 Exercises:
  1. Chinese Numbers
  2. 9x9 Multiplication Table (3)
  3. File Processing
  4. File Reading
  5. Adjusting Grades (2)
10/7
Beethoven: Egmont - Overturevideo

  1. Score Distribution
  2. 9x9 Multiplication Table (2)
  3. Sin() and cos()
  4. Sawteeth
  5. Sine wave

Week 5 10/12
Midterm Exam (1)
Quiz 4 Exercise
10/14
Tchaikovsky : The Nutcracker Suite - Russian Dancevideo
    Midterm Exam (1)
    Week 6 10/19
    Chapter 6: Defining Functions

    Quiz 5 Exercise
    1. London Bridge
    2. Cubic Root
    3. Summing a List

      10/21
      Mozart: The Magic Flute - Overturevideo
        Week 7 10/26
        Chapter 7: Decision Structures
        1. Flow Chart
        2. Easy flow chart creation with Dia
        3. How to Create a Flow Chart in Microsoft Word
        4. Free Online Drawing



        Exercise
        1. Leap Year (Ex7-11)
        2. Day Number (Ex7-13)
        3. What day is the first day of a month
        4. Pythagorean triangle
        5. Adjusting Grades (3)
        10/28
        Ravel : Bolero (6'58")video
          Week 8 11/2
          Chapter 8: Loop Structures and Booleans

          Exercise
          1. cal
          2. argv
          3. Factorization
          4. Syracuse Sequence (Ex8-4)
          5. Cycle Length of Syracuse Sequence
          6. Nested Loop
          7. Truth Table

          11/4
          Rossini - La scala di seta (絹 絲樓梯)- Overturevideo

          Week 9 11/9
          Midterm Exam (2)
          Quiz 6 Exercise:
          1. [YouTube] 《雲端上的寶藏》─(60秒短片)
          2. [YouTube] 《雲端上的寶藏》─(25分鐘版)
          3. [YouTube] 《雲端上的寶藏》─(90分鐘版)
          4. [URL] 典藏臺灣


          11/11

          Midterm Exam (2)
          Week 10 11/16
          Terminal Handling - curses (PPT)
          Quiz 7 Exercises:
          1. Running Q
          2. HJKL
          3. Sokoban (1)


          11/18 Rossini - William Tell - Overturevideo

          Week 11 11/23
          Chapter 9: Simulation and Design


          Exercises: 11/25
          Bizet: Carmen - Overturevideo 

          Week 12 11/30
          Chapter 10: Defining Classes

          Exercises:
          1. Solid Sphere
          2. Playing Cards
          3. Moment on a Timetable

          12/2
          Johann Strauss II : Die Fledermaus (蝙蝠) - Overturevideo
          1. Rational Numbers
          2. Train Arrival Time


          Week 13 12/7
          Chapter 11: Data Collections

          Exercises:

          1. Sokoban (3)
          2. Table Lookup
          3. Define a List of Points
          4. Fruit Amount
          12/9 Tchaikovsky : Eugene Onegin - Overture video
          1. Sorting a list
          2. Random Seat
          3. Random Seat (2)
          4. Random Seat (3)
          5. Random Seat (4)
          6. Train Arrival Time (2)



          Week 14 12/14 Midterm Exam (3)

          Quiz 8 Exercises: Sokoban (4)

          12/16 Offenbach : Orpheus in the Underworld - Overturevideo

            Week 15 12/21
            Chapter 12: Object-Oriented Design
            Inheritance
            Operator Overloading
            Quiz 9 Exercises:
            1. Sokoban (5)
            2. Sokoban (6)



            大前研一: 2020年,世 界經濟大預測! video
            印 度 —— 兩條走廊改變世界video
            大前研一:台灣要打造成 「生活者大國」 video
            Why Programmers Working at Night?
            Insecam Web site should terrify those who use a default webcam password
            12/23
            Dvorak : New World Symphony - 4th Movement (9'59")video
            1. Show Name (1)
            2. Show Name (2)
            3. Sort Name (1)
            4. Sort Name(2)

            Week 16 12/28
            Chapter 13:  Algorithm Design and Recursion
            1. Socket API
            2. Socket Programming HOWTO
            3. The urllib Package

            Quiz 10
            Exercises:
            Three Key Monte
            Selection Sort
            Merge Sort
            [YouTube] The Story of Electronicsvideo
            [TED] 先別急著吃棉花糖video
            MIT Energy Scavenger Harvests Power from Light, Vibrations, and Heat
            SECO Smart Home solution using EnOcean's Energy Harvesting Wireless Technology (Chinese)video
            12/30
            Beethoven : Fidelio - Overturevideo
            Week 17 1/4 Final Exam
            Quiz 11


            人生的最後一堂課,該 說什麼?video
            Randy Pausch Last Lecture: Achieving Your Childhood Dreams (Chinese subtitle)
            Thirty is not the new Twentyvideo
            Steve Jobs在史丹佛大學畢業典禮演講 - 三個故事video

            Week 18  





            Lab

            1. Kids Coding
            2. Google Code University
            3. Flowchart Drawing:
            4. Dia
            5. Dia for Windows
            6. An Introduction to Programming in Go
            7. Build Web Application with Golang
            8. Sikuli Script - automate and test GUI.
            9. Selenium - Web Browser Automation
            10. Sample Code for Chapter 4

            Exercise

            1. What day is January 1?
              Ref: UVA 12019
            2. Calendar
            3. 190 - Circle Through Three Points
            4. 9x9 Multiplication Table
            5. Christmas Tree
            6. Prime Number
            7. Factorization
            8. Greatest Common Divisor
            9. Sorting
            10. Matrix Multiplication
            11. Card Shuffling
            12. Develop a nano editor with Python + curses
            13. 8x16 font
            14. 暗棋:將士象車馬包卒
            15. 蓊鬱錦簇科技二館 - 有蓊鬱的樹木圍繞著科技二館,使建築物融入大自然的美景中,更具生命力。
            16. 光鮮亮麗的山中城堡 - 雲群波濤洶湧、山脈層巒疊嶂及蓊鬱樹木圍繞,暨南大學校園無疑是美麗的歐式莊園。
            17. CPE一星題目及ITSA歷屆考題
            18. Python Card Game

            Reading

            1. PEP 8 -- Style Guide for Python Code
            2. Intel Labs Creating Robots of the Future
            3. 10 Ways Not to Be a Jerk Online
            4. 15 Windows Utilities You Can't Live Without
            5. IBM at 100: From typewriters to the cloud
            6. Future of the car (智慧汽車, 51 min) 447.18 F996
            7. Standford CS101
            8. Google's Fact-Checking Bots Build Vast Knowledge Bank
            9. Zero Robotics Competition
            10. A4WP's wireless charging spec triples available power for laptops, tablets
            11. How WiGig Works
            12. Isaac Asimov: How Do People Get New Ideas?
            13. How to create a bootable Windows USB drive
            14. Gartner's Top 10 Predictions For IT Organizations In 2017 And Beyond
            15. 千人狂歡 最受歡迎的程式課
            16. Python Tutorial on Guru99
            17. Python Is Easy.com