Current location - Education and Training Encyclopedia - University rankings - Find the course list of computer department
Find the course list of computer department
First look at C language, data structure and algorithm, object-oriented programming (C++);

Look at the computer composition, operating system; Database system; Software engineering; Computer network; Compilation technology

Please read the information, which may be helpful.

According to the different requirements of different majors for computers, the teaching system of basic computer courses in Peking University can be divided into three categories: computer major (Class A), science non-computer major (Class B) and liberal arts major (Class C).

In order to understand the curriculum system and knowledge setting of computer basic teaching in Peking University, as well as the learning effect of students, we conducted a survey on the classified teaching of computer basic courses among computer basic teachers and junior science students in Peking University. The following focuses on the teaching system, curriculum, teaching effect, teaching experience and teaching reform of the basic computer course in Peking University.

First, the teaching system of basic computer courses in Peking University

The teaching system of basic computer courses in Peking University is divided into three categories according to computer major (Class A), science non-computer major (Class B) and liberal arts major. There are three basic computer courses in Class A and Class B: Introduction to Calculation, Data Structure and Algorithm, and Microcomputer Principle. In order to strengthen the programming ability of computer majors, the School of Information has specially set up two practical courses: programming practice, data structure and algorithm practice, and conducted systematic programming training for computer majors. Class C computer basic courses include two semesters: liberal arts computer basic (I) and liberal arts computer basic (II).

In the three types of teaching systems, there are presiding teachers and lecturers in different courses. These teachers from different departments of Peking University form teaching groups to jointly formulate teaching syllabus, select teaching materials, unify teaching progress and exchange teaching experience regularly.

1. Computer Basic Curriculum System for Computer Major (Class A)

When setting up basic courses for computer majors, we should consider the following:

(1) First of all, let students have an overall understanding of computer science and establish a holistic view of the subject, which is not only conducive to further study and choice in the future, but also conducive to a thorough understanding of the status and relationship of various disciplines in the overall discipline.

(2) When designing a program to solve the problem, besides analyzing the problem carefully, the most important thing is to choose the appropriate data structure and design an algorithm that meets the constraints (or better). Therefore, students majoring in computer science should master all kinds of common data structures, deeply understand the principles and temporal and spatial complexity of some classical algorithms such as quick sorting and dichotomy, and master the general steps of algorithm design.

(3) Computer majors should master the basic composition, working principle and common interface technology of microcomputers in theory and practice, establish the overall concept of microcomputers, and have the initial ability to develop hardware and software by using microcomputers. In addition, we should master the basic methods of assembly language programming and the debugging process on the computer.

For this reason, Peking University Computer Department has set up courses such as introduction to calculation, data structure and algorithm, data structure practice, programming practice and microcomputer principle. Among them, Introduction to Computing, as a general course, is a prerequisite for other courses.

2. Computer Basic Curriculum System for Science Non-computer Majors (Class B)

The purpose of non-computer majors in learning computer technology is very clear, not as a pure theoretical course, but as an applied technology. For non-computer majors in science and engineering, although they are not computer-centered in their study and work, they are often inseparable from computers. They need to combine their majors and use computers as tools to carry out their work.

Like the computer major, the basic computer course system for non-computer majors in science also includes three courses: introduction to calculation, data structure and algorithm, and microcomputer principle. However, due to their different learning purposes, their requirements are quite different.

3. Computer Basic Curriculum System for Liberal Arts Majors (Class C)

The requirements of liberal arts students in computer are lower than those of science non-computer majors, and the teaching content is more inclined to application. Combined with the use and application of computer, explain the basic knowledge and methods of computer and information technology. The computer basic course for liberal arts majors includes two semesters: computer basic for liberal arts (I) and computer basic for liberal arts (II).

Second, the main teaching objectives and teaching contents of this course

The host and speaker of each course refer to CCC 2002 (Computing Course in China, Computer Science and Technology Course in China), CC200 1, White Paper on Basic Computer Teaching and CFC 2004 (Basic Computer Course in China, Curriculum System of Basic Computer Education in China) and so on, and formulate the teaching outlines of different types of basic computer education courses.

1. Computer major

The basic computer courses for computer majors include five courses: introduction to calculation, data structure and algorithm, data structure and algorithm practice, programming practice and microcomputer principle. Among them, Introduction to Computing is a prerequisite course for other courses, while Data Structure and Algorithm and Data Structure and Algorithm Practice are two courses.

(1) Introduction to Computing A(54 hours, 3 credits)

The teaching goal of this course is to make computer majors have an overall understanding of computer science, so that students can have an overall view from the beginning, which will not only help them make choices for their further study in the future, but also help them thoroughly understand the status and relationship of various disciplines in the whole computer science. In teaching practice, we should not only follow people's cognitive habits, but also let students master the philosophy of this subject effectively.

The basic purpose of this course is to make students understand the meaning, content and methods of' computational science' and introduce it from three aspects: basic theory, basic development technology and application; Make students' understanding of computer go deep from perceptual and functional understanding to connotation and mechanism understanding; Make students have a general understanding of the contents of the main backbone courses of computer science and their relationship, and establish an overall impression on the curriculum system of computer science; In order to make students master the basic methods of programming, they can write applications in C++ language.

In teaching practice, we have adopted two main lines: introduction to computational science and C++ programming. That is to say, C++ programming is also explained while introducing computational science. Practice has proved that this has achieved good teaching results.

Teaching methods: there are both classroom teaching (multimedia teaching) and online classroom: /mzhang/ds/

The basic purpose of this course is: through the study of this course, students will basically master the design and analysis technology of data structure and algorithm, and improve the quality of program design; Choose a reasonable data structure according to the nature of the problem to be solved, and control the complexity of time and space when necessary; Cultivate students' logical thinking ability, independent thinking ability, problem analysis and problem solving ability and rigorous scientific style.

(4) Data structure and algorithm practice (4.2 credits per week)

This course is a compulsory course for undergraduates in Information College. The prerequisite requirements are: introduction to calculation A, and peer requirements: data structure and algorithm.

Course website: /mzhang/ds/ Xi Shi/index.htm.

The basic purposes of this course are: to cooperate with the study of "data structure" theory course and improve students' practical ability; Can independently realize ADT of common basic data structures, flexibly apply basic ADT and common data structure sets in STL, solve some practical problems, and independently write small and medium-sized applications; Using the basic data structure, combined with sorting, retrieval, file, indexing and other technologies, we can jointly write a relatively comprehensive large-scale application program.

(5) Microcomputer Principle A(54 hours, 3 credits)

This course is a compulsory course for undergraduates in Information College. The prerequisite requirements are: introduction to calculation a, digital logic.

The basic purpose of this course is: to master the basic composition, working principle and common interface technology of microcomputer from theory and practice; Master the basic methods of assembly language programming and the debugging process on the computer; Establish the overall concept of microcomputer, and initially have the ability to develop hardware and software with microcomputer.

Teaching methods: classroom teaching, demonstration and computer practice.

2. Non-computer science major

The basic computer courses for non-computer majors in science include introduction to calculation, data structure and algorithm, and microcomputer principle. Among them, Introduction to Computing is a prerequisite for the other two courses.

(1) Introduction to Computing B(5 1 class, 3 credits)

This course is a basic course B for science undergraduates.

Course website:/member/hujf/; FTP:// 162. 105 . 20 . 22/courses/; /Course/ computer course02/index.htm

The basic purposes of this course are: to make students understand the basic concepts and knowledge about computers and information technology, learn to use computers for information processing, use commonly used software and use the Internet; Teach the basic knowledge of programming, focusing on its basic parts.

Teaching method: classroom teaching, equipped with computer. Homework will be assigned in each class, including homework on the computer.

(2) Data Structure and Algorithm B(2 (classroom teaching) +2 (teaching experiment) class hours/week, 3 credits)

This course is a compulsory course for science undergraduates.

Prerequisite course: Introduction to Computation (By studying Introduction to Computation, students are required to have certain programming skills and skillfully use the control structure, function definition and call, array, structure and pointer of C.

Course website: /ds/

The basic requirements of this course are: to master the commonly used data structures such as linear table, stack, queue, string *, tree, graph and dictionary from three aspects: the logical structure of each data structure, a set of corresponding basic operations and implementation; Master several important sorting algorithms realized on sequential storage structure; Able to analyze the time and space complexity of the algorithm; For simple application problems, we should be able to choose appropriate data structures and design effective algorithms to solve them.

Teaching method: Classroom teaching is the main method, and computer experiments are arranged according to the teaching progress. The contents of the computer include: single linked list, stack, binary tree operation, graph traversal, retrieval and sorting.

(3) Microcomputer Principle B(54 hours, 3 credits)

This course is a restricted elective course for science non-computer majors. Because most non-computer majors have not studied the course of digital logic, the basic content of digital logic is added to the course of microcomputer principle in computer department. The depth of content is also slightly shallower than that of computer major.

The basic purpose of this course is to understand the basic composition, working principle and common interface technology of microcomputer; Master the basic methods of assembly language programming and the debugging process on the computer; Establish the overall concept of microcomputer.

Teaching methods: classroom teaching, demonstration and computer practice.

3. Humanities

Basic computer courses for liberal arts majors are taught in two semesters.

(1) Computer Foundation of Liberal Arts (1) (48 hours, 2 credits)

This course is a compulsory course for liberal arts. The purpose of this course is to introduce the development of computer, the use and maintenance of computer, the common knowledge of computer network and the use of commonly used software (such as word and excel) to liberal arts students. Through the study of this course, I hope that students can skillfully use computers and really use computers as a tool for daily life and study.

Course website: http:/162.105.30.75; http:// 162. 105 . 30 . 75:8080; http:// 162. 105 . 30 . 80:8000

Teaching method: Basic knowledge is taught in class, and other skills that need hands-on operation are experimented on the computer.

(2) Computer Foundation of Liberal Arts (Part II) (3.2 credits per week)

This course is a compulsory course for liberal arts. This course teaches advanced computer application technology, which consists of seven modules: network, multimedia, database, VB, ASP, web page making and dynamic web page making. We combine these seven modules to form seven courses. Students can choose 1 or 2 courses. These seven courses are: network and multimedia technology, network and database technology, network and VB programming, database and VB programming, VB and ASP, (static) web page making and dynamic web page making.

Third, the teaching effect of the survey results

A total of 626 students participated in the survey (including online papers and paper papers), including 343 students majoring in computer (referred to as Class A for short) (students who have only studied introduction to computing 153, students who have studied introduction to data structure and computing/7/kloc-0, students who have studied all basic courses 165438).

We conducted a survey from five aspects: basic information, teachers, teaching methods, teaching effect and curriculum arrangement, and made a preliminary analysis of the results. Due to the limited space of the article, this paper only gives the teaching effect, that is, the students' understanding of the course knowledge points.

In the investigation of teaching effect, we ask students to choose the knowledge points that they think are important for each course (multiple choices), so that students of different grades and majors can see their understanding of each course from the results.

This paper investigates the understanding of science (including computer) students on four courses: introduction to calculation, programming, data structure and algorithm, and microcomputer principle. Because the content of liberal arts courses is relatively simple, we put all the knowledge points together as a course (liberal arts computer foundation) to investigate.

1. Introduction to Calculation

The survey results show that "learning to write correct and concise programs" is considered by all students (including computer majors and non-computer majors) as the most important knowledge point in the course of Introduction to Computing. Computer students think that the least important knowledge points are machine instructions and assembly, followed by Boolean algebra and logic circuits. Non-computer majors believe that Boolean algebra and logic circuits are the least important knowledge points, followed by computational models.

There is no great fluctuation in the understanding of the importance of each knowledge point in the course of Introduction to Computing among freshmen majoring in computer science, while sophomores (students who have studied data structure and microcomputer principle) treat different knowledge points differently. Students in grade two generally think that knowledge points such as machine instruction and assembly, system software and application software, and computer network are not important, because the content is relatively simple (such as system software and application software), or they will learn later but are not eager to understand now (such as computer composition and architecture).

2. programming; arrange

The survey results show that students think that the most important knowledge point is pointer, followed by basic program structure; It is considered that the least important knowledge point is greedy method, and breadth first search. Students think pointer is the most important knowledge point in programming, which is related to our use of C/C++ as an introductory language in teaching.

Observing the views of three kinds of students majoring in computer science, we can see that with the deepening of study, the proportion of students who think array, recursion and backtracking are very important is increasing. For example, only 37% of students in Grade One think arrays are very important, but after Grade Two, the proportion rises to over 70%.

3. Data structure and algorithm

The survey results show that computer majors think that the first few most important knowledge points in data structure are sorting, binary tree, graph traversal and index (including B-tree /B+ tree); The least important knowledge point is advanced data structure (such as character tree, generalized table, AVL tree), followed by tree.

Science non-computer majors think that the most important knowledge points are linear tables, binary trees and sorting, the least important knowledge points are advanced data structures and indexes, followed by hashing and retrieval.

In teaching practice, our teaching focus is basically consistent with the most important knowledge points that students think. At the same time, what is not emphasized in the teaching process (such as advanced tree structure) is also considered unimportant by students.

4. Microcomputer Principle Course

The survey results show that for computer majors, the most important knowledge is assembly language program format, followed by CPU operation and timing, instruction coding format, 80x86 instruction system, the purpose of interrupt and the role of interrupt controller. The least important knowledge points are pseudo instructions and macro instructions, the function of external pins, the assembly representation of operands, and the expansion of storage space.

Non-computer majors in science believe that the most important knowledge points in microcomputer principle are timer/counter, the purpose of interrupt and the function of interrupt controller, the structure of memory and the working principle of memory in turn. The least important knowledge points are bus and common bus standards, pseudo-instructions and macro-instructions, expansion of storage space, etc.

5. Computer Foundation of Liberal Arts

Because the content of liberal arts courses is relatively simple, we put all the knowledge points together as a course (liberal arts computer foundation) to investigate.

The survey results show that liberal arts students are most interested in the following knowledge points: animation processing, presentation making, the function and usage of word processing software, computer security and common sense of crime; The most uninterested knowledge points are computer culture and information society, the introduction of morality and law related to computer application, the concept and development history of computer, software and intellectual property protection, information representation in computer, network teaching and distance education, etc.

6. Summary of teaching effect

After analyzing the survey data of various majors and grades, we can draw the following conclusions:

(1) In computer major, students of different grades may have different understanding of the same course; In non-computer majors, students of different grades have basically the same understanding of the same course. For example, computer majors' understanding of introduction to computing, knowledge points that freshmen think are more important, such as machine instruction and assembly, system software and application software, computer network, etc. It doesn't matter to sophomores. The reason is probably that the content is relatively simple, or you can learn it later.

(2) Regardless of computer major or science non-computer major, students generally think that the most important knowledge point in programming is pointer. This has a lot to do with the programming language we use in teaching, because C/C++ is generally used as the introductory language of programming in current teaching practice, and the pointer in C/C++ is powerful but not easy to master, so most students think that pointer is the most important knowledge point in programming. Java grammar has no pointers, and the object-oriented style is more complete, so students may learn it easier than C++. Whether to use Java as an introductory language is a question worthy of our consideration.

(3) Students think that the most important knowledge points in data structure are quick sorting, binary tree, traversal of binary tree, traversal of graph, shortest path, B-tree /B+ tree, etc. This is basically consistent with what we focus on in teaching.

(4) Liberal arts students are most interested in animation processing, presentation making, the function and usage of word processing software, computer security and common sense of crime, but are not interested in computer culture and information society, computer application-related ethics and law introduction, computer concept and development history, software and intellectual property protection, information representation in computers, network teaching and distance education. It can be seen that liberal arts students hope that teachers can talk more about their creativity and personality.

Four, teachers' teaching experience and views on the teaching reform of computer basic courses.

We interviewed more than a dozen lecturers of computer basic courses by email. Teachers such as Liu Chuxiong,, Master Tang, Long,, Dai Yafei, Gao Jun and Wang Tengjiao answered the questionnaire seriously and provided information such as teaching syllabus. Among them are old professors with rich teaching experience and young backbone teachers with innovative spirit; There are teachers majoring in computer science and teachers from other colleges as the teaching tasks of basic computer courses in our college.

1 teaching experience

To sum up, teachers' teaching experience has the following aspects:

(1) Pay attention to arouse students' enthusiasm. Students can do some small programs to improve their hands-on ability and confidence and stimulate their enthusiasm; Encouragement measures can be added, such as inviting students to give lectures, giving appropriate praise and assigning some homework that requires creative thinking; Some intellectual games that can be solved by computers can be introduced to make students think positively; When choosing examples, you can also choose some short and pithy questions, ask questions first, then solve them, so that you can concentrate on your study, and so on.

(2) The content of the lecture pays attention to practicality and concreteness. Students are more interested in practical problems; Concrete examples are more acceptable than abstract explanations. Students can use computers to solve some problems in real life, because most students want to apply what they have learned and solve some specific problems. In the process of solving specific problems, they also learned how to solve them.

(3) communicate with students more. You can set up a message board on the course website, answer questions on BBS, and encourage students to communicate with teachers and teaching assistants. Only in this way can students' doubts and even their own shortcomings be discovered in time and adjusted in time.

(4) Select the teaching materials with novel contents and well-written, and refer to the websites of excellent courses.

2. Assumption of teaching reform

When it comes to the teaching reform of computer basic courses, the teachers put forward the following consistent views:

(1) Different majors should focus on different basic computer courses and emphasize pertinence. Some engineering majors involve more scientific calculations, and art majors may pay attention to multimedia processing. The basic computer courses of different majors should include contents aimed at the characteristics of this major.

(2) Adjust the proportion of compulsory courses and elective courses. Some teachers think that for some science majors, the compulsory courses of computer basic courses should include introduction to calculation, data structure and algorithm, while courses such as software engineering and Windows programming can be used as elective courses; For other science and engineering majors that rarely involve programming, the required courses can only include introduction to calculation, and data structures and algorithms can be used as elective courses. For liberal arts majors, Computer Fundamentals should be a compulsory course, while programming can be a limited or unlimited course, and algorithms and data structures can be unlimited courses.

(3) Teaching content should be applied. I hope students can apply what they have learned, but judging from students' responses and teachers' opinions, there is still a lot of room for effort in this respect.

Verb (abbreviation of verb) conclusion

Generally speaking, our teaching practice is successful, but there are still some shortcomings. Can be summarized as follows:

1. Evaluation of teaching effect

Judging from students' understanding of various courses, we have achieved good teaching results. Students believe that the important knowledge points in the course are basically consistent with the key points in teaching practice. But in liberal arts majors, students want to learn more practical skills about multimedia (animation, video, etc. ) processing.

2. Teacher evaluation

No matter from computer major or non-computer major, the teaching staff can basically meet the requirements. Most science students think that teachers and teaching assistants are serious and responsible to their students, and most arts students hold the same view. At the same time, we also noticed that although most non-computer majors think that teachers are very dedicated, they don't quite recognize their abilities. In addition, the course "Introduction to Computing" for computer majors needs teaching assistants. Therefore, it is suggested to solve the problems of teachers' further education and fees well.

3. Course arrangement and content.

Teachers and students reflect that different computer courses should be offered for different colleges and even majors, and the teaching content should be more closely integrated with professional fields. Such as programming, different majors should be treated differently. Some colleges have to master programming methods except for individual majors, and the rest are the application of existing programs; However, some other majors have strong requirements for programming ability. Another example is art-related majors, which may have higher requirements for film production.

4. Teaching methods

If teachers can arouse students' enthusiasm, the teaching effect may be better. You can explain or arrange challenging, applied or interesting tasks, problems or exercises, increase incentives and encouragement measures, integrate theory with practice when imparting knowledge, and strive to make the course lively, interesting and easy to understand, so as to arouse students' enthusiasm and attract their attention.

5. Job requirements

Most students think that the learning difficulty of the course is moderate, they can finish their homework independently, and the course burden is appropriate. However, for science majors, there are too many course assignments of data structure, and the burden of introduction to calculation is relatively light.

National Center for Teaching and Research in Colleges and Universities