[???????? ???? ????????? ???? ??? ??????????, ???????????? ...

Sep 7, 2015 ... Java programming language, its support in Java Virtual Machine (JVM) and in
developer environments, along with core Java libraries to an extent that ..... E.W.
Dijkstra at al. On-the-fly Garbage Collection: An Exercise in Cooperation,
Communications of the ACM, v.21, 1978. 8. Topic 4. Reusing Classes.

Part of the document


????????????? ?????????? ?????????

??????????? ??????????????? ?????????? ??????????????? ?????????? ???????
????????????????? ???????????
«???????????? ????????????????? ???????????
«?????? ????? ?????????»

????????? ???????????? ????
??????????? ??????????? ?????????

?????????
????? ??????????
???????????? ????
?.?. ????????




«___»____________
2015 ?.

????????? ?????????? «??????????????? ???????????? ???????????»

("Software Design")


??? ??????????? 09.03.04 «??????????? ?????????»
?????????? ?????????

?????? ?????????:
?????????, ?.?.?. ?.?. ????????
egrinkrug@hse.ru


???????? ?? ????????? ???????????? ??????????? ????????? «___»____________
2015 ?.

???????????? ???????????? ?.?. ???????

????????????? ????????????? ??????? ??????????????? ?????????
«??????????? ?????????» «___»____________ 2015 ?.

????????????? ???????????? ??????????????? ????????? ?.?. ?????


??????, 2015

????????? ????????? ?? ????? ???? ???????????? ??????? ???????????????

???????????? ? ??????? ?????? ??? ?????????? ???????-????????????
?????????.





|[pic] |???????????? ????????????????? ??????????? «?????? ?????|
| |?????????» |
| |????????? ?????????? ???????????????? ??? ??????????? |
| |09.03.04 «??????????? ?????????» ?????????? ????????? |




1. Scope and Regulations

The course "Software Design" (BS curriculum, 2nd year) syllabus lays
down minimum requirements for student's knowledge and skills; it also
provides description of both contents and forms of training and assessment
in use. The course is offered to students of the Bachelor Program of the
National Research University "Higher School of Economics" (HSE). The course
is a part of B.Sc. curriculum pool of required courses (2nd year), and it
is the two-semesters long course (semester A and B, quartiles 1, 2, 3 and
4). The course is planned having one lecture per week followed by the
practical seminar lessons (one per week) and intended Self-Studying (SS)
activity for students.
The course is delivered for the bachelor's students of the National
Research University-Higher School of Economics, computer science faculty,
in scope of Software Engineering educational program.
The course focuses on systematic design of larger object-oriented
programs. We will introduce the appropriate concepts, terminology, and
notations to help communicate about programs and about programming.
Software design is an activity involving options estimation and motivated
(rational) design decisions. The course is about Object-Oriented software
development and is based on Java programming language and Java platform. We
teach how Java language features and modern Java platform abilities can be
used systematically to construct software.
The syllabus is prepared for teachers responsible for the course (or
closely related disciplines), teaching assistants, students enrolled on the
course as well as experts and statutory bodies carrying out assigned or
regular accreditations in accordance with corresponding normative
documents.

2. Course objectives

After this course the student should be able to elicit a set of
requirements for, design, implement, use and evaluate (empirically)
software in wide variety of application areas, and be proficient in
software development using modern Java-platform programming.
Students will attend lectures (for motivation, explanation of theory
and examples, feedback on previous work, questions and discussion, in
preparation for assignments), read study material (to learn different
aspects of modern software development), and work on practical assignments
that focus on acquiring professional skills in software development.

3. Learning Outcomes

Upon mastering the discipline "Software Design", the successful
students will:
. Know what is required for large application developing; which
programming technologies fit which types of applications.
. Be able to elicit requirements for various types of
applications; design program structure and build prototypes
using modern software development tools and environments.
. Acquire skills/experience both in application developing and
modern software development technologies learning.


As the result of successful study a student should:
. Know:
- Main principles and methodology of software development using
object-oriented programming approach and its implementation and
support in Java-platform;
- Java programming language, its support in Java Virtual Machine
(JVM) and in developer environments, along with core Java libraries
to an extent that corresponds to the Java Platform Standard
Edition;
- Modern Java Integrated Developer Environments (IDE) abilities
and usage for software development.
. Be able to :
- develop application software using professional IDE(s) for
Java programming;
- debug, test and integrate developed software using modern
tools and technologies;
- use Java-libraries for various programming technologies and
application areas;
- design and implement software applications based on Java
Platform Standard Edition;
- find new technologies and solutions to meet the requirements
when developing and implementing software.
. Acquire experience in:
- developing software using Java platform and correspondent
instruments;
- existing libraries and technology usage when developing
software;
- constructing object-oriented software .



4. The Course within the Program Framework

The course is compulsory and belongs to the basic block of
disciplines.
The course is provided for students by Software Engineering Department
of the Computer Science Faculty during the 2nd learning year in two
semesters (1, 2, 3, 4 quartiles).
Total units - 8, hours in total - 304 (including lectures - 72,
practical seminars - 72, and self-study - 160).
Formative assessments: 2 control works and 2 home-works assignments.
Intermediate control: the exam in the 2nd quartile.
Final assessment: the exam at the end of the course (4th quartile).


The course is based on the students' knowledge of mathematics, basics
of information science, algorithm theory, and basic programming skills
(acquired at the course "Programming" during the 1st learning year) and
computer usage knowledge.
The course serves as the base for upcoming disciplines (in algorithms
analysis, database design, distributed computing, calculating geometry,
computer graphics, etc.) and serves as the base for annual course works,
diplomas and research projects, that students will perform upon the course
completion.


The course prerequisite is good English knowledge (since the course is
provided entirely in English, including lections, practical seminar
lessons, homework assignments, tests and quizzes, etc. with minimal aid and
use of the native - Russian - language).

5. Topic-Wise Course Contents



|NN |Topic name | Course| Audience hours |Self-stud|
| | |hours, | |y |
| | |total | | |
| | | |Lectures |Seminar | |
| | | | |lessons | |
|Module (quartile) 1 |
| 1 |Introduction: Software Design and |4 |2 |2 |4 |
| |main Programming Paradigms | | | | |
| 2 |Introduction to Java. Main |4 |2 |2 |4 |
| |programming constructs in Java | | | | |
| 3 |Objects and classes |4 |2 |2 |4 |
| 4 |Classes reuse |4 |2 |2 |5 |
| 5 |Interfaces and Abstract Classes |4 |2 |2 |5 |
| 6 |Inner and Nested classes |4 |2 |2 |5 |
| 7 |Type information. Reflection |4 |2 |2 |5 |
| 8 |Error and Exception handling |4 |2 |2 |4 |
|Subtotal: |32 |16 |16 |36 |
|Module (quartile) 2 |
| 9 |Generic types |4 |2 |2 |4 |
|110|Containers and Collections |4 |2 |2 |4 |
|111|Parallel execution. Basic notions. |4 |2 |2