---
# System prepended metadata

title: Lab02：Python & GitHub & Online Judge
tags: [計算機概論]

---

# Lab02 Python & GitHub & Online Judge
助教 : 威仁

## Python 之父
<h3>Computer Programming for Everybody</h3>

![image](https://hackmd.io/_uploads/B1znMcgsR.png)
Guido van Rossum



* an easy and intuitive language just as powerful  as major competitors
* open source, so anyone can contribute to its  development
* code that is as understandable as plain English
* suitability for everyday tasks, allowing for short development times

## 軟體下載與安裝 
* 注意事項：請依據自己電腦的作業系統、CPU架構選擇相對應的版本
* 開啟安裝檔遇到"您是否要允許此App變更您的裝置？"時，都按"是"
### Visual Studio Code
* 簡稱VS Code，是一款由微軟開發且跨平台的免費原始碼編輯器
* [Visual Studio Code下載連結](https://code.visualstudio.com/Download)
* 此畫面選項全勾，其餘皆使用預設值安裝
![image](https://hackmd.io/_uploads/SyQKwcxi0.png)

### Download and Install Python

[Microsoft store(推薦)](https://www.microsoft.com/store/productId/9NCVDN91XZQP?ocid=pdpshare)
[website](https://www.python.org/downloads/)
[anaconda](https://www.anaconda.com/)
(三選一，在本課程中會使用VScode+Microsoft store版進行安裝教學)
(建議安裝3.5以後版本，挑最新的就好，之後課程如果有版本問題如果有會再講)

[安裝教學](https://docs.google.com/presentation/d/1oPtbK2nwl99TF6oVwrfsIPCrVTm7REji4plqQ-RzdOo/edit?usp=sharing)

## hello, world
* 所有寫程式的人都一定看過的一個程式
![Hello_World_Brian_Kernighan_1978](https://hackmd.io/_uploads/S1fLZ5xoA.jpg)


## Github介紹
GitHub是一個廣泛用於軟體開發的網上平台，它提供了一個集中的地方，讓開發者能夠協作、管理和分享他們的程式碼專案。以下是GitHub的一些主要特點和功能：

* 程式碼儲存庫 (Repositories)：GitHub的核心功能是程式碼儲存庫，它們是用來存放和管理程式碼的地方。每個項目都有一個獨特的儲存庫，可以包含程式碼文件、圖像、配置文件等。

* 版本控制 (Version Control)：GitHub使用Git作為版本控制系統的基礎。這意味著開發者可以追蹤程式碼的變化，輕鬆地合併和管理不同版本的程式碼。

* 協作開發 (Collaboration)：多個開發者可以在同一個專案上協作，他們可以共享程式碼、提交變更、提出問題、討論解決方案，並進行代碼審查。

* 問題追蹤 (Issue Tracking)：GitHub允許用戶創建和追蹤問題，這些問題可以用來報告錯誤、提出功能請求或進行一般討論。開發者可以使用這個功能來保持專案的整潔和組織。

* 開放式資源 (Open Source)：GitHub是眾多開源專案的家園，開發者可以免費託管他們的開源項目，這使得全球的開發者社區更容易參與和貢獻。

* 自動化和 DevOps 支持：GitHub Actions 是一個內置的自動化工具，允許開發者設置 CI/CD（持續集成/持續交付）工作流程，自動化測試、部署等任務。

簡而言之，GitHub 是一個功能強大的工具，為開發者和團隊提供了從代碼管理到自動化部署的一站式服務。

## 註冊Github
* Github網站 (https://github.com/)
![image](https://hackmd.io/_uploads/S1oGC5PqA.png)
點擊Sign up for github開始註冊
*username只能用英文、數字、以及-號
*註冊時請特別記下username以及email


## 儲存庫設定

![github儲存庫圖1](https://hackmd.io/_uploads/rku4lsPcA.jpg)
repository name：EXXXXXXXX_intro_to_computer(學號_intro_to_computer)
點選private
點擊create repository
儲存庫設定完成！

## 將儲存庫共用給助教
![github儲存庫圖2](https://hackmd.io/_uploads/SyhlqsP5R.jpg)

進入儲存庫>>點選settings>>點選collaborators>>點選add people

輸入助教的gmail帳號 : nckualhc@gmail.com>>點選 add XXXXXX to this repository

## Online Judge
* **注意事項**
    1. Online Judge系統登入帳密皆為學號。(麻煩記得改密碼)
    2. 在LAB的作業要求中如果有要求使用Online Judge進行練習與寫作業，如果未使用會以==零分==計算，但練習內容、多寡或長度時間並不是評分的依據，請依照平常的練習狀況即可。
    3. 每次作業皆需要繳交至Github上，並放入`學號_Labxx`的資料夾中(不要套娃、大小寫請確認清楚)，程式碼檔名命名方式請參考OJ上的題目，如`Lab03_01.py`。
        ```
        ├──E12345678_Lab03
        │    │
        │    ├──Lab03_01.py
        │    ├──Lab03_02.py
        │    └──.......
        ```
    5. 請不要在input("`這裡`")函式中輸入任何文字，出來一定是WA。(但繳交在GITHUB上的可以有文字，自己方便為主)，且output要求嚴格，若測試沒問題但交出去還是WA可能是格式輸出錯誤，麻煩多注意輸出的格式是否正確。
    6. 程式碼通常不會部份給分。
    7. 加退選的同學再麻煩來通知助教幫你創帳號，請不要自行創建。

網址:https://140.116.179.59:8080/
進入網址會顯示>點選進階>繼續前往
![image](https://hackmd.io/_uploads/rybPHc3o0.png)
![image](https://hackmd.io/_uploads/SJoXBcnjA.png)

[OJ使用小教學](https://docs.google.com/presentation/d/1Y0k2YRK2lfOZChosL2-xGjNxHqldf61s4IQlY12lQdM/edit?usp=sharing)
---
OJ測試[https://140.116.179.59:8080](https://140.116.179.59:8080)
LAB02開放時間：設定至週日23:59分，密碼123456
建議同學試試看提交是否有問題，使用上有什麼困擾。


## Lab02作業題目
- 作業繳交期限：至09/23 12:00前

1. **輸出 "hello world"，並且要截圖以及存檔成.py檔，範例程式如下 :**
![Lab02 Code範例](https://hackmd.io/_uploads/rJ43J1zsA.png)
輸出結果如下 :
![lab02輸出範例](https://hackmd.io/_uploads/BJ_3JyGi0.png)
1. **儲存庫上傳資料或資料夾 :**
    1. 點選"uploading an existing file"
![github儲存庫圖3](https://hackmd.io/_uploads/H1INlJfiC.png)
    1. 直接將資料夾拖曳至上傳區(先把程式檔案放到 "學號_Lab02"資料夾中)
![github儲存庫圖4](https://hackmd.io/_uploads/rJLqgyfjR.png)
    1. 除了第一次上傳以外，其他都是點選 'Add file'，然後再點選 'upload files'，才會進到上傳區
![github儲存庫圖5](https://hackmd.io/_uploads/Synce1Ms0.png)

繳交方式 : 將程式碼以及程式輸出截圖放入一個名為 '學號_Lab02'的資料夾，並上傳到到github，直接拖曳上傳資料夾就好，不用壓縮~

![github儲存庫圖6](https://hackmd.io/_uploads/ryyilyGjC.png)
>[!Tip](提醒 : 記得把儲存庫共用給助教!! )

>[!Warning](提醒 : 記得把儲存庫共用給助教!! )

>[!Caution](提醒 : 記得把儲存庫共用給助教!! )

## 補充
#### 1. 讓VScode顯示中文
* 點選左邊Extensions(或者快捷鍵ctrl+shift+X)
![中文1](https://hackmd.io/_uploads/BJLa21foR.png)
* 搜尋"Chinese"
![中文2](https://hackmd.io/_uploads/BJwHaJGoR.png)



#### 2. Git設定
1. 點選左側![image](https://hackmd.io/_uploads/Bylsakfo0.png)
2. 點選"Download Git for Windows"
![GIT1](https://hackmd.io/_uploads/SkpN31Mi0.png)
3. 根據電腦版本下載
![GIT2](https://hackmd.io/_uploads/S13pA1zo0.png)
4. 都用預設值安裝即可(設定有興趣自行研究)安裝完成後重新打開VScode，就會顯示如下
![GIT3](https://hackmd.io/_uploads/ByIkJxziR.png)
5. 先確定檔案位置正確(左上角檔案>開啟資料夾)
![image](https://hackmd.io/_uploads/HkJtkxMjA.png)
6. 點選初始化存放庫，完成後點選 "..." > "遠端" > "新增遠端存放庫"
![GIT4](https://hackmd.io/_uploads/BywzlxziR.png)
7. 點擊"從github新增遠端存放庫"
並登入github
![GIT5](https://hackmd.io/_uploads/rJG1GgMoC.png)
選擇要同步的 Repository
![image](https://hackmd.io/_uploads/rJAqGefjR.png)

8. 按下 Ctrl+\` 打開終端機，並在終端機輸入資訊
`$ git config --global  user.name "使用者名稱"`
`$ git config --global  user.email "使用者電子郵件"`
點擊藍框內的提交(記得在框框內輸入內容，否則會卡住)
![GIT6](https://hackmd.io/_uploads/B1Q-WlfiR.png)

9. 再次點擊藍框 "發布 branch"
![git13](https://hackmd.io/_uploads/rysO-gMs0.png)

10. 到GITHUB上確認是否成功
![image](https://hackmd.io/_uploads/H11iVefoR.png)
以後只需要到Vscode透過git提交檔案上 Github 不需要打開網頁自行丟檔案

