Конструиране на качествен програмен код
(изборен курс към ФМИ, СУ, зимен семестър, 2002/2003 г.)

Съобщения:
  • Безплатни курсове по програмиране! Национална академия по разработка на софтуер (НАРС) провежда интензивни курсове по програмиране с Java, C#, .NET Framework, MS SQL Server и Oracle. Обучението е безплатно по стипендии от софтуерни фирми, които осигуряват работа по специалността за всички успешно завършили. За начинаещите Академията предлага безплатни курсове "Въведение в програмирането" с C# и Java, които служат като подготовка за следващите нива на обучение. Преподавателският екип се ръководи лично от Светлин Наков, авторът на книгите "Програмиране за .NET Framework", "Интернет програмиране с Java" и "Java за цифрово подписване на документи в уеб" и носител на наградата "Джон Атанасов" на президента на България за 2004 г. За повече информация относно безплатните курсове посетете сайта на академията. Не пропускайте своя шанс да стартирате кариерата си като програмисти!

  • Излязоха резултатите от оценяването на курсовите разработки:
       html file

  • Учебна програма:
         html file    rtf file

    Преподавателски екип:
         Светлин Наков - codecoursenakov.com
         Борис Червенков - borisabv.bg
         Красимир Семерджиев - evilyetiabv.bg
         Николай Недялков - codecoursenedyalkov.com

    Студенти и оценки:
         Списък на студентите и оценките

    Учебни занятия:
         сряда: 18-21, зала 200 на ФМИ
         четвъртък: 18-21, зала 325 на ФМИ

    Основни учебни материали:
  • Книгата, на която са базирани лекциите:
  •        Code Complete Code Complete
    A Practical Handbook of Software Construction
    by Steve McConnell
    Microsoft Press, 1993, 857 pages
    ISBN 1556154844
         Може да се намери в библиотеката на ФМИ.
  • Сканиран вариант на "Code Complete" (free.data.bg)
  • Сканиран вариант на "Code Complete" (free.techno-link.com)
  • Сканиран и не добре OCR-нат вариант на "Code Complete" (hit.bg)
  • Най-важното от книгата "Code Complete"
  • html file zip file

    Допълнителни учебни материали - ръководства, статии и други публикации:
  • Software Construction Course by Terry Peckham, based on "Code Complete" book.
  • zip file
  • Programming with Style - A Coding Handbook by Vikram Rao
  • zip file
  • Rational Software - Принципи, правила, съвети и препоръки за създаване на добър програмен код на C++
  • zip file
  • Стандарти и принципи за създаване на добър програмен код на C++
  • pdf file
  • C++ Programming Style Guidelines - by Geotechnical Software Services
  • html file
  • Правила и препоръки при програмиране на C++
  • html file
  • Стандарти и препоръки за добър C++ код
  • html file
  • Ada 95 - Quality and Style - Guildelines for Professional Programmers
  • zip file
  • Как да пишем лош програмен код - пълно ръководство
  • html file
  • Java Coding-Style Standards (AmbySoft Inc.)
  • pdf file
  • Java Coding-Style Standards (WisDOT)
  • pdf file
  • Avoiding Code Repetition - by Martin Fowler
  • pdf file
  • Continuous Integration - by Martin Fowler and Matthew Foemmel
  • rtf file
  • Evolving Object Oriented Designs with Refactorings - by Lance Tokuda and Don Batory
  • pdf file
  • The Concepts of Extreme Programming - ExtremeProgramming.org site
  • zip file
  • Refactoring A First Example - by Martin Fowler
  • rtf file
  • Refactoring Presentation from JavaOne Annual Conference, 2000 - by Martin Fowler
  • pdf file
  • The Importance of Being Closed - by Craig Larman
  • pdf file
  • Yet Another Optimization Article - by Martin Fowler
  • pdf file
  • Building Secure Software - by Gary McGraw and John Viega
  • zip file
  • Extracts from "Effective C++ : 85 Specific Ways to Improve Your Programs and Designs" by Scott Meyers
  • zip file
  • Methods for Information Systems Development - by Jonathan Campbell
  • zip file
  • Principled Programming - by Daniel Read
  • html file
  • Quality Assurance Plan - by Todd Plessel and Lockheed Martin
  • html file
  • Secure Programming for Linux and Unix "How To" - by David Wheeler
  • rtf file
  • Software Engeneering - book by Nguyen Xuan Huy
  • zip file
  • Software Design - presentation by Colin Potts
  • ppt file
  • Software Engineering: Theory and Practice - by Forrest Shull and Roseanne Tesoriero
  • pdf file
  • System Development Life Cycle - research paper by Ronald Wolak
  • html file
  • The New Software Development Methodology - by Martin Fowler
  • html file
  • The Waterfall Lifecycle Model and its Derivatives
  • html file
  • The Unified Software Development Process and Extreme Programming - by Brad Jones
  • zip file
  • Writing Research Papers - collection of articles
  • zip file
  • Writing Research Papers - collection of articles distilled by Svetlin Nakov
  • doc file
  • Quality Characteristics and Metrics for Reusable Software - by W. J. Salamon and D. R. Wallace
  • zip file
  • Refactoring - a brief description
  • html file
  • Refactoring - Basics and Motivation - by Jukka Viljamaa
  • doc file
  • Secure Programming for Linux and Unix HOWTO - by David A. Wheeler
  • zip file
  • Strong Lifecycle - Maintenance - by George Corliss
  • html file

    Допълнителна литература по темата (книги):

  • "Core C++: A Software Engineering Approach", Victor Shtern, Prentice Hall, 2001, ISBN 0130857297
  • "Effective C++ CD: 85 Specific Ways to Improve Your Programs and Designs", Scott Meyers, Addison-Wesley, 1999, ISBN 0201924889 & ISBN 020163371X
  • "Effective C++: 50 Specific Ways to Improve Your Programs and Designs", Scott Meyers, Addison-Wesley, 1997, ISBN 0201924889
  • "Effective C++: 35 New Ways to Improve Your Programs and Designs", Scott Meyers, Addison-Wesley, 1996, ISBN 020163371X
  • "Refactoring: Improving The Design of Existing Code", Martin Fowler, Addison-Wesley, 1999, ISBN 0201485672
  • "The Practice of Programming", Brian W. Kernighan, Rob Pike., Addison-Wesley, 1999, ISBN 020161586X
  • "Object-Oriented and Classical Software Engineering", Stephen Schach, McGraw-Hill, 2002, ISBN 007112263X
  • "Pragmatic Programmer: From Journeyman to Master", Andrew Hunt, David Thomas, Addison-Wesley, 1999, ISBN 020161622X
  • "Writing Solid Code", Steve Maguire, Microsoft Press, 1995, ISBN 1556155514


  • Книги, частично засягащи темата:
  • "Debugging C++: Troubleshooting for Programmers", Chris H. Pappas, William H. Murray, McGraw-Hill, 2000, ISBN 072125195
  • "Object-Oriented Software Engineering: Practical Software Development using UML and Java", Timothy Lethbridge and Robert Laganiere, McGraw Hill, 2001, ISBN 0077097610
  • "Essays on Object-Oriented Software Engineering, VOLUME I", Edward Berard, Prentice Hall, 1993, ISBN 0132888955
  • "Software Requirements", Karl Wiegers, ISBN 0735606315
  • "Building Secure Software", John Viega, Gary McGraw, ISBN 020172152X

  • Изпити и оценки:
         Крайната оценка се формира от два теста, направени по време на семестъра и курсова разработка, като тежестта им е съответно: 25%, 25% и 50%.
         Тестовете ще представляват 30 въпроса върху материала, обясняван по време на лекциите (който приблизително се покрива от съответните материали в книгата "Code Complete"). Всеки въпрос от теста има точно 1 верен отговор измежду изброените. При вярно отбелязан отговор студентът печели 1 точка за дадения въпрос, а в противен случай не печели точка. Съгласно тази система за оценяване от един тест могат да се спечелят до 30 точки, а от двата теста общо - до 60 точки.
         Освен двата теста, всеки студент може да спечели още до 60 точки от курсовата си разработка. Темата на курсовата разработка ще бъде зададена за всеки студент индивидуално от преподавателите след провеждането на първия тест. Всеки студент ще трябва да напише теоретично изледване върху зададения проблем, използвайки най-съвременни статии, книги и материали от Internet. Темите на курсовите разработки ще съвпадат приблизително с темите разглеждани на лекциите. Целта е студентите да дадат съвременно виждане по въпросите разглеждани в лекциите в рамките на около 5-10 стандартни текстови страници. Съдържанието на разработките трябва приблизително да покрива това, което е разглеждано по задената тема в книгата "Code Complete", като го представя в съвременен вариант и трябва да е допълнено със съвременни материали и виждания по въпроса. Най-добрите разработки ще бъдат публикувани на сайта и евентуално в някои компютърни списания (ако авторът даде съгласието си за това).
         Ако направи двата теста и предаде курсовия проект, всеки студент може да събере общо до 120 точки. Крайната оценка се определя в зависимост от събраните точки по следната схема:

    от 31 до 50 т Среден (3)
    от 51 до 70 т Добър (4)
    от 71 до 90 т Мн. Добър (5)
    от 91 до 120 т Отличен (6)

    Курсови разработки:
    Официален вариант на темите :
       html file    doc file
    Скелет на примерна курсова разработка, отговаряща на всички технически изисквания:
       rtf file

    Фото албум:
         Фоto албум на курса "Конструиране на качествен програмен код" от учебната 2002/2003

    За коментари и дискусии:
         Форумът на курса "Конструиране на качествен програмен код"


    © 2002 by Svetlin Nakov
    Project hosted at SourceForge Logo       Site statistics Site statictics