Course: The Practice of Programming
Instructor: Haiming Chen
TA: Huanbo Chen, Haoyu Zhou
Department of Computer Science, FEECS
Ningbo University, Zhejiang Province, China
Course ID: 107J32BA1
First Semester, 2017-2018

About the course

This course is open for 2nd-year undergraduate students, who are major in electronic information, automation, and IoT. In this course, we will extend knowledge about programming in C, including some basic data structures and algorithms. The basic data structure which will be tought in the class are sequential table, linked list, stack, and queue. Algorithms which will be tought in the course are sorting, searching, iterative, recursive, enumerative and greedy algorithms.

Classes(slides)

  • Class 1 - Problem solving with programming(ppt)
  • Class 2 - Basic data structure - Sequential table(ppt)
  • Class 3 - Basic data structure - Linked list(ppt)
  • Class 4 - Basic data structure - Stack(ppt)
  • Class 5 - Basic data structure - Queue(ppt)
  • Class 6 - Sorting algorithm (ppt)
  • Class 7 - Searching algorithm (ppt)
  • Class 8 - High precision computation (ppt)
  • Class 9 - Iterative algorithm, recursive algorithm, enumerative algorithm and greedy algorithm(ppt)

Practices(NUBOJ contests)

  • Sequential table (Problem 1201, 1347), Due on 2017/9/23 23:55
  • Linked List (Problem 1425, 1396, 2438), Due on 2017/10/7 23:55, Clink here to download the reference code (NOTE: Some parts of the codes have been removed. You should first complement it, and ensure it can run correctly.)
  • Stack (Problem 1173, 2551, 2466), Due on 2017/10/21 23:55, Clink here to download the reference code (NOTE: the code is written for calculating value of expressions with only brackets.)
  • Queue (Problem 2468), Due on 2017/11/6 23:55, Clink here to download the reference code (NOTE: the code is written for maze problem with 8 possible directions of ways.)
  • Sorting algorithm - Part I (Problem 1388,1389, 1398, 1502), Due on 2017/11/13 22:00
  • Sorting algorithm - Part II (Problem 1262, 1367, 2030, 1348), Due on 2017/11/20 12:00
  • Searching algorithm (Problem 1151, 1158, 1175, 1828, 1829), Due on 2017/11/27 22:00
  • High precision computation (Problem 1451, 1894), Due on 2017/12/11 12:00
  • Enumerative algorithm and greedy algorithm-Part I (Problem 2437, 2439, 1400, 2407), Due on 2017/12/24 23:55
  • Enumerative algorithm and greedy algorithm-Part II (Problem 1881, 1440, 2436, 2441), Due on 2018/1/1 23:55

Course Project

  • Write a program to implement creation of a hash table, and search a specified key in the table. You are required to hand in the code (reference code) and a report (template) before 22:00 on December 4, 2017.

Final Exam

Programming on the computer, 2 hours, 3 problems.
Time: Jan. 3, 15:00-17:00,
Location: Computer Room 121, Information building

Last Updated onDec. 20th, 2017