逢甲大學

資訊工程學系

課程資訊

四學年度 第二學期

注意:此為黃秋煌教授網頁備份檔,原站已移除(Update at 2016/6/15)
課程名稱:計算機概論暨實習 (教學計畫表)
班級:資訊一甲
授課教師: 黃秋煌老師
辦公室:資電 207-1          電話分機:3766

課時間及教室:
    計算機概論:
星期三 9:10 am--10:00 am 語 102,星期四 10:10 am--12:00 noon 資電 102
    計算機概論實習:星期二 9:10 am--12:00 noon 資電 125

請益時間:星期三 10:00 am--12:00 noon,星期四 8:00 am--10:00 am (其他時間請先用 email 預約)

助教:已移除
辦公室:資電 233,  電話分機:3721
請益時間:
星期四 14:00 pm--16:00 pm (其他時間請先用 email 預約)

實習課小助教:已移除

課後輔導:已移除 ,時間:下列日期之星期一 18:00 pm--20:00 pm,教室:資電 235

課後輔導日期:3/14, 3/28, 4/18, 4/25, 5/2, 5/9, 5/16, 5/23,5/30,6/6

課後輔導時段會有由助教在教室指導同學的問題。課後輔導不採取講課方式,而是協助同學解決程式作業問題。如果同學對於程式作業有問題,需要助教幫忙 ,請利用課後輔導時間,將您的程式作業帶到指定地點。

公佈事項

大學程式能力檢定 Collegiate Programming Examination (CPE)

成績紀錄及缺課紀錄 (1. 使用上學期的別名;如果有同學要更改別名或目前別名為空白者,請使用email 重新申請。有任何問題請找助教或授課老師。 2. 如果對成績有任何問題,請於規定時間前到林冠佑助教辦公室複查你的試卷或上繳檔案。)

成績紀錄 (最後修改日期 6/15),含所有成績及學期總成績

缺課紀錄 (最後修改日期 5/26)

課堂討論記點紀錄 (最後修改日期 5/24)

成績試算表 (最後修改日期 6/15),此成績單已排序。

課程評分辦法:

  1. 每位同學必須同時修習計算機概論和計算機概論實習,兩個科目成績合併計算,且給予相同分數。

  2. 本課程題目作業和程式作業為提供給同學練習,不予計分,請各位同學不要繳交題目作業和程式作業。所有作業將在網頁上同時公佈解答,以便同學練習。

  3. 本課程將有不定時隨堂小考、期中考試、期末考試;考試分為兩種形式:計算機概論筆試和計算機概論實習上機考試。

  4. 本課程之評分將分為 (a) 平時成績 (40%),以小考成績為主要評分項目,(b) 期中考成績 (30%),和 (c) 期末考成績 (30%)。

課程規定:

  1. 所有修課同學必須同時選同一班級的計算機概論計算機概論實習,並參與這兩門課所有的活動,包含上課、實習、作業、考試等。兩門課程的成績將合併計算,並給相同的成績。

  2. 本課程點名方式以點名單簽名及抽點為主,抽點後遲到者以缺課論;點名單嚴禁代簽,抽點時如發現有代簽情況以作弊論處,送學務處依校規處理。缺課紀錄將登錄於 iLearn 系統中,並作為期末總成績調整之依據,即缺課紀錄超過三次的同學,期末總成績不予加分。

  3. 計算機概論以投影片授課為主,教師會在課堂上發問,請同學踴躍參與討論;課堂討論紀錄將計入平時成績。

  4. 計算機概論實習將有隨堂程式習作 (programming practice),程式習作將會請同學討論,請同學踴躍參與討論;課堂討論紀錄將計入平時成績。

  5. 本課程將有不定時隨堂小考,請假或缺考者以零分計算,不予補考 。小考成績至少將有兩次最低成績不予計入平均。

  6. 計算機概論考試為筆試,期中考試 (midterm exam) 及期末考試 (final exam) 之時間及教室於本課程網頁公布。

  7. 計算機概論實習為上機考試,期中考試 (midterm exam) 及期末考試 (final exam) 之時間及教室於本課程網頁公布。

  8. 所有小考、期中考試、期末考試皆為不可看書不可帶小抄不開放網路

成績公佈方法:

為保護個人隱私,本課程於網頁上公佈之各項成績將採別名方式

  1. 請每位同學自取一個不超過六個中文字或八個英文字母或數字的別名,別名第一個字必須是中文或英文字母,並請記住您所使用的別名 。

  2. 您取的別名請勿與您的姓名、學號、生日相似,也請不要使用具有任何機密性的名稱,如電腦帳戶密碼、存摺帳戶號碼、或提款卡密碼。

  3. 請將您的別名以電子郵件方式送到 chh@fcu.edu.tw,信件主旨請寫「計算機概論暨實習--公佈成績用別名」,信件內容請註明姓名學號別名

  4. 如果別名有不雅文字或不適當者,將予退回並請重送。

  5. 如果有相同的別名,以最早收到信件者為優先。

  6. 如果您不提供別名,您的成績將以空白別名公佈。

計算機概論暨實習 教室規則:

  • 上課時間手機和平板電腦必須關機或靜音及放在書包或口袋中,手機和平板電腦不許拿在手上或放置於桌上

  • 實習課上課時間只可瀏覽課程網頁及老師指定的內容,和使用 Dev-C++ 及老師指定的軟體。

  • 實習課上課時間禁止離開座位或擅自走動。如需課間休息的同學,請向老師或助教報告。

  • 實習課上課時間可以和鄰座同學輕聲討論但嚴禁大聲喧嘩。如有問題請舉手,由老師或助教前往座位旁協助。

  • 老師講課時間,嚴禁說話及互相交談

  • 違反規定的同學在一次勸告之後,每次再犯扣減學期總成績 1 分。

課程網路教材及教科書

Textbooks:

  1. C.-H. Huang, Basic Computing Concepts and Programming in C, Web Book.

  2. W. B. Kernighan and D. M. Ritchie, The C Programming Language, the second edition Prentice Hall, 1988.

  3. P. Deitel and H. Deitel, C++ How to Program, 7th edition, Prentice Hall, 2010.

軟體工具下載

C/C++ 工具:下載 (Download) Dev-C++ (4.9.9.2 版)
C/C++ 工具:下載 (Download) Code::Blocks ( 16.01 版)
Bloodshed Software: 可至此網址下載最新版的 Dev-C++

Deitel and Deitel 課程教材

Chapter 1 – Introduction to Computers and C++ Programming

Chapter 2 - Introduction to C Programming

Chapter 3 - Structured Program Development

Chapter 4 – C Program Control

Chapter 5 - Functions

Chapter 6 - Arrays

Chapter 7 - Pointers

Chapter 8 - Characters and Strings

Chapter 9 - Formatted Input/Output

Chapter 10 - C Structures, Unions, Bit Manipulations, and Enumerations

Chapter 11 – File Processing

Chapter 12 – Data Structures

Chapter 13 - The Preprocessor

Chapter 14 - Advanced C Topics

Chapter 15 - C++ As A "Better C"

Chapter 16: Classes and Data Abstraction

Chapter 17 - C++ Classes: Part II

Chapter 18 - C++ Operator Overloading

Chapter 19 - C++ Inheritance

Chapter 20 - C++ Virtual Functions and Polymorphism

Chapter 21 - C++ Stream Input/Output

Chapter 22 - C++ Templates

Chapter 23 - Exception Handling

C/C++ 程式語言補充教材

The C Library Reference Guide (pdf)

C++ language tutorial

C-C++ Reference

教材程式

Chapter 1: Hello, world!

Chapter 2: size of primitive data types, character operations, Chinese character Big5 encoding, Chinese character Big5 decoding, maximum and minimum values of integers, short and long integers, floating-point number formats, format specifier, primitive type conversion without casting, primitive type conversion with casting

Chapter 3: history-sensitive variable, temperature conversion Centigrade to Fahrenheit, prefix and postfix operator, evaluation order, type conversion, assignment as expression, circumference and area of a circle

Chapter 4: truth values, bitwise negation, bitwise conjunction, disjunction, exclusive or, bitwise shift operations, bitwise arithmetic operations, bitwise or as addition, print number without break, print number with break

Chapter 5: value and address of one-dimensional array, value and address of two-dimensional array, average score, highest score, character scanning using while-loop, character scanning using do-while-loop, sequential search algorithm, sequential search algorithm with short circuit evaluation, bubble sort algorithm, binary search algorithm

Chapter 6: average student score, size of student structure, nested structure, union type, size of union type

Chapter 7: selection sort, solving a quadratic equation (complex.h, complex. c, quadratic_equation_all.c), pass by value, pass by address, stack reverse operation with array implementation (stack_array_reverse.c, stack_array.h, stack_array.c), sorting and searching (sort_and_search_app.c, sort_and_search.h, sort_and_search.c), recursive factorial function, recursive function of Fibonacci numbers, iterative function of Fibonacci numbers, Tower of Hanoi

Chapter 8: memory allocation for an integer, memory allocation of a one-dimensional array, memory allocation of two-dimensional array, string overflow, string length, string compare, copy string, search characters in string, search character sequence in string, concatenate strings, string_functions.c, string_token.c, reverse using linked list (stack_list_reverse.c, stack_list.h, stack_list.c)

Chapter 9: file copy version 1 (source.txt), file copy version 2 (source.txt), average class in sorted order (student_score.txt)

程式範例 Programming Examples

1. Print Chinese characters (解答:printf_big5.c)

2. Print escape sequences (解答:escape_sequences.c)

3. Draw square (解答:draw_square.c)

4. Draw triangle (解答:draw_triangle.c)

5. Draw diamond (解答:draw_diamond.c)

6. Quadratic equation checker (解答:quadratic_equation_checker.c)

7. Quadratic equation solver (real roots) (解答:quadratic_equation_real.c)

8. Mean and standard deviation (解答:mean_deviation.c)

9. Multiplication table (解答:multiplication_table.c)

10. Applying bitwise logical operations as arithmetic operations (解答:bitwise_as_arithmetic.c)

11. Binary representation (解答:bit_binary_representation.c)

12. Bit rotation (解答:bit_rotation.c)

13. Bit swap operation (解答:bit_swap.c)

14. Bit reversal operation (解答:bit_reversal.c)

15. Array index operations (解答:array_index.c)

16. Pascal triangle (解答:pascal_triangle.c)

17. Matrix transposition (解答:matrix_transposition.c)

18. In place matrix transposition (解答:matrix_transposition_in_place.c)

19. Matrix-vector multiplication (解答:matrix_vector_multiplication.c)

20. Matrix multiplication (解答:matrix_multiplication.c)

21. Blocked matrix transposition (解答:matrix_transposition_blocked.c)

22. Triangular matrix multiplication (解答:matrix_multiplication_triangular.c)

23. Blocked matrix multiplication (解答:matrix_multiplication_blocked.c)

24. Banded matrix multiplication (解答:matrix_multiplication_banded.c)

25. Student class score average (解答:average_class.c)

26. Quadratic equation project (解答:quadratic_equation_project.dev, complex.h, complex.c, quadratic_equation_main.c)

27. Mouse maze (解答:maze.c)

28. Fast Fibonacci sequencen and others (解答:fibonacci_all.c)

29. Matrix multiplication with dynamic arrays (解答:matrix_multiplication_dynamic.c)

30. Triangular matrix multiplication with dynamic arrays (解答:matrix_multiplication_triangular_dynamic.c)

31. Banded matrix multiplication with dynamic arrays (解答:matrix_multiplication_banded_dynamic.c)

32. Longest palindrome using an array (解答:longest_palindrome_array.c)

33. Longest palindrome with character counters (解答:longest_palindrome_array_character_count.c)

34. Queue with array (解答:queue_array_app.dev, queue_array.h, queue_array.c, queue_array_app.c)

35. Queue with dynamic array (解答:queue_dynamic_array.c)

36. Queue with double-linked list (解答:queue_list_app.dev, queue_list.h, queue_list.c, queue_list_app.c)

37. Palindrome using double-linked list (解答:palindrome_double_link_list.c)

38. Longest palindrome using double-linked list (解答:longest_palindrome_double_linked_list.dev, circular_double_list_char.h, circular_double_list_char.c, longest_palindrome_double_linked_list.c)

39. Image files conversion color to gray (解答:image_color_to_gray.c)

40. Image banded color filter (解答:image_banded_filter.c)

41. Deitel and Deitel, Chpater 15 (解答:P15_5.cpp, P15_6.cpp, P15_8.cpp)

42. Deitel and Deitel, Chpater 16
(解答:P16_4.dev, P16_4.h, P16_4m.cpp, P16_4.cpp)
(解答:P16_5.dev, P16_5.h, P16_5m.cpp, P16_5.cpp)
(解答:P16_7.dev, P16_7.h, P16_7m.cpp, P16_7.cpp)
(解答:P16_11.dev, P16_11.h, P16_11m.cpp, P16_11.cpp)

43. Deitel and Deitel, Chpater 17
(解答:P17_07.dev, P17_07.h, P17_07m.cpp, P17_07.cpp)
(解答:P17_08.dev, P17_08.h, P17_08m.cpp, P17_08.cpp)

44. Deitel and Deitel, Chpater 18
(解答:P18_10.dev, P18_10.h, P18_10m.cpp, P18_10.cpp)

45. Deitel and Deitel, Chpater 19
(解答:P19_08.dev, P19_08.h, P19_08c.h, P19_08cy.h, P19_08pm.cpp, P19_08cm.cpp, P19_08cym.cpp, P19_08.cpp)
(解答:P19_11.dev, P19_11.h, P19_11q.h, P19_11t.h, P19_11pa.h, P19_11rh.h, P19_11r.h, P19_11s.h, P19_11pm.cpp, P19_11qm.cpp, P19_11tm.cpp, P19_11pam.cpp, P19_11hm.cpp, P19_11rm.cpp, P19_11sm.cpp, P19_11.cpp)

46. Deitel and Deitel, Chpater 20
(解答:P20_14.dev, shape.h, twodim.h, threedim.h, circle.h, square.h, sphere.h, cube.h, shape.cpp, circle.cpp, square.cpp, sphere.cpp, cube.cpp, P20_14.cpp)

47. Deitel and Deitel, Chpater 21 (解答:P21_07.cpp, P21_08.cpp, P21_09.cpp, P21_10.cpp, P21_11.cpp)

48. Deitel and Deitel, Chpater 22 (解答:P22_03.dev, arraytmp.h, P22_03.cpp)

49. Deitel and Deitel, Chpater 23 (解答:P23_25.cpp, P23_26.cpp)

程式習作 Programming Practice

程式習作一:Hello world! (debugging) (解答:hello_world.c, hello_world_chinese.c), Print multi-line text (solution)

程式習作二:Big5 coding single character (solution)

程式習作三:Draw square with diamond (解答:draw_square_with_diamond.c)

程式習作四:Draw tree

程式習作五:Multivariate fractional polynomial (解答:fractional_polynomial.c)

程式習作六:Multiplication table hexadecimal numerals (解答:multiplication_table_hex.c)

程式習作七:Mixed bit operations (解答:bit_mixed_operations.c)

程式習作八:Adder (解答:adder.c)

程式習作九:Coding and decoding (解答:coding_decoding.c)

程式習作十:Integral of polynomial functions (Riemann sum) (解答:riemann_sum.c)

程式習作十一:LU-decomposition (解答:lu_decomposition.c)

程式習作十二:Banded LU-decomposition (解答:lu_decomposition_banded.c)

程式習作十三:Student class score average with sorted order (解答:average_class_sort.c)

程式習作十四:Rational number arithmetic (解答:rational_number.dev, rational_main.c, rational.h, rational.c)

程式習作十五:Palindrome test using stacks (解答:palindrome_stack_array.dev, palindrome_stack_array.c, stack_array.h, stack_array.c)

程式習作十六:Determinant (解答:determinant.c)

程式習作十七:Tower of Hanoi with pegs using array stack (解答:hanoi_with_pegs_stack_array.dev, hanoi_with_pegs_stack_array.c, hanoi_stack_array.h, hanoi_stack_array.c)

程式習作十八:Banded LU_decomposition with dynamic arrays (解答:lu_decomposition_banded_dynamic.c)

程式習作十九:Longest palindrome with vowel count (解答:longest_palindrome_array_vowel.c)

程式習作廿:Longest palindrome using circularly double-linked list (解答:longest_palindrome_circular_double_linked_list.dev, circular_double_list_char.h, circular_double_list_char.c, longest_palindrome_circular_double_linked_list.c)

程式習作廿一:Image transformation vertical mirror reflection (解答:image_mirror_reflection_vertical.c)

程式習作廿二:Image transformation vertical inverted reflection ( 解答:image_inverted_reflection_vertical.c)

程式習作廿三:Length conversion (解答:convert_length.cpp),Temperature conversion (解答:convert_temperature.cpp),Dollar conversion (解答:convert_dollar.cpp)

程式習作廿四:Stack class using array ( 解答:stack_array_class.cpp)

程式習作廿五:Queue class using array ( 解答:queue_array_class.cpp)

程式習作廿六:Stack class using single linked list ( 解答:stack_single_linked_list_class.cpp)

程式習作廿七:Queue class using double linked list ( 解答:queue_double_linked_list_class.cpp)

程式習作廿八:Complex number arithmetics with friend I/O class project (complex_arithmetics_with_friend_IO_class_project.dev, complex_arithmetics_with_friend_IO_class.h, complex_arithmetics_with_friend_IO_class.cpp, complex_arithmetics_with_friend_IO_class_app.cpp)

程式習作廿九:Rational number class project (rational_number_class.dev, rational_number_class.h, rational_number_class.cpp, rational_number_class_app.cpp)

程式習作卅:Matrix class with inheritance project (matrix_class_inheritance.dev, matrix_class.hvector_subclass.h, smatrix_subclass.h, matrix_class.cppvector_subclass.cpp, smatrix_subclass.cpp, matrix_class_inheritance_app.cpp)

題目作業 Homework Assignments

題目作業一 (解答)

題目作業二 (解答)

題目作業三 (解答)

題目作業四 (解答)

題目作業五 (解答)

題目作業六 (解答)

題目作業七 (解答)

題目作業八 (解答)

題目作業九 (解答)

程式作業 Programming Assignments

程式作業一 (解答)

程式作業二 (解答)

程式作業三 (解答)

程式作業四 (解答)

程式作業五 (解答)

隨堂平時考試 Quizzes

第一學期 計算機概論 第一次平時考試

第一學期 計算機概論 第二次平時考試

第一學期 計算機概論 第三次平時考試

第一學期 計算機概論 第四次平時考試

第一學期 計算機概論實習 第一次平時上機考試 (quiz1_skeleton_1.c, quiz1_skeleton_2.c) (解答:quiz1_1.c, quiz1_2.c)

第一學期 計算機概論實習 第二次平時上機考試 (quiz2_skeleton_1.c, quiz2_skeleton_2.c) (解答:quiz2_1.c, quiz2_2.c)

第一學期 計算機概論實習 第三次平時上機考試 (quiz3_skeleton_1.c, quiz3_skeleton_2.c, adder.pdf) (解答:quiz3_1.c, quiz3_2.c)

第一學期 計算機概論實習 第四次平時上機考試 (quiz4_skeleton_1.c, quiz4_skeleton_2.c) (解答:quiz4_1.c, quiz4_2.c)

第二學期 計算機概論 第一次平時考試

第二學期 計算機概論 第二次平時考試

第二學期 計算機概論 第三次平時考試

第二學期 計算機概論 第四次平時考試

第二學期 計算機概論實習 第一次平時上機考試 (quiz1_skeleton_1_sp.c, quiz1_skeleton_2_sp.c) (解答:quiz1_1_sp.c, quiz1_2_sp.c)

第二學期 計算機概論實習 第二次平時上機考試 (quiz2_skeleton_1_sp.c, wildflowers.bmp) (解答:quiz2_1_sp.c)

第二學期 計算機概論實習 第三次平時上機考試 (quiz3_skeleton_1_sp.cpp) (解答:quiz3_1_sp.cpp)

第二學期 計算機概論實習 第四次平時上機考試 (quiz4_skeleton_1_sp.cpp, quiz4_skeleton_2_sp.cpp) (解答:quiz4_1_sp.cpp, quiz4_2_sp.cpp)

期中/期末考試 Midterm/Final Exams

第一學期 計算機概論 期中考試

第一學期 計算機概論實習 期中上機考試 (mexam_skeleton_1.c, mexam_skeleton_2.c, mexam_skeleton_3.c, mexam_skeleton_4.c) (解答:mexam_1.c, mexam_2.c, mexam_3.c, mexam_4.c)

第一學期 計算機概論 期末考試

第一學期 計算機概論實習 期末上機考試 (fexam_skeleton_1.c, fexam_skeleton_2.c, fexam_skeleton_3.c, fexam_skeleton_4.c) (解答:fexam_1.c, fexam_2.c, fexam_3.c, fexam_4.dev, fexam_4.c, hanoi_stack_array.h, hanoi_stack_array.c)

第二學期 計算機概論 期中考試

第二學期 計算機概論實習 期中上機考試 (mexam_skeleton_1_sp.c, mexam_skeleton_2_sp.c, mexam_skeleton_3_sp.c, sunset.bmp) (解答:mexam_1_sp.c, mexam_2_sp.c, mexam_3_sp.c)

第二學期 計算機概論 期末考試

第二學期 計算機概論實習 期末上機考試 (palindrome.c, final_skeleton_1_sp.cpp, final_skeleton_2_sp.cpp, final_skeleton_3_sp.cpp) (解答:final_1_sp.cpp, final_2_sp.cpp, final_3_sp.cpp)