計算機程式設計 (Computer Programming)

National Taiwan University via Coursera

Go to Course: https://www.coursera.org/learn/c-bian-cheng

Introduction

### Course Review: 計算機程式設計 (Computer Programming) on Coursera **Course Overview:** The "計算機程式設計" (Computer Programming) course is an excellent gateway into the world of programming with the C language. Aimed at beginners, this course provides a structured approach to learning programming concepts, starting from the very basics and gradually introducing more complex topics. It's particularly valuable for those who aspire to develop a solid foundation in computer science and programming. **Course Format:** This online course utilizes a blend of engaging video lectures, which seamlessly integrate presentation slides and live coding demonstrations. This format not only aids comprehension but also keeps students engaged with real-time examples of how to apply theoretical concepts. To reinforce learning, the course includes weekly programming assignments that allow students to practice what they have learned, ensuring a hands-on approach to mastering the principles of computer programming. ### Syllabus Breakdown: #### **Week 1 - Introduction** The first week lays the groundwork by familiarizing students with fundamental programming concepts. Participants start with a simple program and gradually enhance it with computation statements that yield useful outputs. The utilization of an online interface, ideone, is an excellent addition to reinforce the workflow of editing, compiling, and executing code. #### **Week 2 - Control Structure** In the second week, learners delve into flow control and loops, vital components for writing efficient programs. Understanding control structures is essential in guiding the execution flow within a program. This week emphasizes writing clean, maintainable code while also covering best practices for loops, thereby fostering good programming habits. #### **Week 3 - Array** The focus shifts to arrays and floating-point numbers, a necessary step for any budding programmer. Week three introduces critical data organization concepts, with practical examples to illustrate how to effectively use arrays in programming. The transition from integer data to floating-point representation broadens students’ understanding of data types in C. #### **Week 4 - Functions** Functions are a key focal point this week. The course emphasizes the significance of reusability in programming and shows students how to define their own functions. The exploration of mathematical and input/output system functions equips learners with a toolkit for developing more complex applications while saving time by avoiding code duplication. #### **Week 5 - Pointer** Week five dives into the more intricate and often intimidating topic of pointers. Understanding pointers is crucial for mastering C, as they provide a deeper comprehension of memory management within a program. This week helps demystify the connection between semantic structures and memory layout, reinforcing how pointers affect variable management and program execution. #### **Week 6 - String** In the final week before the exam, the course covers strings and characters, elements that are essential for handling text data. By blending character arrays with string manipulation functions, students learn how to manage and process textual information—an important skill in programming. #### **Final Exam** Culminating the course is a final exam that tests students on all learned materials, ensuring that they can apply their knowledge effectively. ### Recommendation: I highly recommend the "計算機程式設計" (Computer Programming) course for anyone interested in learning programming from the ground up. Its structured format, combined with the comprehensive syllabus covering essential concepts, makes it a valuable resource for beginners. The engaging teaching style, effective use of practical examples, and weekly assignments ensure that students not only learn the theory but can also apply it in real-world scenarios. Whether you are looking to start a career in technology, enhance your skills, or simply explore a new hobby, this course offers the perfect introduction to the fascinating world of programming in C. Enroll today, and take your first steps toward becoming a proficient programmer!

Syllabus

Week 1 - Introduction

We start with basic programming concepts that correspond to chapter 1, 2, 3 of the book. We will start with a basic program and gradually add computation statements so that our program will perform useful computation. Also we will use an online interface (ideone) to describe the process of editing, compiling and running a program.

Week 2 - Control Structure

The second week will describe flow control and loops (book chapter 4, 5). After we learn how to write a program to perform basic computation in the first week, we start to learn the control structure of a program. We will learn how to control the execution of a program among several possible "next steps", and how to repeat the computation to finish repetitive tasks. We will also describe certain loop ending practice, which strongly relates to programming style.

Week 3 - Array

The third week describes arrays and floating point numbers (book chapter 6, 7). We will introduce ways to organize related data into the most basic data structure, i.e., array. We will describe the circumstance of using an array, and the most useful idioms in using them. Various examples will be introduced to enforce the concepts in using array correctly. We will also describe the concept of floating point numbers, which is different from the integers we introduce at the beginning of this course.

Week 4 - Functions

The fourth will will describe the concept of functions (book chapter 8). We will motivate the use of function by system functions, including mathematic and input/output functions, so we the students can understand the key concept that if we can use existing code, then we do not need to reinvent the wheel. Then we will introduce the way to define our own functions. The key mechanism of function call, parameter passing, and return values wiill be discussed by a series of examples.

Week 5 - Pointer

In the fifth week we will describe pointers (book chapter 9). We will focus on the semantic of pointers and then introduce the mechanism of using pointers. Here we would like to tie together the pointer concept with memory layout, i.e., the way the computer system places variables into memory. After the introduction of memory layout the students will have a very clear idea on how a computer system manages the memory, and how this layout affects the way we write program that handles variables of different types in C.

Week 6 - String

The sixth week will describe strings and characters (book chapter 10, 11). Up to this point in this course we deal with only numeric data. Now we are ready to introduce character and string that deal with mainly text data. We will introduce the concept of memory bits, and different types in C only means different ways to interpret the memory bits. We start with character, which is the basic unit of text information. Then we introduce string as an array of characters, and various useful functions to perform various operations on strings.

Final Exam

Overview

課程介紹 (About the course) This course will introduce computer programming in C. We will cover basic operations about computer, then move on to how to write computer program in a language called C. Various C concepts will be introduced. 授課形式 (Course format) We will have video lecture to introduce the concept of programming. The video will switch between the presentation slides and the actual coding process. After that we will have weekly programming homework to ensure that the students are able

Skills

Computer Display Standard Computer Programming C Programming

Reviews

很不错的课。可能不太适合纯初学者但是很适合有点基础的。作业质量非常高!只可惜没有讲完,连struct都没讲到。

I've learned a lot from this course, it gives me a very basic programming skill.

教授的上課方式很喜歡, 步調很適宜,\n\n只是希望可以多講一些實際應用 的例子 ,這將會更吸引學者! !

very good and useful,what I really mean is that this couse is very useful 4 new-man.

適合 初學者入門,很快速給予一個寫c或程式語言一個overview,\n\n謝謝有開這堂課,讓我有這個機會快速學習一次!