Course Name: Fundamentals of Programming and Experiments in Java
Course Properties: Public mandatory course
Pre-requisite: Introduction to Computer Science
Programming language is the dialogue between man and machine. Based on this aspect, the main purposes of teaching Fundamentals of Programming and Experiments are:
---Stimulate students’ love to programming design；
---Enable students to master the complete process of programming；
---Help the students master at least one programming language；
Topics and Schedule
As for public required course， taking the needs of different professional students in future research into account, this course includes:
---Imperative programming design
---Object-oriented programming（it is the main content in Java class）
---The coding style of GNU / The coding style of Windows
The general principle of teaching method is “Those students who have no basic knowledge can quickly get started and those students who have a good command of basic knowledge can learn useful things.”
Teaching style and concept
Different from mathematics, physics and other theoretical courses, Programming is a very practical course.
The teaching style--“teaching by coding, learning by coding” will be taken, which is “observe the master make programming and the actual teaching”, in order to overcome the defect-- "mere theoretical teaching”; Most of the teaching time (70%) is the actual teaching, and about 30% time is PPT courseware teaching.
The teaching of language and programming is based on the following 4 aspects:
---System angle：Viewing program behavior from the perspective of CPU and operating system，such as the memory image when the program runs; Viewing program behavior from the perspective of buffer attack;
---Compile angle：The similarities and differences of program behavior caused by different programming, viewing from compiler angle;
---Application angle: Pros and cons caused by different programming languages and different programming, based on the fact that Data Structure and Algorithm Design will be open in the next year, as well as some of the practical problems;
---History angle：Teach the similarities and differences of different languages, and learn from each other, as well as historical heritage from the perspective of programming language development tree; Especially teaching language from the view of “Language designer”；
The big assignment of this course
The design of the big assignment includes three basic assessment criteria:
---Practice the programming ideas and techniques that are learned.
---To be “uncommon”： Try to have some relationship with the research topic and try to avoid using topics as "hotel management database system".
---To be “attractive”: such as to encourage students to explore different ways to achieve the program in a small contest.
Topics already exist: Five-in-a-row
Y.Daniel Liang [USA], Java Programming Language Design, Translated by Li Na
1. Bruce Eckel [USA], Thinking in Java
2. Cay S. Horstmann，Gary Cornell, The core technology in Java, volume 1：basic knowledge (The original book 9th Edition)