ABSTRACT
It is a time-consuming task for the instructors to design the examples, assignments, and projects to meet the requirement of learning outcomes. Luckily, most of the courses in information technology major are relevant and some are closely related to each other. Therefore, we propose to take advantage of the same problem which can be analyzed from different aspects under a series of IT courses. It will not only reduce the burden of the instructors to design the brand-new exercises but also help students quickly understand the foundation of the problem from what they studied and embark on exploring the high-level topics in new courses.
In this paper, we use the classic producer-consumer problem as an example to present our proposition. This problem is generally shown up in operating systems course to illustrate the multi-process synchronization. We expand this problem from different angels and motivate the students to further explore other relevant topics: The objects? datatypes, properties, functions are declared in programming course and the built-in thread feature in some specific language like Java can also be demonstrated by this problem's solution. The design of data structure of the producer, the consumer, and the buffer can be discussed in data structure course. The collaboration between the producer and the consumer can be used for explaining the cause of deadlock in database course. Finally, the producer-consumer problem is used to clarify different application architectures in application/software design course. We expect that our methodology on IT education can illumine other educators looking to the similar mode in their program.
- "Information Technology Curricula 2017," Association for Computing Machinery (ACM) & IEEE Computer Society (IEEE-CS), 2017.Google Scholar
- A. Silberschatz, P. Galvin and G. Gagne, Operating System Concepts, Wiley, 2013.Google Scholar
- E. W. Dijkstra, "Cooperating sequential processes," in The origin of concurrent programming, Springer, 1968, pp. 65--138.Google Scholar
- I. Tinca, "The Evolution of the Producer-Consumer Problem in Java," 9 October 2018. [Online]. Available: https://dzone.com/articles/the-evolution-of-producer-consumer-problem-in-java. [Accessed 20 May 2020].Google Scholar
- A. J. Wellings, Concurrent and real-time programming in Java, Wiley Chichester, 2004.Google Scholar
- R. Lafore, Data Structures and Algorithms in Java (2nd Edition), Sams Publishing, 2002.Google Scholar
- C. Coronel and S. Morris, Database systems: design, implementation, & management, Cengage Learning, 2016.Google Scholar
- D. VanGomple, "More versatile networks boost motion control capabilities," 01 September 2000. [Online]. Available: https://www.machinedesign.com /automation-iiot/sensors/article/21827587/more-versatile-networks-boost-motion-control-capabilities. [Accessed 02 June 2020].Google Scholar
- M. Richards, Software architecture patterns, O'Reilly Media, Incorporated 1005 Gravenstein Highway North, Sebastopol, 2015.Google Scholar
Index Terms
- The Study of the Classic Producer-consumer Problem in a Series of IT Courses
Recommendations
A comprehensive software engineering education program for grades 6 to 12 in NYC public schools (abstract only)
SIGCSE '13: Proceeding of the 44th ACM technical symposium on Computer science educationHow do we best prepare middle and high school students for college and career pathways in software engineering? Current industry and academic trends suggest that students are best prepared for postsecondary success in new and emerging interdisciplinary ...
A model for piloting pathways for computational thinking in a general education curriculum
SIGCSE '11: Proceedings of the 42nd ACM technical symposium on Computer science educationComputational thinking has been identified as a necessary fundamental skill for all students. University curricula, however, are currently not designed to provide such knowledge to a broad student population. In this paper, we report on our experiences ...
TeachScheme!: a checkpoint
ICFP '10In 1995, my team and I decided to create an outreach project that would use our research on functional programming to change the K-12 computer science curriculum. We had two different goals in mind. On the one hand, our curriculum should rely on ...
Comments