1st Year I Fundamentals of Computer Science

Publisher:何万源Release time:2023-05-30Times of browsing:107

         I.                 Course essential information

Course code

BD100020/BD100030

Course Name

Fundamentals of Computer Science I/II计算机科学基础

Credits/Periods

3.5 credits / 144 periods (First semester: 2 credits/ 72 periods; Second semester: 1.5   credits/ 72 periods)

Period Allocation

Lecture: 44/semester; Operation: 28/semester; others: 0

Course Classification

General Education Core Course (Computer)

Semester

The   spring and fall semester in the freshman year

Faculty

College of Information Science and Engineering

Major Program

Electronic Information

Language of Instruction

English

Prerequisites

 

Follow up Course

Integrated Curriculum Design of Computer

Course Introduction

The course is not only an introductory course of computer programming language, but also a basic course of computer programming. After completing this course, students can master a programming language, some basic algorithms, and basic data structures, laying the foundation for deeper professional knowledge or computer simulation analysis of algorithms.

      II.                 Course content and Time allocation

The Second Semester:

1.      Computer fundamentals (4 period/in class)

Understand the basic structure and principles of computers, and master the representation of numbers and their operations in computers: binary, coding, fixed-point /floating point representation.

2.      C++ Fundamentals (8 period/in class)

Master basic data types and operations, keywords and identifiers, expressions and precedence, type conversions, and simple standard input and output operations in C++.

3.      Basic control structure programming (10 period/in class)

Proficiency in three program structures: sequential, branch, and loop, decomposition of programs using structured techniques, design and testing of programs, and simple file input and output operations.

4.      Function (10 period/in class)

Understanding of function declaration, definition, call, parameter passing mechanism, default parameter values, variable lifetime and scope, function overloading, inline function.

5.      Arrays and pointers (12 period/in class)

Classes and objects chapter reference part of the content, master the definition and use of arrays, the relationship between pointers and arrays, pointer arithmetic, function formal reference for pointer function definition, call, C++ style string and C style string, search algorithm (sequential search, binary search).

 

The Third Semester:

6.      Classes and objects (excluding the reference part of the content) (6 period/in class)

Master class definition, properties and behavior, access rights control, object definition, use and memory arrangement, definition and invocation of constructor, copy constructor, destructor, member functions, operator overloading, friend functions, object members, static members.

7.      Templates and Data Structures (9 period/in class)

Understand and master function templates and class templates, design linear table class templates and be able to apply them to custom data types, master several classical sorting algorithms (bubbling, selection and insertion).

8.      Dynamic memory allocation and data structures (10 period/in class)

Understand the differences between dynamic and static data structure implementations; understand heap memory allocation, heap and copy constructors, deep and shallow copies; master the basic operations and use of linked tables; understand stacks and queues and their basic operations.

9.      Class Inheritance and Derivation (9 period/in class)

Understand the concept of inheritance and the construction and destruction of derived classes; understand multiple inheritance and virtual base classes; distinguish the implementation of polymorphism at runtime and understand the difference between overloading and overwriting with the same name; understand virtual functions and polymorphism.

10.  Input/output stream library (6 period/in class)

Understand the basic flow class system of C++; improve the robustness of standard input/output; master the overloading of extract and insert operators; master the input/output of files, text files and binary files, and master the techniques of creating objects by files in constructors and saving them by files in destructors.

11.  Exception Handling (4 period/in class)

Understand exception handling mechanisms: try block, exception throw, exception catch; understand stack expansion and exception catch; exceptions and inheritance; write code that responds to exceptions in execution.