diff --git a/erpnext/education/doctype/course/course.py b/erpnext/education/doctype/course/course.py
index 987823a..0747a22 100644
--- a/erpnext/education/doctype/course/course.py
+++ b/erpnext/education/doctype/course/course.py
@@ -20,9 +20,9 @@
 				frappe.throw(_("Total Weightage of all Assessment Criteria must be 100%"))
 
 	def get_topics(self):
-		try:
-			topic_list = self.get_all_children()
-			topic_data = [frappe.get_doc("Topic", topic.topic) for topic in topic_list]
-		except frappe.DoesNotExistError:
-			return None
+		topic_data= []
+		for topic in self.topics:
+			topic_doc = frappe.get_doc("Topic", topic.topic)
+			if topic_doc.topic_content:
+				topic_data.append(topic_doc)
 		return topic_data
\ No newline at end of file
diff --git a/erpnext/education/doctype/program/program.py b/erpnext/education/doctype/program/program.py
index dbeda40..d24df5d 100644
--- a/erpnext/education/doctype/program/program.py
+++ b/erpnext/education/doctype/program/program.py
@@ -9,6 +9,6 @@
 class Program(Document):
 
 	def get_course_list(self):
-		program_course_list = self.get_all_children()
+		program_course_list = self.courses
 		course_list = [frappe.get_doc("Course", program_course.course) for program_course in program_course_list]
 		return course_list
\ No newline at end of file
diff --git a/erpnext/education/doctype/student/student.py b/erpnext/education/doctype/student/student.py
index cf8407c..529f78d 100644
--- a/erpnext/education/doctype/student/student.py
+++ b/erpnext/education/doctype/student/student.py
@@ -90,13 +90,14 @@
 		"""
 		contents = topic.get_contents()
 		progress = []
-		for content in contents:
-			if content.doctype in ('Article', 'Video'):
-				status = check_content_completion(content.name, content.doctype, course_enrollment_name)
-				progress.append({'content': content.name, 'content_type': content.doctype, 'is_complete': status})
-			elif content.doctype == 'Quiz':
-				status, score, result = check_quiz_completion(content, course_enrollment_name)
-				progress.append({'content': content.name, 'content_type': content.doctype, 'is_complete': status, 'score': score, 'result': result})
+		if contents:
+			for content in contents:
+				if content.doctype in ('Article', 'Video'):
+					status = check_content_completion(content.name, content.doctype, course_enrollment_name)
+					progress.append({'content': content.name, 'content_type': content.doctype, 'is_complete': status})
+				elif content.doctype == 'Quiz':
+					status, score, result = check_quiz_completion(content, course_enrollment_name)
+					progress.append({'content': content.name, 'content_type': content.doctype, 'is_complete': status, 'score': score, 'result': result})
 		return progress
 
 	def enroll_in_program(self, program_name):
