Tài liệu phục vụ giảng dạy ngôn ngữ lập trình CSHARP
TÀI LIỆU HƯỚNG DẪN GIẢNG DẠY CSHARP 2008 DÀNH CHO GIẢNG VIÊN ĐẠI HỌC-CĐ |
Giới thiệu :
Nhóm tác giả xây dựng và biên sọan bộ tài liệu và giáo trình giảng dạy gồm
- Cố vấn :
- Lê Thanh Hải, Cố vấn công nghệ Công ty Microsoft
- và PGS Tiến Sĩ Hùynh Quyết Thắng, Trưởng khoa CNTT Đại học BK Hà nội
- Các giảng viên tham gia biên sọan :
- Ths Hòang Anh Việt
- Chúng tôi sẵn sàng cung cấp miễn phí cho các khoa CNTT để nghiên cứu phục vụ giảng dạy cho sinh viên
- Vui lòng liên hệ : Mr Lê Thanh Hải, Microsoft việt Nam
Thông tin và mục tiêu khóa học
Bộ giáo trình này được biên soạn dựa trên những tài liệu mới nhất về C# 2008 (tham khảo phần dưới) nhằm cung cấp cho sinh viên công nghệ thông tin những kiến thức cơ bản và nâng cao trong lập trình hướng đối tượng (Object Oriented- Programming), đặc biệt là để làm chủ được C# - một công cụ lập trình mạnh mẽ và phổ biến nhất hiện nay.
Những mục tiêu chính mà giáo trình cố gắng đạt được:
- Cung cấp nội dung từ cơ bản đến nâng cao cho sinh viên mới bắt đầu học về lập trình hướng đối tượng.
- Hướng dẫn cho sinh viên cách thức để bước đầu làm việc được với C# thông qua lập trình OOP.
- Nâng cao kiến thức và trình độ của sinh viên để cuối cùng có thể làm chủ được những tính năng mới, nổi bật của C# 2008.
Giáo trình này giới thiệu ngôn ngữ C# như một ngôn ngữ lập tình hướng đối tượng, khá đơn giản ở một số chương đã quen thuộc với những sinh viên đã được học và làm quen với kiến thức OOP trước đó. Nhưng để đảm bảo cho những sinh viên chưa được làm quen với khái niệm lập trình này (trước đây mới chỉ làm quen với C hay pascal) thì giáo trình này vẫn đi từ những kiến thức cơ bản nhất, có sự đối sánh với những phiên bản trước để cho sinh viên có một cái nhìn tổng quát nhất về C#, và làm chủ được phiên bản mới nhất của bộ công cụ này.
Bộ giáo trình được biên soạn và tổng hợp bao gồm: slide bài giảng, bài exercise, bài thực hành lab và các Video tự học. Ở đây, toàn bộ giáo trình đều được trình bày bằng tiếng Anh, nhằm mục đích nâng cao khả năng tiếp thu và phát triển các kỹ năng học và nghiên cứu bằng tiếng Anh – các kỹ năng vô cùng quan trọng đối với người học công nghệ thông tin.
Video tự học là các đoạn phim training do Microsoft biên soạn, các video này bao gồm cả phần lý thuyết lẫn thực hành được các chuyên gia trình bày bằng Tiếng Anh. Việc cho sinh viên học theo và tham khảo các video này đảm bảo được cho sinh viên:
1. Nâng cao khả năng nghe, hiểu và học được bằng tiếng Anh.
2. Nắm được các keyword thông dụng của C#, từ đó có thể tự tìm hiểu thêm được.
3. Tiếp thu rất nhanh nội dung bài giảng qua việc theo dõi các chuyên gia thao tác từng bước của các ví dụ.
Giáo trình có thể dùng tham khảo cho các ngành Công nghệ thông tin, điện tử, viễn thông.
Phương pháp giảng dạy
Khóa học này yêu cầu sinh viên phải được thực hành nhiều bằng các ví dụ, project thực tế để có khả năng làm thật thay vì chỉ nghe lý thuyết suông. Giáo viên nên tổ chức các buổi học lý thuyết và buổi học làm lab đan xen nhau, lý thuyết mà sinh viên mới học có thể được thể hiện ngay bằng các bài thực hành. Điều này giúp cho sinh viên nhớ và hiểu kỹ hơn những gì giáo viên truyền đạt, và cũng tăng sự hứng thú trong việc học.
Một ví dụ về việc tổ chức các buổi học đã được áp dụng:
Tổ chức tuần 3 tiết học lý thuyết và 1 buổi thực hành:
¦ Lý thuyết
- Số lượng tiết: 3 ( có thể thay đổi)
- Thời gian giảng slide: từ 2 đến 2.5 tiết tùy vào chương và điều kiện.
- Thời gian còn lại cho sinh viên nghe các Training Video và tiến hành thảo luận.
¦ Thực hành
- Sinh viên thực hành các bài lab của giáo trình.
- Giáo viên tìm một ví dụ, tốt nhất là một project thực tế để làm thông qua các bài lab, hướng dẫn từng bước để sinh viên hiểu được quá trình làm thực tế.
Kết thúc khóa học, giáo viên nên yêu cầu sinh viên thực hiện những project tổng thể bằng việc đưa ra danh sách các mẫu project để sinh viên lựa chọn, hoặc sinh viên tự đăng ký. Việc yêu cầu này có thể được thực hiện vào giữa học kỳ hoặc vào cuối kỳ.
Để rèn luyện kỹ năng làm việc nhóm cho sinh viên, giáo viên có thể yêu cầu lớp phân chia thành các nhóm sinh viên để làm các project. Tùy vào độ lớn của project mà quy địn số lượng thành viên của một nhóm, số lượng có thể giao động từ 2 đến 4 sinh viên. Khi bắt đầu thực hiện và trong quá trình thực hiện project, giáo viên cần có mặt để tham gia cùng sinh viên, hướng dẫn để sinh viên đi đúng hướng và hiểu vấn đề một cách chính xác.
Đề cương môn học
Giáo trình được biên soạn để giảng dạy trong 15 tuần, với thời lượng 3 tiếng một tuần cho phần lý thuyết và một buổi thực hành Lab (xem mẫu ở phụ lục A). Trong thời gian học lý thuyết, việc đan xen cho sinh viên nghe các bài Trainning Video có thể tốn khá nhiều thời gian. Do đó giáo viên nên cân đối việc chia thời gian và chọn lọc các bài Video để cho sinh viên nghe và thảo luận trên lớp, còn những phần khác có thể giao cho sinh viên về nhà tự nghe rồi trả lời câu hỏi của giáo viên để buổi sau lên lớp trao đổi.
Bài giảng : Chapter 1- Introduction to C# Programming
Nội dung :
1.1 Differences Between C# and C++
1.2 Example of a C# Program
1.3 Overview of Features Added in C# 2.0
1.4 Overview of What’s New in C# 3.0
Summary
Bài tập : Week 1
Bài Lab :
Video training
Bài giảng : Chapter 2: Core C# Programming Constructs
Nội dung :
2.1 C# Is a Strongly Typed Language
2.2 Expressions
2.3 Statements and Expressions
2.4 Types and Variables
2.5 Namespaces
2.6 Control Flow
Summary
Bài tập : Week 2
Bài Lab : Lab 2
Video training
Bài giảng : Chapter 3: Object-Based Programming
Nội dung :
3.1 Introduction
3.2 Implementing a Time Abstract Data Type with a Class
3.3 Class Scope
3.4 Controlling Access to Members
3.5 Initializing Class Objects: Constructors
3.6 Using Overloaded Constructors
3.7 Properties
3.8 Composition: Objects References as Instance Variables of Other Classes
3.9 Using the this Reference
3.10 Garbage Collection
3.11 static Class Members
3.12 const and readonly Members
3.13 Indexers
3.14 Data Abstraction and Information Hiding
3.15 Software Reusability
3.16 Namespaces and Assemblies
Summary
Bài tập : Week 3
Bài Lab : Lab 3
Video training
Bài giảng: Chapter4: Understanding Object-Oriented Programming: Inheritance
Nội dung :
4.1 Introduction
4.2 Base Classes and Derived Classes
4.3 protected and internal Members
4.4 Relationship between Base Classes and Derived Classes
4.5 Case Study: Three-Level Inheritance Hierarchy
4.6 Constructors and Destructors in Derived Classes
4.7 Software Engineering with Inheritance
Summary
Bài tập : Week 4
Bài Lab : Lab 4
Video training
Bài giảng: Chapter 5: Understanding Object-Oriented Programming: Polymorphism
Nội dung :
5.1 Introduction
5.2 Derived-Class-Object to Base-Class-Object Conversion
5.3 Type Fields and switch Statements
5.4 Polymorphism Examples
5.5 Abstract Classes and Methods
5.6 Case Study: Inheriting Interface and Implementation
5.7 sealed Classes and Methods
5.8 Case Study: Payroll System Using Polymorphism
5.9 Case Study: Creating and Using Interfaces
5.10 Delegates
5.11 Operator Overloading
Summary
Bài tập : Week 5
Bài Lab : Lab 5
Video training
Bài giảng : Chapter 6: Arrays, Collection Types, and Iterators
Nội dung :
6.1 Introduction to Arrays
6.2 Multidimensional Rectangular Arrays
6.3 Multidimensional Jagged Arrays
6.4 Collection Types
6.5 Iterators
6.6 Collection Initializers
Summary
Bài tập : Week 6
Bài Lab : Lab 6
Video training
Bài giảng: Chapter 7: Working with Interfaces
Nội dung :
7.1 Interfaces Define Types
7.1 Defining Interfaces
7.1 Implementing Interfaces
7.1 Interface Member Matching Rules
7.1 Explicit Interface Implementation with Value Types
7.1 Versioning Considerations
7.1 Contracts
7.1 Choosing Between Interfaces and Classes
Summary
Bài tập : Week 7
Bài Lab : Lab 7
Video training
Bài giảng: Chapter 8: Understanding Structured Exception Handling
Nội dung :
8.1 Introduction
8.2 Exception Handling Overview
8.3 Example: DivideByZeroException
8.4 .NET Exception Hierarchy
8.5 finally Block
8.6 Exception Properties
8.7 Programmer-Defined Exception Classes
8.8 Handling Overflows with Operators checked and unchecked
Summary
Bài tập : Week 8
Bài Lab : Lab 8
Video training
Bài giảng: Chapter 9: Generics
Nội dung :
9.1 Difference Between Generics and C++ Templates
9.2 Efficiency and Type Safety of Generics
9.3 Generic Type Definitions and Constructed Types
9.4 Generic Classes and Structs
9.5 Generic Interfaces
9.6 Generic Methods
9.7 Generic Delegates
9.8 Generic Type Conversion
9.9 Default Value Expression
9.10 Nullable Types
9.11 Constructed Types Control Accessibility
9.12 Generics and Inheritance
9.13 Constraints
9.14 Constraints on Nonclass Types
9.15 Generic System Collections
9.16 Generic System Interfaces
9.17 Select Problems and Solutions
9.18 Conversion and Operators Within Generic Types
9.19 Creating Constructed Types Dynamically
Summary
Bài tập : Week 9
Bài Lab : Lab 9
Video training
Bài giảng: Chapter 10: Delegates, Events, and Lambdas
Nội dung :
10.1 Understanding the .NET Delegate Type
10.2 Defining a Delegate in C#
10.3 The System.MulticastDelegate and System.Delegate Base Classes
10.4 The Simplest Possible Delegate Example
10.5 Retrofitting the Car Type with Delegates
10.6 A More Elaborate Delegate Example
10.7 Understanding Delegate Covariance
10.8 Creating Generic Delegates
10.9 Understanding C# Events
10.10 The Generic EventHandler<T> Delegate
10.11 Understanding C# Anonymous Methods
10.12 Understanding Method Group Conversions
10.13 The C# 2008 Lambda Operato
Summary
Bài tập : Week 10
Bài Lab : Lab 10
Video training
Bài giảng: Chapter 11: Threading in C#
Nội dung :
11.1 Threading in C# and .NET
11.2 Synchronizing Work Between Threads
11.3 Using ThreadPool
Summary
Bài tập : Week 11
Bài Lab : Lab 11
Video training
Bài giảng: Chapter 12: Working with Strings
Nội dung :
12.1 String Overview
12.2 String Literals
12.3 Format Specifiers and Globalization
12.4 Working with Strings from Outside Sources
12.5 StringBuilder
12.6 Searching Strings with Regular Expressions
Summary
Bài tập : Week 12
Bài Lab : Lab 12
Video training
Bài giảng: Chapter 13: File I/O and Isolated Storage
Nội dung :
13.1 Introduction
13.2 Data Hierarchy
13.3 Files and Streams
13.4 Classes File and Directory
13.5 Creating a Sequential-Access File
13.6 Reading Data from a Sequential-Access File
13.7 Random-Access Files
13.8 Creating a Random-Access File
13.9 Writing Data Randomly to a Random-Access File
13.10 Reading Data Sequentially from a Random-Access File
13.11 Case Study: A Transaction-Processing Program
Summary
Bài tập : Week 13
Bài Lab : Lab 13
Video training
Bài giảng: Chapter 14: C# 2008 Language Features
Nội dung :
14.1 Understanding Implicitly Typed Local Variables
14.2 Understanding Automatic Properties
14.3 Understanding Extension Methods
14.4 Understanding Partial Methods
14.5 Understanding Object Initializer Syntax
14.6 Understanding Anonymous Types
Summary
Bài tập : Week 14
Bài Lab : Lab 14
Video training
Bài giảng: Chapter 15: An Introduction to LINQ
Nội dung :
15.1 Understanding the Role of LINQ
15.2 A First Look at LINQ Query Expressions
15.3 LINQ and Generic Collections
15.4 LINQ and Nongeneric Collections
15.5 The Internal Representation of LINQ Query Operators
15.6 Investigating the C# LINQ Query Operators.
Summary
Bài tập : Week 15
Bài Lab : Lab 15
Video training