Share via


Tài liệu phục vụ giảng dạy ngôn ngữ lập trình CSHARP

clip_image002

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:

  1. 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.
  2. 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.
  3. 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