BÀI 1: KINH NGHIỆM XÂY DỰNG CHƯƠNG TRÌNH MÔN TIẾNG
ANH CHUYÊN NGÀNH 1 VÀ 2
1. Cơ sở lý luận
Để xây dựng chương trình môn học thì cần bắt đầu từ đề cương chi
tiết. Đề cương chi tiết của môn học gồm có các phần sau:
1. Tên môn học – Mã môn học
2. Điều kiện tiên quyết: Những môn học cần hoàn thành trước môn
học này
3. Mục tiêu môn học
Những mục tiêu mà môn học cần đạt được theo kiến thức, kỹ năng,
thái độ.
4. Nội dung chi tiết
Nội dung chi tiết được chia theo từng chương, bài, các đề mục chính.
5. Cách kiểm tra đánh giá
Nêu rõ hình thức kiểm tra, đánh giá, các điểm thành phần.
6. Tài liệu tham khảo chính
Hiện nay khoa Công nghệ thông tin – Đại học Sư phạm Hà Nội
chúng tôi sử dụng cuốn English for Computing của Thạc Bình Cường là giáo
trình chính. Các nội dung dạy chúng tôi bám sát theo quyển giáo trình này.
Ngoài ra chúng tôi cũng có bổ sung các tư liệu để tăng cường khả năng nghe
nói của sinh viên cũng như cập nhật một số kiến thức Công nghệ thông tin
mới.
53 trang |
Chia sẻ: linhmy2pp | Ngày: 09/03/2022 | Lượt xem: 624 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Tài liệu Tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
m định đề cương
8. Xây dựng bài giảng
9. Thẩm định bài giảng
10. Triển khai thử nghiệm
C. Chương trình chi tiết
1. Course Name: Object-Oriented Programming With C++, COMP 240
2. Credits: 03
3. Plan
- Lecture hall: 45 hours
+ Class: 35 hours
+ Assignment: 5 hours
+ Discussions 0 hours
15 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
+ Experiment: 5 hours
- Self- study: 90 hours
4. Prerequisites
Students with the completion of Introduction to Informatics (COMP 103) is
eligible to enroll this course.
5. Course objectives
Upon completion of this course, students should:
- Understand the basic concepts and principles of structured
programming.
- Understand the basic concepts and principles of object oriented
programming.
- Produce sample test cases, pseudocode or an incremental coding plan
for a given programming problem statement.
- Be able to design, write and test a C++ program to implement a
working solution to a given problem specification.
- Understand the operation of common data structures and algorithms.
6. Course description
This course is designated to provide students basic principles of object
oriented programming with a specific programming language C++. It is also
oriented towards practical skills including current C++ programming
technologies for graphical user interfaces (GUIs)
Above contents can be organized in ordering chapters as follows:
- Chapter 1. Introduction: What is object oriented programming?
Why do we need objectoriented. Programming characteristics of
object-oriented languages. C and C++.
- Chapter 2. C++ Programming basics: Output using cout. Directives.
Input with cin. Type bool. The setw manipulator. Type conversions.
16 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
- Chapter 3. Functions: Returning values from functions. Reference
arguments. Overloaded function. Inline function. Default
arguments. Returning by reference.
- Chapter 4. Object and Classes: Making sense of core object
concepts (Encapsulation, Abstraction, Polymorphism, Classes,
Messages Association, Interfaces). Implementation of class in C++,
C++ Objects as physical object, C++ object as data types
constructor. Object as function arguments. The default copy
constructor, returning object from function. Structures and classes.
Classes objects and memory static class data. Const and classes.
- Chapter 5. Arrays and string: arrays fundamentals. Arrays as class
Member Data: Arrays of object, string, The standard C++ String
class
- Chapter 6. Operator overloading: Overloading unary operations.
Overloading binary operators, data conversion, pitfalls of operators
overloading and conversion keywords. Explicit and Mutable.
- Chapter 7. Inheritance: Concept of inheritance. Derived class and
based class. Derived class constructors, member function,
inheritance in the English distance class, class hierarchies,
inheritance and graphics shapes, public and private inheritance,
aggregation: Classes within classes, inheritance and program
development.
- Chapter 8. Pointer: Addresses and pointers. The address of operator
and pointer and arrays. Pointer and Faction pointer and C-types
string. Memory management: New and Delete, pointers to objects,
debugging pointers.
- Chapter 9. Streams and Files: Streams classes, Stream Errors, Disk
File I/O with streams, file pointers, error handling in file I/O with
member function, overloading the extraction and insertion
operators, memory as a stream object, command line arguments,
and printer output.
17 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
- Chapter 10. Templates and Exceptions: Function templates, Class
templates Exceptions
- Chapter 11. The Standard Template Library: Introduction
algorithms, sequence containers, iteators, specialized iteators,
associative containers, strong user-defined object, function objects.
7. Requirements
- Attend classed as required in university’s policies
- Hand out assignments to deadlines.
- Active in discussions
8. Textbooks and References
Textbooks
1. “Thinking in C++”, 2nd Edition, Bruce Eckel, President,
MindView, Inc.
2. “The Waite Group's Object-Oriented Programming in C++”, 3rd
Edition, Robert Lafore and Waite Group.
References
1. Stroustrup, Bjarne: The C + + Programming Language. Addison-
Wesley, 3rd Edition
2. Cargill, Tom A.: PI: A Case Study in Object-Oriented
Programming. SIGPLAN Notices, pp 350-360.
9. Evaluation
Class Participation: 10%
Midterm Exam: 30%
Final exam: 60%
10. Scale: 10
Follow the policy 43/2007/QĐ-BGDĐT, released in August 15, 2007 by
Ministry of Education and Training
18 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
11. Course content
CHAPTER 1: INTRODUCTION
1.1 Why do we need objected-oriented programming?
1.2 OOP: An approach to Organization
1.3 Encapsulation
1.4 Inheritance
1.5 The Need for C++
1.6 Characteristics of OOPs
- 16 principles of OOPs
1.7 C++ and C
CHAPTER 2: C++ PROGRAMMING BASICS
2.1 Basic program construction
2.1.1 Objects
2.1.2 Classes
2.1.3 Data abstraction & Encapsulation.
2.1.4 Inheritance
2.1.5 Polymorphism
2.1.6 Dynamic binding
2.1.7 Message passing
2.2 Basic Data Types in C++
2.2.1. Built in type
1.2.2. User defined type
1.2.3. Derived type
2.3. Variables in C++
19 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
2.3.1 Declaration of variables
2.3.2 Scope of variables
2.3.3 Dynamic initialization of variables
2.3.4 Reference variables
2.4 Operators in C++
2.4.1 Assignment
2.4.2 Arithmetic operators
2.4.3 Compound
2.4.4 Increase and decrease
2.4.5 Relational and equality operators
2.4.6 Logical operators
2.4.7 Conditional operator
2.5 Structures
2.5.1 Introduction
2.5.2 if – else Statement
2.5.3 Nested ifs
2.5.4 The switch Statement
2.5.5 The for Loop
2.5.6 The while Loop
2.5.7 The do-while Loop
2.5.8 Using break to Exit a Loop
2.5.9 Using the goto Statement
CHAPTER 3: FUNCTIONS
3.1 Introduction
3.2 Function
20 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
3.3 Arguments passed by value and by reference.
3.4 Default values in parameters
3.5 Overloaded functions
3.6 inline functions
3.7 Recursivity
CHAPTER 4: OBJECT AND CLASSES
4.1 Introduction to Classes
4.2 Class Definition
4.3 Classes and Objects
4.4 Access specifies
4.4.1 Private members
4.4.2 Public members
4.4.3 Protected members
4.5 Member Functions of a class
4.6 Passing and Returning Objects
4.7 Creating and Using a Copy Constructor
CHAPTER 5: ARRAYS AND STRINGS
5.1 Arrays fundamentals
5.2 One-dimensional arrays
5.3 Two-Dimensional Arrays
5.4 Arrays of Strings
5.5 Arrays of Objects
5.6 Introduction to strings class
5.7 C-string
5.8 The standard C++ string class
21 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
5.9 Input/output with string Objects
CHAPTER 6: OPERATOR OVERLOADING
6.1 Operator Overloading
6.2 Defining operator overloading
6.3 Unary Operator over loading
6.4 Binary Operator overloading
CHAPTER 7: INHERITANCE
7.1 Introduction
7.1.1 Inheritance
7.1.2 Need of Inheritance
7.2 Types of Inheritance
7.2.1 Single Inheritance
7.2.2 Multiple Inheritance
7.2.3 Hierarchical Inheritance
7.2.5 Hybrid Inheritance
7.3 Derived and Base Class
7.3.1 Base class
7.3.2 Derived class
7.4 Public Inheritance
7.5 Private Inheritance
7.6 Virtual Base Classes
7.7 Abstract Classes
7.8 Virtual Functions
7.9 Pure Virtual Functions
22 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
CHAPTER 8: POINTERS
8.1 Introduction
8.2 Pointer
8.3 The Pointer Operators
8.4 The Base Type of a Pointer
8.5 Assigning Values through a Pointer
8.6 Pointers and Arrays
8.7 Arrays of Pointers
8.8 Function Pointer
8.9 Assign an Address to a Function Pointer
8.10 Calling a Function using a Function Pointer
8.11 Pass a Function Pointer as an Argument
8.12 Return a Function Pointer
8.13 Pointers to Objects
8.14 Operators new and new[]
8.15 Operator delete and delete[]
CHAPTER 9: STREAMS AND FILES
9.1 Input Output With Files
9.1.1 Open a file
9.1.2 Close a file
9.2 Methods of Input and Output Classes
9.2.1 Extraction Operator >>
9.2.2 get()
9.2.3 get(char &ch)
9.2.4 get(char *buff, int buffsize, char delimiter='\n')
23 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
9.2.5 Getline
9.2.6 peek()
9.2.7 putback(char &ch)
9.2.8 read(char *buff, int count)
9.3 Text mode files
9.4 State flags
9.5 get and put stream pointers
9.5.1 ifstream
9.5.2 ofstream
9.5.3 fstream
9.6 Binary files
9.7 I/O Manipulators
CHAPTER 10: TEMPLATES AND EXCEPTIONS
10.1 Function templates
10.2 Class templates
10.3 Exceptions
10.4 Exception specifications
CHAPTER 11: THE C++ STANDARD TEMPLATE LIBRARY
11.1 Introduction
11.2 Standard Templates
11.3 Iterators
11.4 Containers
11.5 Algorithms
11.6 Examples
24 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
12. Course schedule
Chapter Total Lecture Assignment Experiment
1 Chapter 1 2 2
2 Chapter 2 5 3 2
3 Chapter 3 5 3 2
4 Chapter 4 3 3
5 Chapter 5 3 3
6 Chapter 6 3 3
7 Chapter 7 6 3 3
8 Chapter 8 6 3 3
9 Chapter 9 3 3
10 Chapter 10 3 3
11 Chapter 11 3 3
25 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
BÀI 3: KINH NGHIỆM XÂY DỰNG CHƯƠNG TRÌNH MÔN CẤU
TRÚC DỮ LIỆU VÀ GIẢI THUẬT
1.1 Introduction
1.1.1. Course information
1. Course: DATA STRUCTURE & ALGORITHMS
Course ID: COMP 226
2. Number of credits: 03
3. Level: Second-year Student (Sophomore)
4. Time table:
- On class: 45 hours.
+ Theory: 30 hours.
+ Exercise: 7 hours.
+ Discussion: 0 hours.
+ Practice: 8 hours.
- Self-study: 60 hours.
5. Prerequisites: Discrete Mathematics (COMP 122)
1.1.2. Aim of the course
This course has three primary goals. The first is to present the
commonly used data structures. These form a programmer’s basic data
structure “toolkit.” For many problems, some data structure in the toolkit
provides a good solution.
The second goal is to introduce the idea of tradeoffs and reinforce the
concept that there are costs and benefits associated with every data structure.
This is done by describing, for each data structure, the amount of space and
time required for typical operations.
26 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
The third goal is to teach how to measure the effectiveness of a data
structure or algorithm. Only through such measurement you can determine
which data structure in your toolkit is most appropriate for a new problem.
The techniques presented also allow you to judge the merits of new data
structures that you or others might invent.
By the end of this course students should be able to:
Knowledge:
Achieve an understanding of fundamental data structures and
algorithms and the tradeoffs between different implementations of these
abstractions.
Theoretical analysis, implementation, and application.
Lists, Stacks, Queues
Heaps
Trees and balanced trees
Searching algorithms
Sorting algorithms
Graphs
Skills:
Design algorithms to solve real-life problems using:
The tools introduced
Analyze your solution
Efficiently implement your solution
Attitude
Recognizing the importance of the subject, then students have serious
attitude, keen to learn and practice.
27 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
1.1.3. Use of language
The programming examples are written in Java. As with any
programming language, Java has both advantages and disadvantages. Java is a
small language. There usually is only one way to do something, and this has
the happy tendency of encouraging a programmer toward clarity when used
correctly. In this respect, it is superior to C or C++. Java serves nicely for
defining and using most traditional data structures such as lists and trees. On
the other hand, Java is quite poor when used to do file processing, being both
cumbersome and inefficient. It is also a poor language when fine control of
memory is required. Since I wish to stick to a single language throughout the
course, like any programmer I must take the bad along with the good. The
most important issue is to get the ideas across, whether or not those ideas are
natural to a particular language of discourse. Most programmers will use a
variety of programming languages throughout their career, and the concepts
described in this course should prove useful in a variety of circumstances.
I do not wish to discourage those unfamiliar with Java from students. I
have attempted to make the examples as clear as possible while maintaining
the advantages of Java. Java is used here strictly as a tool to illustrate data
structures concepts. Fortunately, Java is an easy language for C or Pascal
programmers to read with a minimal amount of study of the syntax related to
object-oriented programming. In particular, I make use of Java’s support for
hiding implementation details, including features such as classes, private class
members, and interfaces. These features of the language support the crucial
concept of separating logical design, as embodied in the abstract data type,
from physical implementation as embodied in the data structure.
I make no attempt to teach Java within this course. An Appendix should be
provided that describes the Java syntax and concepts necessary to understand
the program examples.
Inheritance, a key feature of object-oriented programming, is used only
sparingly in the code examples. Inheritance is an important tool that helps
programmers avoid duplication, and thus minimize bugs. From a pedagogical
standpoint, however, inheritance often makes code examples harder to
understand since it tends to spread the description for one logical unit among
28 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
several classes. Thus, some of my class definitions for objects such as tree or
list nodes do not take full advantage of possible inheritance from earlier code
examples. This does not mean that a programmer should do likewise.
Avoiding code duplication and minimizing errors are important goals. Treat
the programming examples as illustrations of data structure principles, but do
not copy them directly into your own programs.
I make a distinction in the course between “Java implementations” and
pseudocode.” Code labeled as a Java implementation has actually been
compiled and tested on one or more Java compilers. Pseudocode examples
often conform closely to Java syntax, but typically contain one or more lines
of higher level description. Pseudocode is used where I perceived a greater
pedagogical advantage to a simpler, but less precise, description.
1.1.4. Textbooks
Primary Textbook:
1. Robert Sedgewick. Algorithms in Java: Parts 1-4. Addison Wesley,
third edition, 2002.
2. Michael T. Goodrich and Roberto Tamassia. Data Structures &
Algorithms in Java. John Wiley & Sons, Inc, fourth edition, 2002.
3. Iain T. Adamson. Data Structures and Algorithms: A First Course.
Springer, 1996.
4. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and
Clifford Stein. Introduction to Algorithms. The MIT Press, third
edition, 2009.
5. Gilles Brassard and Paul Bratley. Fundamentals of Algorithmics.
Prentice hall, 1996.
Other Books:
6. Douglas Baldwin and Greg W. Scragg. Algorithms and Data
Structures: The Science of Computing. Charles river media, 2004.
7. Mark A. Weiss. Data Structures and Algorithm Analysis in C++.
Florida international university, fourth edition, 2014.
29 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
8. Alfred V. Aho, John E. Hopcroft and Jeffrey D. Ullman. Data
Structures and Algorithms.
9. Bruno R. Preiss. Data Structures and Algorithms with Object-Oriented
Design Patterns in Java. 1999.
10. Peter Drake. Data Structures and Algorithms in Java. Prentice hall,
2005.
11. Robert L. Kruse and Alexander J. Ryba. Data Structures and Program
Design in C++. Prentice hall, 2000.
12. Dinesh P. Mehta and Sartaj Sahni. Handbook of Data Structures and
Applications. Chapman & Hall/CRC, 2005.
1.2 Brief description of course content
1.2.1 Contents
Chapter 1: Data Structures and Algorithms
This first chapter sets the stage for what is to follow, by presenting
some higher-order issues related to the selection and use of data structures. We
first examine the process by which a designer selects a data structure
appropriate to the task at hand. We then consider the role of abstraction in
program design. We briefly consider the concept of a design pattern and see
some examples. The chapter ends with an exploration of the relationship
between problems, algorithms, and programs.
Chapter 2: Mathematical Preliminaries
This chapter presents mathematical notation, background, and
techniques used throughout the course.
Chapter 3: Algorithm Analysis
This chapter introduces the motivation, basic notation, and fundamental
techniques of algorithm analysis. We focus on a methodology known as
asymptotic algorithm analysis, or simply asymptotic analysis. Asymptotic
analysis attempts to estimate the resource consumption of an algorithm. It
allows us to compare the relative costs of two or more algorithms for solving
30 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
the same problem. Asymptotic analysis also gives algorithm designers a tool
for estimating whether a proposed solution is likely to meet the resource
constraints for a problem before they implement an actual program. After
studying this chapter, you should understand
the concept of a growth rate, the rate at which the cost of an algorithm
grows as the size of its input grows;
the concept of upper and lower bounds for a growth rate, and how to
estimate these bounds for a simple program, algorithm, or problem; and
the difference between the cost of an algorithm (or program) and the
cost of a problem.
The chapter concludes with a brief discussion of the practical difficulties
encountered when empirically measuring the cost of a program, and some
principles for code tuning to improve program efficiency.
Chapter 4: Lists, Stacks, and Queues
This chapter describes representations for lists in general, as well as
two important list-like structures called the stack and the queue. Along with
presenting these fundamental data structures, the other goals of the chapter are
to: (1) Give examples of separating a logical representation in the form of an
ADT (Abstract Data Type) from a physical implementation for a data
structure. (2) Illustrate the use of asymptotic analysis in the context of some
simple operations that students might already be familiar with. In this way
student can begin to see how asymptotic analysis works, without the
complications that arise when analyzing more sophisticated algorithms and
data structures. (3) Introduce the concept and use of dictionaries and
comparator classes.
We begin by defining an ADT for lists. Two implementations for the
list ADT: the array-based list and the linked list are covered in detail and their
relative merits discussed. And then, stacks and queues are studied,
respectively. Sample implementations for each of these data structures are
presented.
31 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
Chapter 5: Binary Trees
This chapter describes contents as follows:
Presenting definitions and some key properties of binary trees.
Discusses how to process all nodes of the binary tree in an organized
manner. Presents various methods for implementing binary trees and
their nodes.
Present three examples of binary trees used in specific applications: the
Binary Search Tree (BST) for implementing dictionaries, heaps for
implementing priority queues, and Huffman coding trees for text
compression. The BST, heap, and Huffman coding tree each have
distinctive features that affect their implementation and use.
Chapter 6: General Trees
When we permit trees to have nodes with an arbitrary number of
children, they become much harder to implement than binary trees. We
consider such trees in this chapter. To distinguish them from the more
commonly used binary tree, we use the term general tree.
Present general tree terminology.
Present a simple representation for solving the important problem of
processing equivalence classes. Several pointer-based implementations
for general trees are covered.
Aside from general trees and binary trees, there are also uses for trees
whose internal nodes have a fixed number K of children where K is
something other than two. Such trees are known as K-ary trees.
Chương 7: Sorting
Because sorting is so important, naturally it has been studied
intensively and many algorithms have been devised. Some of these algorithms
are straightforward adaptations of schemes we use in everyday life. Others are
totally alien to how humans do things, having been invented to sort thousands
or even millions of records stored on the computer. After years of study, there
32 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
are still unsolved problems related to sorting. New algorithms are still being
developed and refined for special purpose applications.
While introducing this central problem in computer science, this
chapter has a secondary purpose of illustrating many important issues in
algorithm design and analysis. The collection of sorting algorithms presented
will illustrate that divide and conquer is a powerful approach to solving a
problem, and that there are multiple ways to do the dividing. Mergesort
divides a list in half. Quicksort divides a list into big values and small values.
Sorting algorithms will be used to illustrate a wide variety of analysis
techniques in this chapter. We’ll find that it is possible for an algorithm to
have an average case whose growth rate is significantly smaller than its worse
case (Quicksort). We’ll see how it is possible to speed up sorting algorithms
(Quicksort) by taking advantage of the best case behavior of another algorithm
(Insertion sort). We’ll see several examples of how we can tune an algorithm
for better performance. We’ll see that special case behavior by some
algorithms makes them the best solution for special niche applications
(Heapsort). Sorting provides an example of a significant technique for
analyzing the lower bound for a problem.
The present chapter covers several standard algorithms appropriate for
sorting a collection of records that fit in the computer’s main memory. It
begins with a discussion of three simple, but relatively slow, algorithms
requiring (𝑛2) time in the average and worst cases. Several algorithms with
considerably better performance are then presented, some with (𝑛 log 𝑛)
worst-case running time. The final sorting method presented requires only
(𝑛) worst-case time under special conditions. The chapter concludes with a
proof that sorting in general requires (𝑛 log 𝑛) time in the worst case.
Chapter 8. Searching
We can categorize search algorithms into three general approaches:
1. Sequential and list methods.
2. Direct access by key value (hashing).
3. Tree indexing methods.
33 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
Chapter 9. Graphs
We introduce some basic graph terminology and then define two
fundamental representations for graphs, the adjacency matrix and adjacency
list. We then presents a graph ADT and simple implementations based on the
adjacency matrix and adjacency list. We discuss some algorithms on graph:
Two most commonly used graph traversal algorithms, called depth-first
and breadth-first search, with application to topological sorting.
Algorithms for solving some problems related to finding shortest routes
in a graph.
Algorithms for finding the minimum-cost spanning tree, useful for
determining lowest-cost connectivity in a network.
Besides being useful and interesting in their own right, these algorithms
illustrate the use of some data structures presented in earlier chapters.
1.2.2 Exercise and projects
Proper implementation and analysis of data structures cannot be learned
simply. Students must practice by implementing real programs, constantly
comparing different techniques to see what really works best in a given
situation.
One of the most important aspects of a course in data structures is that it is
where students really learn to program using pointers and dynamic memory
allocation, by implementing data structures such as linked lists and trees. It's
also where students truly learn recursion. In our curriculum, this is the first
course where students do significant design, because it often requires real data
structures to motivate significant design exercises. Finally, the fundamental
differences between memory-based and disk-based data access cannot be
appreciated without practical programming experience. For all of these
reasons, a data structures course cannot succeed without a significant
programming component. In our department, the data structures course is
arguably the most difficult programming course in the curriculum.
34 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
Students should also work problems to develop their analytical abilities. I
provide over 500 exercises and suggestions for programming projects. I urge
readers to take advantage of them.
1.3 Progress
STT Chapter Total Lecture Assignment Experiment
1 Chapter 1 5 3 2 0
2 Chapter 2 5 3 2 0
3 Chapter 3 6 4 2 0
4 Chapter 4 6 4 2 0
5 Chapter 5 6 4 2 0
6 Chapter 6 5 3 2 0
7 Chapter 7 4 3 1 0
8 Chapter 8 4 3 1 0
9 Chapter 9 4 3 1 0
35 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
BÀI 4: KINH NGHIỆM XÂY DỰNG CHƯƠNG TRÌNH TẬP HUẤN
CHO GIÁO VIÊN PHỔ THÔNG GIẢNG DẠY BẰNG TIẾNG ANH
1.1 Cơ sở lý thuyết
1. Văn bản về việc tập huấn
- Quyết định 469/QĐ-BGDĐT ngày 14/02/2014 của Bộ Giáo dục và Đào tạo;
- Quyết định 666/QĐ-BGDĐT ngày 27/02/2014 của Bộ Giáo dục và Đào tạo;
- Quyết định 331/KH–BGDĐT ngày 14/5/ 2014 của Bộ Giáo dục và Đào tạo;
2. Mục đích tập huấn
Để tiếp tục phát huy hiệu quả các đợt tập huấn giáo viên dạy các môn khoa
học bằng tiếng Anh trong trường trung học phổ thông (THPT) năm 2013, Bộ
Giáo dục và Đào tạo (GDĐT) tổ chức các đợt tập huấn tiếp theo nhằm mục đích:
- Nâng cao thêm một bước năng lực nghe, nói, đọc, viết bằng tiếng Anh
cho giáo viên dạy các môn Khoa học bằng tiếng Anh trong trường THPT
- Củng cố chất lượng hiện có và nâng cao trình độ cho đội ngũ giáo viên
nòng cốt nhằm sớm mở rộng diện thí điểm dạy các môn khoa học bằng
tiếng Anh trong trường THPT.
3. Nội dung tập huấn
- Bổ sung nhằm gia tăng vốn từ vựng đời sống và từ vựng phục vụ cho từng
môn học, củng cố những tri thức về ngữ pháp tiếng Anh về cả lí thuyết và
thực hành.
- Luyện tập kĩ năng nghe - nói giữa giáo viên và học sinh, đặc biệt chú trọng
việc phát âm theo đúng chuẩn mực nhằm nâng cao hiệu quả trong việc
truyền thụ và tiếp nhận tri thức khoa học của từng môn học và đối thoại
bằng tiếng Anh trong quá trình dạy học.
- Thực hành một số giờ lên lớp bằng tiếng Anh theo từng môn học; tạo môi
trường và nâng cao kĩ năng giao tiếp; giúp giáo viên tự tin và làm chủ tình
thế; chia sẻ và trao đổi kinh nghiệm dạy học bằng tiếng Anh.
4. Đối tượng học viên tham gia tập huấn
- Là giáo viên dạy các môn Toán, Vật lý, Hóa học, Sinh học, Tin học
trường THPT thuộc các sở giáo dục và đào tạo (sở GDĐT); các trường
thực hành sư phạm (THSP) thuộc Đại học Sư phạm (ĐHSP), trường
36 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
THPT chuyên thuộc ĐHSP, Đại học Quốc gia Hà Nội (ĐHQGHN), Đại
học Quốc gia Thành phố Hồ Chí Minh (ĐHQGTP. Hồ Chí Minh), có đủ
năng lực chuyên môn và khả năng sử dụng Anh ngữ trong giảng dạy các
môn học trên.
- Mỗi sở GDĐT đề xuất số lượng giáo viên THPT từ 2 - 3 giáo viên / môn
học. Các trường THPT thực hành sư phạm, THPT chuyên thuộc các
trường ĐHSP, ĐHQG cử 01 giáo viên / môn học.
5. Địa điểm và thời gian tập huấn
a) Địa điểm 1 : TP. Hải Phòng
- Dành cho học viên thuộc 25 tỉnh, thành phố: Hà Nội, Hà Nam, Ninh Bình
Nam Định, Hải Phòng, Vĩnh Phúc, Bắc Ninh, Hải Dương, Hưng Yên,
Thái Bình, Hà Giang, Cao Bằng, Lào Cai, Bắc Kạn, Lạng Sơn, Tuyên
Quang, Yên Bái, Thái Nguyên, Phú Thọ, Bắc Giang, Quảng Ninh, Lai
Châu, Điện Biên, Sơn La, Hòa Bình;
- Thời gian dự kiến: 05 ngày, trong tháng 1/2015;
- Số học viên dự kiến: 300.
b) Địa điểm 2 : Tại TP. Đà Nẵng
- Dành cho học viên của 16 tỉnh, thành phố: Thanh Hóa, Nghệ An, Hà Tĩnh,
Quảng Bình, Quảng Trị, Thừa Thiên-Huế, Đà Nẵng, Quảng Nam, Quảng
Ngãi, Bình Định, Phú Yên, Khánh Hòa, Kon Tum, Gia Lai, Đắk Lắk, Đắk
Nông;
- Thời gian dự kiến: 05 ngày, trong tháng 1/2015;
- Số học viên dự kiến: 230.
c) Địa điểm 3: Tại TP. Hồ Chí Minh
- Dành cho học viên của 22 tỉnh, thành phố: TP. Hồ Chí Minh, Ninh Thuận,
Lâm Đồng, Bình Phước, Tây Ninh, Bình Dương, Đồng Nai, Bình Thuận,
Bà Rịa-Vũng Tàu, Long An, Đồng Tháp, An Giang, Tiền Giang, Vĩnh
Long, Bến Tre, Kiên Giang, Cần Thơ, Hậu Giang, Trà Vinh, Sóc Trăng,
Bạc Liêu, Cà Mau;
- Thời gian dự kiến: 05 ngày, trong tháng 1/2015;
- Số học viên dự kiến: 250.
6. Các đơn vị tham gia thi hành
37 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
- Vụ Giáo dục Trung học
- Chương trình phát triển giáo dục trung học
- Các sở giáo dục và đào tạo; các trường THSP, trường THPT chuyên thuộc
ĐHSP, ĐHQGHN, ĐHQG TP. Hồ Chí Minh
7. Đội ngũ biên soạn tài liệu và tập huấn môn Tin học
Trường Đại học Sư phạm Hà Nội:
- PGS.TS. Hồ Cẩm Hà, khoa Công nghệ thông tin, ĐHSP Hà Nội
- PGS.TS. Nguyễn Thị Tĩnh, khoa Công nghệ thông tin, ĐHSP Hà Nội
- TS. Nguyễn Thế Lộc, khoa Công nghệ thông tin, ĐHSP Hà Nội
- ThS. Kiều Phương Thùy, khoa Công nghệ thông tin, ĐHSP Hà Nội
- ThS. Nguyễn Chí Trung, khoa Công nghệ thông tin, ĐHSP Hà Nội
Những cơ quan khác:
- TS. Quách Tất Kiên, Vụ GDTH
- TS. Trương Tất Hiển, Vụ GDTX
- TS. Đỗ Đức Đông, ĐHQG HN
1.2 Tiến trình
Phần II. KĨ THUẬT DẠY HỌC TÍCH CỰC
I. ACTIVITY 1
1. Task assignment
Among the following images, in your opinion, which is the best representation
of active learning processes, and which is the poorest representation of active
learning processes?
A.
B.
38 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
C.
D.
E.
F.
2. Execution
Trainees work in groups to come up with an answer and provide an
explanation.
3. Presentation and Discussion
Each group is to present and discuss with the class.
4. Trainer’s comment
Trainer gives general comment on the answers and move on to the next
activity.
II. ACTIVITY 2
1. Task assignment
- Read through the passage once to get the general idea.
- Read it again more slowly, trying to identify what the missing words or parts
of words are.
- Work in groups to discuss the missing words, and agree on the best possible
answer in each case.
- Answer the question
Adapting materials
You know what materials you are going to use in your training session. The
next step is to consider how they can be best used to develop active learning.
Active learning is very often associated with interactive and collaborative
activities, including group and pair work, debates, brain-storming,
investigations, problem trees etc, and your challenge as a trainer is to
transform the content of those materials into something that will engage your
E.
.
39 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
participants intellectually, verbally, visually or physically. In your plans for
using materials, we hope you will take into account points we have covered in
the Active Learning methodology modules, particularly the section on using
pair and group work, and on making effective use of learning aids.
We don’t just adapt materials for the sake of variety; we do it because – as you
know – different people learn best in different ways. Providing different
approaches to learning helps cater to different learning styles.
Much teaching / learning is built around written texts - sometimes presented as
lectures, sometimes as texts to be read. But to make the activity of learning
from such texts more challenging, more active, more interactive and more
memorable, there is a wide range of activity-types that can be used - for
example, putting extracts of a text in a logical order. Other learning can be
built on oral work, with a written text being the outcome of the learning
process - for example, a brainstorming activity followed by individual or
group writing. And some activities can be exclusively written or exclusively
oral, or any combination of the two. Most activities are built around some sort
of information gap, with the activity being to bridge the gap.
Question: What is Active Learning?
2. Trainees' Execution
- Trainees discuss in groups to execute the task assigned.
- When you have finished, ask your trainer where you can find the original
version of the text.
- In groups, compare your answers with the complete text, and discuss any
differences. If there were differences, were your answers acceptable
alternatives?
- Discuss the content of the reconstructed text.
3. Presentation and Discussion
- Trainees present to the class as groups and discuss about Active Learning.
4. Trainer's comment
Active learning is very often associated with interactive and collaborative
activities, including group and pair work, debates, brain-storming,
investigations, problem trees etc.
40 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
Answer key: Completed passage:
"You know what materials you are going to use in your training session. The
next step is to consider how they can be best used to develop active learning.
Active learning is very often associated with interactive and collaborative
activities, including group and pair work, debates, brain-storming,
investigations, problem trees etc, and your challenge as a trainer is to
transform the content of those materials into something that will engage your
participants intellectually, verbally, visually or physically. In your plans for
using materials, we hope you will take into account points we have covered in
the Active Learning methodology modules, particularly the section on using
pair and group work, and on making effective use of learning aids.
We don’t just adapt materials for the sake of variety; we do it because – as
you know – different people learn best in different ways. Providing different
approaches to learning helps cater to different learning styles.
Much teaching / learning is built around written texts - sometimes presented as
lectures, sometimes as texts to be read. But to make the activity of learning
from such texts more challenging, more active, more interactive and more
memorable, there is a wide range of activity-types that can be used - for
example, putting extracts of a text in a logical order. Other learning can be
built on oral work, with a written text being the outcome of the learning
process - for example, a brainstorming activity followed by individual or
group writing. And some activities can be exclusively written or exclusively
oral, or any combination of the two. Most activities are built around some sort
of information gap, with the activity being to bridge the gap."
III. ACTIVITY 3
Using Pair and Group Work
1. Imagine you have a group of about 30 participants, and imagine the
following situations. At any moment during the session, how many people are
getting the chance to speak?
a) Participants working in groups of 4 discussing a topic.
everyone
ON
TWO
8 or
less
about
15
41 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
b) One participant answering the trainer’s question.
c) Participants doing pair work
d) One person reading aloud from a book.
e) The trainer lecturing to participants.
2. Complete these sentences
Trainers should use pair and group work because
Trainers often don’t use pair and group work because
Trainers could use pair and group work if
3. Read the following statements. Decide if you agree or disagree with each.
everyone
ON
TWO
8 or
less
about
15
everyone
ON
TWO
8 or
less
about
15
everyone
ON
TWO
8 or
less
about
15
everyone
ON
TWO
8 or
less
about
15
42 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
Sitting in groups means some participants can't see the board so will not learn
anything.
If the participants are working in small groups, the trainer cannot monitor what
they are all saying
Putting participants into pairs or groups means the trainer loses control
Putting participants into groups means there will be too much noise
Moving the furniture makes too much noise and disturbs other sessions
Question: Who needs to practice thinking and talking through their ideas
most: the trainer or the participant?
Seating arrangements for a group
Think about the advantages and disadvantages of the physical seating
arrangements for groups. Fill in the chart below:
Lines or circles?
Line:
O O O O O O O
O = participant
Circle:
O O
O O
O O
Advantages: Advantages:
Disadvantages: Disadvantages:
43 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
Can you see everyone in the group’s face easily as you talk?
Can you hear everyone in the group easily when they speak?
What do you think is the ideal number in a group to maximise interaction?
This is a training room:
FRONT OF ROOM
Table
Table
Table
1O 2 O 3O 4O
5 O 6 O
Table
Table
Table
7O 8O 9O 10O
11O 12 O
Table
Table
Table
13O 14O 15O 16O
17 O 18 O
Table
Table
Table
19O 20O 21O 22O 23O 24O
Imagine you have a training room with tables that cannot easily be moved, yet
you want your class to do pair and group work, with new people to share
ideas with at each stage. Consider:
a) How could you put these learners into pairs?
b) How could you now put them into fresh pairs?
c) How could you group them into threes?
d) How could you group them into fresh groups of three?
O = participant
44 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
e) How could you group them into fours?
f) How could you group them into fresh groups of four?
When do we use which, and why? Look at the reasons a – g below the chart,
and write the letters in the appropriate column in the chart (note that some
might go in both boxes).
We use pair and group work We use plenary
For training activities, either pair or
group work can be done for these
reasons. Pair work maximises the
amount of interaction at anyone time.
Group work ensures more heads and
therefore more ideas or answers to
explore.
a) To give participants the chance to speak to the group as a whole
b) To promote active learning and reduce dependence on the trainer
c) For sharing ideas in preparation for an activity in order to activate the
necessary ideas
d) Before presenting answers / opinions resulting from the activities above to
the class so...
... participants have the chance to rehearse their answer
... and in doing so 'out of the limelight', help build their confidence
e) To introduce a topic / idea / activity to all participants
f) To do a final check so that all participants leave the activity with a clear
overview of the activity, and can check and compare their own answers.
g) To maximise learners’ speaking opportunities
45 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
Phần III. KẾ HOẠCH BÀI HỌC MẪU (Tin học 10, bài 3)
LESSON 3 – COMPUTER
I. Objectives
1. Knowledge
Recognize the basic components of a computer system and their
functions.
Know that hardware and software are both needed to operate
computer.
Know that a computer can exist in a veriety of sizes and
configurations.
2. Skill
Through the lesson, students will be able to:
Identify the basic components of a computer system.
Improve the reading comprehension skills, in particular, reading the
documents on the hardware of computers
Enhance the abilities of solving the problems related to the roles of
each components of a computer system.
Enhance the reading comprehension skills on documents on computer
systems and express their knowledge of computer system in English
Discussion on the main physical unit of a computer system and their
uses.
Enhance skills to articulate, read and translate to understand knowledge
of computer system in English.
3. Attitude
Computers are now part of our everyday life. Therefore, we need to have
knowledge about the computer system to use it effectively.
II. Preparation for teaching equipments
Dispense the hardcopies of this lesson for students before.
Compiling the teaching materials in power point.
Laptop, projector, screen, loudspeaker, video.
III. Teaching methods
46 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
Discussion on key terms or new concepts.
Students observe figures or watching video.
Focus on practice of listening, speaking, reading comprehension of
documents on components of a computer system.
Problem-based learning, , group discussion
IV. Key Terms
ALU Arithmetic Logic Unit đơn vị xử lý số học và
logic
Camera / 'kæmərə/ máy quay
Card / kɑ:d/ bo mạch, vỉ
CD (Compact Disk) /kəm'pækt disk/ đĩa quang (CDROM)
Configuration / kən,figju'rei∫n/ cấu hình máy tính
CPU (Central
Processing Unit)
/'sentrəl 'prousesiη
'ju:nit/
bộ xử lý trung tâm
CU (Control Unit) /kən'troul 'ju:nit/ đơn vị điều khiển
Hardware /'hɑ:dweə/ thiết bị phần cứng
Joystick /'dʒɔistik/ cần điều khiển
Laptop / 'læptɔp/ máy tính xách tay
Mainframe /'mein,frein/ máy tính rất lớn
Memory /'meməri/ bộ nhớ trong của máy
PC
V. Teaching and learning process
ACTIVITY 1. Make warm up
Task assignment:
47 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
List the names of softwares that you have ever used (Suggestion: to
play game, to learn, to edit images, to calculate, to listen to the music
)
List the names of computers that you have ever used or seen
(Suggestion: HP, DELL, SONY VAIO, SAMSUNG MOBI,)
Students’activities:
Students discuss in groups to complete the erased parts of the passage
Presentation and Discussion:
Students present in groups and discuss with the whole class
Teacher’s:
Teachers give comments, evaluations and corrections to students’
answers
ACTIVITY 2. Explain key terms and new concepts
Task assignment:
Read the following passage and answer the questions
Hardware consists of all the machinery and equipment in a computer
system. The hardware includes, among other devices, the keyboard, the
screen, the printer, and the “box”—the computer or processing device itself.
Hardware is useless without software.
Software, or programs, consists of all the electronic instructions that tell
the computer how to perform a task. These instructions come from a software
developer in a form (such as a CD, or compact disk) that will be accepted by
the computer. Examples are Microsoft Windows and Office XP/Vista.
Question 1. (Multiple choice test)
... are examples about hardware
A. The mouse
B. The CPU
C. CD (Compact Disk)
D. MS. Word 2010
Question 2. (Gap filling test)
48 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
Computer software, or simply software is any set of machine-readable
_____________ that directs a _____________ to perform specific operations.
Question 3.
_____________ is a software.
A. MS. Excel
B. every electronic instruction
C. CD (Compact Disk)
D. task
Students’activities:
Students discuss in groups to complete the erased parts of the passage
Presentation and Discussion:
Students present in groups and discuss with the whole class
Teacher’s:
Teachers give comments, evaluations and corrections to students’
answers
Answer key
Question 1: (A), (B) and (C)
Question 2:
Computer software, or simply software is any set of machine-readable
instructions that directs a computer's processor to perform specific
operations.
Question 2: (D)
ACTIVITY 3. Discussion
Have you ever wondered
How many types of computers?
What do you think about the clause: "There is a kind of computer
suitable for all types of jobs"?
Students’activities:
Students discuss in groups
Presentation and Discussion:
49 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
Students present in groups and discuss with the whole class
Teacher’s:
Teachers give comments, evaluations and corrections to students’
answers
ACTIVITY 4. Reading Comprehension and translation into Vietnam
Task assignment:
Read the following passage and translate it into Vietnamese
COMPUTER
Computer is an electronic device that stores, retrieves, and processes data, and
can be programmed with instructions. A computer is composed of hardware
and software, and can exits in a veriety of sizes and configurations.
In the 1950s and 1960s, computers were enormous machines affordable only
by large institutions. Now they come in a variety of shapes and sizes, which
can be classified according to their processing power: supercomputers,
mainframe computers, workstations, microcomputers and microcontrollers
Supercomputers are high-capacity machines with thousands of processors that
can perform more than several trillion calculations per second.
Students’activities:
Students discuss in groups
Presentation and Discussion:
Students present in groups and discuss with the whole class
Teacher’s:
Teachers give comments, evaluations and corrections to students’
answers
Answer key: Translation into Vietnamese
MÁY TÍNH ĐIỆN TỬ
Trong những năm 1950 và 1960, máy tính là những cỗ máy rất lớn, chúng chỉ
có thể chi trả được bởi các tổ chức lớn. Bây giờ máy tính có nhiều hình dạng
và kích cỡ, có thể được phân loại theo sức mạnh xử lý của chúng: siêu máy
tính, máy tính lớn, máy trạm, máy vi tính và vi điều khiển. Siêu máy tính là
những cỗ máy công suất lớn với hàng ngàn bộ vi xử lý có thể thực hiện nhiều
hơn một vài nghìn tỷ phép tính mỗi giây.
50 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
ACTIVITY 7. Listening and watching video clips in following page
https://www.youtube.com/watch?v=CVDYHUoZTsw
1. List the components of computer, which were mentioned in the video.
2. What is the main function of CPU?
ACTIVITY 8. Exercise. Multichoice questions
1. Which of the following devices converts computer output into
displayed images?
A. printer B. monitor
C. hard-disk drive D. processor
2. Which of the following computer types is the smallest?
A. mainframe B. microcomputer
C. microcontroller D. supercomputer E. workstation
3. Which of the following is a secondary-storage device?
A. processor B. memory chip
C. hard-disk drive D. printer E. monitor
4. Which of the following operations constitute the four basic operations
followed by all computers?
A. input B. storage
C. programming D. output E. processing
5. Speakers are an example of
A. an input device. B. an output device.
C. a processor. D. a storage device.
Students’activities:
Students discuss in groups
Presentation and Discussion:
Students present in groups and discuss with the whole class
Teacher’s:
Teachers give comments, evaluations and corrections to students’
answers
Answer key:
51 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
1.A, 2.C, 3.A, 4.E, 5.A
ACTIVITY 9. Filling the gap
1. __________ is an electronic device that stores, retrieves, and processes
data, and can be programmed with instructions.
2. __________ and software are both needed to operate computer.
3. Hardware consists of a system unit, input devices, __________ and
secondary storage devices
4. The __________significantly impacts overall computing power and
manages most of acomputer’s operations.
5. The __________holds the instructions and data wich are currently
being processed by the CPU
6. __________ (hard disk, Compact disk,) provide a permanent storage
of both data and programs.
7. __________ (mouse, keyboard,) enable data to go into the computer.
8. __________ (monitor, printer,) enable us to extract the finished
produce from the compute system.
Students’ Execution:
Students discuss in groups
Presentation and Discussion:
Students present in groups and discuss with the whole class
Teacher’s:
Teachers give comments, evaluations and corrections to students’
answers
Answer key:
52 Tài liệu tập huấn giảng viên dạy chuyên ngành bằng tiếng Anh
1. Computer
2. Hardware.
3. output devices
4. CPU.
5. main memory
6. Storage devices.
7. Input devices
8. Output devices
Các file đính kèm theo tài liệu này:
- cntt_tai_lieu_tap_huan_giang_vien_0128_1847574.pdf