教學大綱 Syllabus

科目名稱:計算機程式設計

Course Name: Computer Programming

修別:選

Type of Credit: Elective

3.0

學分數

Credit(s)

30

預收人數

Number of Students

課程資料Course Details

課程簡介Course Description

本課程是以 Python 語言為主介紹程式設計的基礎知識,主旨在於培養學生對計算機運算與程式設計之基本瞭解。

核心能力分析圖 Core Competence Analysis Chart

能力項目說明


    課程目標與學習成效Course Objectives & Learning Outcomes

    Students are introduced to Python and the basics of programming in the context of such computational concepts and techniques as exhaustive enumeration, bisection search, and efficient approximation algorithms. Although it covers such traditional topics as computational complexity and simple algorithms, the book focuses on a wide range of topics not found in most introductory texts, including information visualization, simulations to model randomness, computational techniques to understand data, and statistical techniques that inform (and misinform) as well as two related but relatively advanced topics: optimization problems and dynamic programming. This course offers expanded material on statistics and machine learning and new chapters on Frequentist and Bayesian statistics.

    每周課程進度與作業要求 Course Schedule & Requirements

    週次Week 課程主題Course Theme 課程內容與指定閱讀Content and Reading Assignment 教學活動與作業Activity and Homework 學習投入時數Estimated time devoted to coursework per week
    課堂講授Lecture Hours 課程前後Preparation Time

    1

    Course Introduction
    Slides
    Assignments

    3.0

    4.5

    2

    Developement Environment
    Slides
    Assignments

    3.0

    4.5

    3

    Basics of Python 
    Slides
    Assignments

    3.0

    4.5

    4

    Iterations
    Slides
    Assignments

    3.0

    4.5

    5

    Simple Numerical Programs
    Slides
    Assignments

    3.0

    4.5

    6

    Functions, Scoping, and Abstraction
    Slides
    Assignments

    3.0

    4.5

    7

    Recursion, Global Variables, Modules, Files (I)
    Slides
    Assignments

    3.0

    4.5

    8

    Recursion, Global Variables, Modules, Files (II)
    
    Slides
    Assignments

    3.0

    4.5

    9

    Midterm Exam
    none
    none

    3.0

    4.5

    10

    Structured Types: Lists, Tuples, Dictionaries (I)
    Slides
    Assignments

    3.0

    4.5

    11

    Structured Types: Lists, Tuples, Dictionaries (II)
    
    Slides
    Assignments

    3.0

    4.5

    12

    Multi-Dimensional Lists, Arrays, Multi-Dimensional Arrays
    Slides
    Assignments

    3.0

    4.5

    13

    Classes and Objects (I)
    Slides
    Assignments

    3.0

    4.5

    14

    Classes and Objects (II)
    Slides
    Assignments

    3.0

    4.5

    15

    Time Complexity
    Slides
    Assignments

    3.0

    4.5

    16

    Searching & Sorting
    Slides
    Assignments

    3.0

    4.5

    17

    Plotting
    Slides
    Assignments

    3.0

    4.5

    18

    Final Exams
    none
    none

    3.0

    4.5

    授課方式Teaching Approach

    80%

    講述 Lecture

    0%

    討論 Discussion

    0%

    小組活動 Group activity

    0%

    數位學習 E-learning

    20%

    其他: Others: 課程範例練習

    評量工具與策略、評分標準成效Evaluation Criteria

    課程要求:學生得自行撰寫每次程式作業以及實習課練習。 

    Midterm: 30% 
    Final Exam: 35% 
    Assignments: 35% 
    Bonus (participation): < 5%

    指定/參考書目Textbook & References

     

    Introduction to Computation and Programming Using Python With Application to Understanding Data (Second Edition)

    By John V. Guttag


    ISBN: 9780262529624

    https://mitpress.mit.edu/books/introduction-computation-and-programming-using-python-second-edition

    已申請之圖書館指定參考書目 圖書館指定參考書查詢 |相關處理要點

    維護智慧財產權,務必使用正版書籍。 Respect Copyright.

    課程相關連結Course Related Links

    
                

    課程附件Course Attachments

    課程進行中,使用智慧型手機、平板等隨身設備 To Use Smart Devices During the Class

    需經教師同意始得使用 Approval

    列印