Currently, in addition to my main job, I study in graduate school and work as a assistant assistant for a quarter (I came from the army, but now this problem has been solved and I continue to study / work on my own initiative) at the Department of IWT at the Technical University (in general at the Polytechnic University) . Last year he conducted laboratory classes at the rate of Technology Programming. The course, as well as laboratory work, to put it mildly, is not at all on TP, but rather C / C ++, which for the 5th course (yes, exactly 5, this year seems to be already at 4) at least looks silly, for C begin to study in the first year, and they actively write on it in 2-3 courses (C ++ is not particularly considered in other courses). From here, there was a desire to process the TP course thoroughly. The lecture course will be processed by my direct colleague in the main work (he is also currently a senior lecturer in the department), and we will develop a methodological manual for seminars and a course for laboratory work (and then lab work) together.
In general, writing a methodological manual seems to be not so difficult: that there should be something like presenting, already agreed with a colleague, the method of presentation is also approximately presented. In general, both the course and the manual will be much better and more useful for students, compared to what we have now. But, since I have a perfectionist deep in my soul, I want the benefit not only to be better than what it is, but to become really good and useful for future young specialists.
From here also it would be desirable to receive several councils, manuals, and just thoughts of habraspolzovateley (especially experts), on a subject of that in their opinion should be included in the manual.
')
At the moment, the following points have already been precisely defined and agreed upon (including with the deputy for academic work):- The main outline of benefits - the PLO
- All description and examples (as well as the course of lab works) will be in 2 languages ​​- C # /. NET and JAVA (perhaps this is the most controversial point, but the decision on it has already been made)
- All examples are considered in both languages ​​at the same time (at the level that will be needed in the manual, the differences will not be so great)
Further I will describe some points that I see in this tutorial:- First of all, it should give only the basics of all the material described.
- The spectrum of the material under consideration should be wide enough.
- The manual should be written in such a way that it does not lose relevance for a long time (small corrections periodically, by themselves, are required, because this is not a fundamental work)
What you want to consider in this manual:- The basics of OOP (quite a bit of history, basic principles: abstraction, polymorphism, encapsulation)
- The scope of properties / methods (including readonly, of course to mention that not all languages ​​are inherent)
- Abstract Classes and Interfaces
- Exceptions
- Collections
- Libraries (packages / namespaces)
- Other possibilities of languages ​​(everything is discussed here, it is worth mentioning what is better to write in more detail)
- Working with XML (it seems to me that this is a very important topic, and it should definitely be touched on so that people at least know that there are DOM and SAX)
- Application Design (mindmaps, functional specification, UML)
- OOP Templates
- Refactoring
- Team development systems (just a few words about CVS, SVN, BugZilla, Flyspray, GroupHub)
Once again I want to note that "First of all, it should give only the basics of all the material described." This is done to ensure that those who come to the university for the crust do not get very tense (unfortunately there are quite a lot of them, and here I am powerless to do anything), and those who are really interested and need to, who are going to associate their careers with the development of high-level software (for the low-level there is another course) - to get a general idea of ​​software development technology and the basic concepts from which it will be possible to build on.
Why did I write all this here.I soberly assess my abilities and capabilities, and I understand that I cannot master a really good manual (a question of experience and knowledge). And as I wrote above, I really want this. So that the specialists in our field become more (a colleague traveled a couple of weeks to the support of one project, while the developer of that company was on vacation, and then told horror stories about 600 fields in one database table, etc.). Well, in general, I want to raise the level of education in a single department in a subject close to me.
In the comments I would love to see opinions on this issue. Suggestions and wishes for what you would like to see in such a textbook (whether you are students). What I missed, from the fact that it is necessary to highlight on a mandatory basis, and what better to leave completely to self-study.
“Beta 1” benefits should be prepared by early October. Accordingly, by that time all sections will be published here (if it will be of course interesting for habra people). Well, and then, of course, the final version of the manual.