«Approved»
Dean
________________________
«____» _____________ 2020
Syllabus
Academic Year 2020 -2021
1. General information
Course title “Software Design Patterns”
Degree cycle (level)/ 6B06101 Computer Science
major 6B06102 Software Engineering
Year, semester 2, 1
Number of credits 5
Language of English
delivery:
Prerequisites Basics of programming and algorithms
Postrequisites No Postrequisites
Lecturer(s) 1. Tleuzhan Mukatayev, MSc in Computer Science, senior – lecturer,
[email protected]. Astana IT University, Expo,
C1 block, 2nd floor, office #C1.2.67
2. Alpamys Dosbol, MSc of Economic Sciences, senior – lecturer,
[email protected]. Astana IT University, Expo, C1
block, 2nd floor, office C1.269
2. Goals, objectives and learning outcomes of the course
1. Course descrip- “Software Design Patterns” is a 10-week course. This course covers
tion software design patterns principles and techniques using Java. Topics
include creational, structural, behavioral design patterns and SOLID
principles. This course also covers basic concepts for software design
and reuse.
2. Course goal(s) Course goal is to provide a solid background in software design pat-
terns principles for computer science, telecommunication and informa-
tion security students, in preparation either for a job in industry or for
more advanced courses at the graduate level.
3. Course objec- Course objectives include:
tives: - To understand and demonstrate the concepts of software design
patterns,
polymorphism, information hiding, and inheritance;
- To understand the role that methods play in an software design
patterns;
- To understand the concept of a class hierarchy;
- To become familiar with the relationship between classes and objects
in a Java program
4. Skills & - Solve problems using various Java language and library features;
competences - Understand and use software design patterns concepts to develop
reusable, reliable, and maintainable software.
5. Course learning By the end of this course the students will be able to:
outcomes: - apply standards and principles to write truly readable code.
- design a class that serves as a program module or package.
- present a general understanding of the programming language Java,
for example by solving simple programming assignments.
6. Methods of - Weekly quizzes;
assessment - Theoretical and practical assessments.
7. Reading list 1. Lecture slides (available on moodle.astanait.edu.kz);
2. Clean Code: A Handbook of Agile Software Craftsmanship 1st
Edition by Robert C. Martin
3. Head First Design Patterns: A Brain-Friendly Guide [Eric Freeman,
Bert Bates, Kathy Sierra, Elisabeth Robson]
8. Resources Online journals, article, papers, books and internet resources.
9. Course policy Course and university policies include:
Attendance: Students are expected to attend all scheduled class
sessions with all required reading and supplementary materials.
Readings are to be completed prior to class.
The student won’t obtain additional points for course attendance, but the
attendance is important to pass the course. In case the student is not able
to attend the classes for some reasons, he/she must inform the dean’s
office in advance and the student itself is responsible for learning all
materials, which were given during unattended lessons.
In case if the student did not attend more than 20% of the classes
without any reasonable excuses, the teacher has a right to mark him as
“not graded”, and the student wouldn’t be admitted to the exam. In other
words, students must participate in at least 80% of all class time,
otherwise he/she fails the course.
Preparation for Class: Class participation is a very important part of
the learning process in this course. Although not explicitly grade,
students will be evaluated on the QUALITY of their contributions and
insights. Quality comments possess one or more of the following
properties:
- Offers a different and unique, but relevant, perspective;
- Contributes to moving the discussion and analysis forward;
- Builds on other comments.
Class work: The duration of each lecture and practical lesson is 50
minutes. Students are expected to complete all readings and assignments
ahead of time, attend class regularly and participate in class discussions.
In case of systemic student’s misconduct, the student would be
dispensed from the classes.
Being late on class: When students come to class late, it can disrupt the
flow of a lecture or discussion, distract other students, impede learning,
and generally erode class morale. Moreover, if left unchecked, lateness
can become chronic and spread throughout the class. By the policy of
this course, students who come late to class for more than 5 minutes are
not allowed to get in to class and consequently, they will be marked as
“absent” for the specific hour.
Home work / Assignments: The assignments are designed to acquaint
students with the theoretical knowledge and practical skills required for
the course. The textbook readings will be supplemented with materials
collected from recent professional articles and journals. In case of using
someone’s work (papers, articles, any publications), all works must be
properly cited. Failure to cite work will be resulted as a cheating from
the students and may be a subject of additional disciplinary measures.
Late assignments: Most assignments will be discussed in class on the
due date, therefore late assignments will not receive credit. It is
expected that all work will be submitted on time. Failure to pass
assignments in on time will result in 0% for the assignment. In other
words, no late submissions are allowed. All gradings are based using a
percentage grading scale.
In the event of some extraordinary event, students should notify the
teacher and request an extension of the deadline. If approved, a new
date will be given to the student depending upon the circumstances.
Final exam: The final exam for the course “Software Design Patterns”
is a final project. Each student will have 10-15 minutes to defend his /
her project. The project materials must be submitted in the Learning
Management System (moodle.astanait.edu.kz). No late submissions are
allowed in the exam.
Laptops and mobile devices can only be used for classroom purposes
when directed by the teacher. Misuse of laptops or handheld devices
will be considered a breach of discipline and appropriate action will be
initiated by the teacher.
Cheating and plagiarism are defined in the Academic conduct policies
of the university and include:
1. Submitting work that is not your own papers, assignments, or exams;
2. Copying ideas, words, or graphics from a published or unpublished
source without appropriate citation;
3. Submitting or using falsified data;
4. Submitting the same work for credit in two courses without prior
consent of both instructors.
Any student who is found cheating or plagiarizing on any work for this
course will receive 0 (zero) for that work and further actions will also be
taken regarding academic conduct policies of the university.
Academic Conduct Policies of the university: The full texts of all the
academic conduct code will be posted to the students using the learning
management system (moodle.astanait.edu.kz).
Contacting the Instructor (Teacher): The easiest and the most reliable
way to get in touch with the teacher is by email. Students must feel free
to send emails if they have a question related to the course. The teacher
will respond as soon as he can but not always instantaneously. Besides
that, students are also welcome to arrange one-to-one meeting with the
teacher during office hours to discuss the class.
3. Course Content
# Abbreviation Meaning
1 TSIS Teacher-supervised independent work
2 SIS Students’ independent work
3 IP Individual project
4 PA Practical assignment
5 LW Laboratory work
6 MCQ Multiple choice quiz
3.1.Lecture, practical/seminar/laboratory session plans
Lab. ses-
Lectures
Practice
sessions
Week
(H/W)
(H/W)
(H/W)
(H/W)
(H/W)
TSIS
sions
SIS
Course Topic
No
1 Introduction to the course and policies 0 5 0 1 9
Setting up the environment. Git flow In-
troduction to the SOLID principles
2 Creational design patterns 0 5 0 1 9
3 Creational design patterns 0 5 0 1 9
4 Structural design Patterns 0 5 0 1 9
5 Structural design Patterns. Midterm 0 5 0 1 9
week
6 Behavioral design patterns 0 5 0 1 9
7 Behavioral design patterns 0 5 0 1 9
8 Software architecture examples. MVC, 0 5 0 1 9
MVVM, MVP
9 Project Week. Preparation part 0 5 0 1 9
10 Endterm. Project defense 0 5 0 1 9
Total hours: 150 0 50 0 10 90
3.2.List of assignments for Student Independent Study
Recommended litera-
Assignments (topics) for Inde- Form of submis-
№ Hours ture and other sources
pendent study sion
(links)
1 2 3 4 5
1 1. Git flow Books, internet re- Exercises
2. Single-responsibility sources
principle
2. Open–closed principle
3. Liskov substitution
10
principle
4. Interface segregation
principle
5. Dependency inversion
principle
2 Creational design patterns Books, internet re- Exercises
10
sources
3 Creational design patterns Books, internet re- Exercises
10
sources
4 Structural design Patterns Books, internet re- Exercises
10
sources
5 Structural design Patterns Books, internet re- Exercises
10
sources
6 Behavioral design patterns Books, internet re- Exercises
10
sources
7 Behavioral design patterns Books, internet re- Exercises
10
sources
8 Software architecture examples. Books, internet re- Exercises
MVC, MVVM, MVP 10 sources
9 Project Week Books, internet re- Exercises
10
sources
10 Project Week Books, internet re- Exercises
10
sources
4. Student performance evaluation system for the course
Period Assignments Number of Total
points
1st attestation Assignments: 100
Assignment 1 20
Assignment 2 20
Assignment 3 20
Mid term 40
2nd attestation Assignments: 100
Assignment 5 20
Assignment 6 20
Project pre-defense 20
Project 40
Final exam Written exam 100
Total 0,3 * 1st Att + 0,3 * 2nd Att + 0,4*Final 100
Achievement level as per course curriculum shall be assessed according to the evaluation
chart adopted by the academic credit system.
Numerical Grade according to the
Letter Grade Percentage
equivalent traditional system
А 4,0 95-100
Excellent
А- 3,67 90-94
В+ 3,33 85-89
В 3,0 80-84
Good
В- 2,67 75-79
С+ 2,33 70-74
С 2,0 65-69
С- 1,67 60-64
D+ 1,33 55-59 Satisfactory
D 1,0 50-54
FX 0 25-49 Fail
F 0 0-24
5. Methodological Guidelines
Assessment is administered continuously throughout the course. The students are rated
against their performance in continuous rating administered throughout the semester (60%)
and summative rating done during the examination session (40%), total 100%. Continuous
rating is students’ on-going performance in class and independent work. Class work is assessed
for attendance, laboratory works' defense and in- class assessments.
- TSIS (Teacher Supervised Student Independent Study) -comprises presentation to be
done by students independently and checked by instructor.
- Mid-term and End-term is a review of the topics covered and assessment of
each student's knowledge. The form of the midterm and endterm exams is complex.
- Final assessment for the course “Software Design Patterns” is a final project. Each
student will have 10-15 minutes to defend his / her project. The project materials must be
submitted in the Learning Management System (moodle.astanait.edu.kz). No late
submissions are allowed in the exam.