Btvted. Cpm1. Syllabus On Fundamentals of Programming
Btvted. Cpm1. Syllabus On Fundamentals of Programming
Issue No. 01
SAN FRANCISCO COLLEGES Rev. No. 01
San Francisco, Agusan del Sur Date: July 29, 2024
Page 12
OBE COURSE SYLLABUS
SFC Philosophy “Learning empowers people to change for a peaceful and sustainable future”
SFC Vision San Francisco Colleges, the pioneer in alternative education in San Francisco, Agusan del Sur, envisions to
provide relevant and quality
education for the marginalized sector of society thus producing competent, honorable and God-centered
individual, who care for the environment.
SFC Mission San Francisco Colleges is committed to:
● Educate the less fortunate to help them improve their quality of life and achieve a more peaceful and
sustainable future for all.
● Offer advance programs at every level through learner-centered, values-integrating, research-based and
innovative approaches.
● Inculcate in the students the culture and core values of SFC to institute love, loyalty and pride in their
community life.
● Prepare students to become effective leaders, lifelong learners, productive citizens and responsible care-
takers of Mother Earth.
● Develop persons who have a genuine care and deep concern for nature and the environment, for the social
institutions, and the
cultural legacy of a people- their physical, economical, moral and spiritual well-being.
SFC Quality Policy Policy Statement. It is the policy of San Francisco Colleges:
● that the academic performance of each member of the college community should fairly reflect that
person's own capabilities and efforts
● that prohibited actions include cheating, plagiarism, falsification, submission of the same work in different
CPM1. FUNDAMENTALS OF PROGRAMMING 1
courses, and any atte mpts to facilitate these activities
● that members of the college community will not condone actual or attempted cheating, plagiarism,
falsification or other academically dishonest activities
● that members of the community will take appropriate actions to report and resolve any suspected violations
of the principle of academic honesty following the procedures established in the appropriate SFC college
policies
Goals
Course Description:
The course covers an in-depth exploration of concurrent programming concepts, techniques, and tools used to develop efficient and scala
software systems. Students will learn the principles of concurrency, including the management of processes and threads, synchronization
inter-process communication (IPC). The course emphasizes solving synchronization problems and avoiding common pitfalls such as dead
race conditions, and livelocks. Students will also explore modern approaches to concurrency, including multithreading, task parallelism,
asynchronous programming, and the use of non-blocking algorithms. Through hands-on programming assignments and projects, learners
will design and implement concurrent applications across multiple platforms and programming languages.
Course Schedule
• Describe the thread lifecycle 3. Thread Lifecycle and States • Online Lecture or Recorded and/or F2F Lecture
and the states involved in thread - Thread states (new, runnable, • Required Reading Assignment
execution. blocked, waiting, terminated)
• Develop programs that - Lifecycle management (creation, Resources:
manipulate thread states. execution, termination) • Digital Devices (i.e, PC, Laptop, Smartphones, etc.
- Context switching • Textbooks
• Research Materials from Internet
5 • Uploaded Course Topics Videos in the LMS
• Interactive Class Discussion Online using (Google
Meet or Zoom)
• Brainstorming Activities
• Group Chat (students learning consultation)
• Explain the concepts of 5. Deadlock, Livelock, and • Recorded and/or F2F Lecture
deadlock, livelock, and Starvation • Formative Assessment: Seatwork/Pop Quiz/Group
starvation. - Conditions for deadlock (Coffman Work
• Identify and implement conditions) • Laboratory Exercise
strategies to prevent and resolve - Deadlock prevention and avoidance
these issues in concurrent (Banker's algorithm, wait-die, wound- Resources:
10 to 11
systems. wait) • Textbook
- Livelock, starvation • Lesson Slides
• RUBRIC
• Supplementary Lessons from the Internet
•Define atomic operations and 7. Atomic Operations and Memory • Online Lecture or Recorded and/or F2F Lecture
explain the significance of Models • Required Reading Assignment
memory models in concurrent - Definition of atomic operations • Laboratory Exercise
programming. - Memory models: sequential
• Implement atomic operations consistency, relaxed memory models Resources:
in a concurrent environment. - Memory barriers and ordering • Digital Devices (i.e, PC, Laptop, Smartphones, etc.
• Textbooks
14 to 15 • Research Materials from Internet
• Uploaded Course Topics Videos in the LMS
• Interactive Class Discussion Online using (Google
Meet or Zoom)
• Brainstorming Activities
• Group Chat (students learning consultation)
Course Materials:
• Online Learning Management System (LMS)
• Textbooks and References:
Williams, Anthony (2019). C++ Concurrency in Action (2nd Edition). Manning Publications
Robey, robert and Zamora, Yuliana (2021). Parallel and High Performance Computing. Manning Publications
Nguyen, Quan (2019). Mastering Concurrency in Python: Write Clean, Concurrent, Multithreaded, and Multiprocess Code. Pack
Goetz, Brian, Peierls, Tim, Block, Jochua, Bowbeer, Holmes, David and Doug, Lea (2022). Java Concurrency in Practice. Addiso
Approved by Date