Menu

 

Thoughts on Software Engineering

Svetlin Nakov – University Courses

  • SEO
  • http protocol
  • html
  • Web marketing

Search Engine Optimization (SEO)

(winter semester 2011/2012, Telerik Academy)

The “Search Engine Optiomization (SEO)” course introduces the students how to optimize their Web sites for better positioning in the search engine result pages (SERP) by performing internal (on-site) and external optimization. Main topics of study are: what is SEO and how Google works, SEO assessment, SEO planning, building SEO-friendly Web sites (site architecture fo SEO), Web marketing and copyrighting for Web, writing high-quality SEO articles, link building, SEO in the social networks, online reputation management, SEO tools, micro-formats and vertical search, local SEO and Google Places. Students graduate with a practical SEO project: a site of their own optimized during the entire course and defended in front of the SEO course trainers team.
  • C#
  • ASP.NET
  • programming
  • object-oriented programming
  • AJAX
  • server technologies
  • SQL
  • http protocol
  • html
  • xml
  • CSS
  • javascript

Web Development with ASP.NET MVC

(winter semester 2011/2012, Telerik Academy and Sofia University “St. Kliment Ohridski”)

The „Web Development with ASP.NET MVC” course introduces the students to the fundamentals of C# programming, .NET Framework, databases and Web application development with ASP.NET MVC and HTML5. Students learn how to build dynamic data-driven Web applications with MS SQL Server and ASP.NET MVC. The course starts with the basics of C# language (data types, expressions, statements, loops, arrays, methods, strings, collections, exceptions, etc.), object-oriented programming with C# (classes and interfaces, inheritance and polymorphism, constructors, properties, events, methods, etc.), relational databases, database design, E/R diagrams, SQL language and SQL Server, data access technologies (LINQ and ADO.NET Entity Framework). The main focus is on Web technologies, starting from HTTP, HTML, HTML5, CSS, CSS3, JavaScript and jQuery, through the fundamentals of ASP.NET and ASP.NET MVC (models, views, controllers, routes, view helpers, typed views, MVC scaffolding, unit testing and TDD). All topics covered in the MVC course are demonstrated in a live practical session showing how to build a sample dynamic rich-data MVC application from scratch, step-by-step. The course focuses on .NET Framework 4.0, SQL Server 2008, ASP.NET MVC 4 and Visual Studio 2010. Students graduate with a practical project: developing a complex data-driven ASP.NET MVC application with C#, SQL Server, ADO.NET EF, HTML5 and ASP.NET MVC.

  • http protocol
  • html
  • CSS
  • javascript
  • jQuery
  • AJAX
  • mobile development
  • programming
  • object-oriented programming

Cross-Platform Mobile Development

(winter semester 2011/2012, Telerik Academy)

The “Cross-Platform Mobile Development” course introduces the students how to create mobile applications for iOS, Android, Windows Phone, Blackberry, Symbian, Bada and other mobile platforms using HTML5, JavaScript and PhoneGap. The course provides practical skills for designing applications for smart phones and tablets following the concepts of the modern Web development using HTML5, CSS3, JavaScript and jQuery, building mobile UI with jQuery Mobile, communicating with the server-side using REST services with jQuery AJAX and JSON, accessing the device APIs through PhoneGap (like geolocation, phonebook, messaging, camera, file system, notifications, networking, accelerometer, etc.) and packiging, deployment and testing applications for different mobile platforms. Students graduate with a solid practical project: developing a mobile application based on PhoneGap which consumes given REST service and provides client-side functionality for tablets, mobile phones and other mobile devices, targeting Android, iOS and WP7.
  • HTTP
  • HTML5
  • JavaScript
  • jQuery
  • AJAX

Client-Side Web Development

(summer semester 2011/2012, Telerik Academy)

The “Client-Side Web Development” course teached how to build modern client-side web applications with HTML5 and JavaScript. It covers HTML5 and its APIs, JavaScript basics, advanced JavaScript programming, JavaScript OOP, JavaScript frameworks and jQuery, JavaScript UI Frameworks (like KendoUI, YUI, KendoMobile, jQuery UI, jQuery Mobile), responsive Web design and media queries and consuming REST services with jQuery AJAX and JSON. The course finishes with a practical project: implementing a client-side Web application by given REST service using HTML5, JavaScript, jQuery and AJAX.
  • http protocol
  • html
  • CSS
  • javascript
  • jquery

Web Front-End Development

(summer semester 2010/2011, Telerik Academy)

The “Web Front-End Development” course provides concepts, technologies and skills for development of Web front-end applications with HTML, CSS, JavaScript and jQuery as well as working with popular CMS systems like WordPress. Students get skills in Web design, using PhotoShop, slice and dice of Web sites into HTML5 + CSS3, working with CMS systems, using sprites and other advanced Web site development front-end techiques. The course is held as part of the free trainings in Telerik Academy and targets the students from the computer science related specialties from all Universities in Sofia as well as from elite High Schools who want to develop career as front-end Web development professionals. Students graduate with a practical project: slice and dice of given Web design given as Photoshop file into XHTML or HTML5 with CSS, images and JavaScript.
  • High-quality programming code
  • programming

High-Quality Programming Code

(summer semester 2010/2011, Telerik Academy and Sofia University “St. Kliment Ohridski”)

The „High-quality programming code” course objective is to introduce the students to the principles of high-quality programming code construction during the software development process. The quality of the code is discussed in its most important characteristics – correctness, readability and maintainability. The principles of construction of high-quality class hierarchies, classes and methods are explained. Two fundamental concepts – “loose coupling” and “strong cohesion” are defined and their effect on the construction of classes and subroutines is discussed. Some advices for correctly dealing with the variables and data are given, as well as directions for correct naming of the variables and the rest elements of the program. Best practices for organization of the logical programming constructs are explained. Some methodologies for testing, debugging and code optimization are introduced. Special attention is given also to the “refactoring” as a technique for improving the quality of the existing code, unit testing and test-driven development. The principles of good formatting of the code are defined and explained. The concept of “self-documenting code” as a programming style is introduced. The techniques and practices for constructing high-quality programming code discussed in the course are independent of the programming languages. To graduate the course students are assigned two practical projects and a test examination. The practical projects consist of refactoring existing low-quality code, making the code testable, adding unit tests and measuring the code coverage to ensure the code is well tested.
  • programming
  • java
  • object-oriented programming
  • xml
  • html
  • CSS
  • javascript
  • server technologies
  • SQL

Java EE Development

(winter and summer semester 2010/2011, Technical University of Sofia, University of Insurance and Finance – VUZF)

The course covers the most important concepts and technologies regarding Java and Java EE application development. It starts from Java programming fundamentals (loops, arrays, collections, input/output, object-oriented programming), continues with databases and XML (relational databases, data modeling, SQL, Oracle, hibernate ORM engine, JPA, XML, JAXP). The next part covers HTML and CSS (HTTP, HTML, CSS, JavaScript and creating static web sites). The next part focuses on Java Web development (servlets, JSP, Tomcat, JavaServer Faces (JSF), JBoss RichFaces). As a step towards enterprise development the course continues with the Spring Framework (inversion of control containers, dependency injection, integrating Spring with Hibernate and JSF). Finally the Java EE fundamentals are on focus (Java EE architecture, application servers, JMS, EJB, Web services, etc). The course combines theoretical lectures with practical exercises in class, mixed with many live demonstrations and several exams.
  • C#
  • ASP.NET
  • programming
  • object-oriented programming
  • AJAX
  • server technologies
  • SQL
  • http protocol
  • html
  • xml
  • CSS
  • JavaScript

Web Applications Development with .NET Framework and ASP.NET

(winter semester 2010/2011, Technical University of Sofia and Sofia University “St. Kliment Ohridski”)

The „Web Applications Development with .NET Framework and ASP.NET” course objective is to introduce the students to the fundamentals of C#, .NET Framework, databases and Web application development with ASP.NET and AJAX. Students will learn how to build dynamic data-driven Web applications with SQL Server and ASP.NET. The course starts with the basics of C# language (data types, expressions, statements, loops, arrays, methods, strings, collections, exceptions, etc.), object-oriented programming with C# (classes and interfaces, constructors, properties, events, methods, etc.), relational databases, SQL language and SQL Server, data access technologies (LINQ and ADO.NET Entity Framework). The main focus is on Web technologies, starting from HTTP, HTML, CSS and JavaScript, through the fundamentals of ASP.NET and ASP.NET Web Forms. Advanced topics include building rich-data applications with ASP.NET data-bound controls, using master pages and AJAX. All topics covered in the course will be demonstrated in a practical session demonstrating how to build building a sample dynamic rich-data Web application from scratch, step-by-step. The course focuses on .NET Framework 4.0, SQL Server 2008, ASP.NET 4.0 and Visual Studio 2010.

  • High-quality programming code
  • programming

High-Quality Programming Code

(summer semester 2009/2010, Technical University of Sofia and Sofia University “St. Kliment Ohridski”)

The „High-quality programming code” course objective is to introduce the students to the principles of high-quality programming code construction during the software development process. The quality of the code is discussed in its most important characteristics – correctness, readability and maintainability. The principles of construction of high-quality class hierarchies, classes and methods are explained. Two fundamental concepts – “loose coupling” and “strong cohesion” are defined and their effect on the construction of classes and subroutines is discussed. Some advices for correctly dealing with the variables and data are given, as well as directions for correct naming of the variables and the rest elements of the program. Best practices for organization of the logical programming constructs are explained. Some methodologies for testing, debugging and code optimization are introduced. Attention is given also to the “refactoring” as a technique for improving the quality of the existing code. The principles of good formatting of the code are defined and explained. The concept of “self-documenting code” as a programming style is introduced. The techniques and practices for constructing high-quality programming code discussed in the course are independent of the programming languages.

  • C#
  • ASP.NET
  • programming
  • object-oriented programming
  • AJAX
  • server technologies
  • SQL
  • http protocol
  • html
  • xml
  • CSS
  • javascript

Web Applications Development with .NET Framework and ASP.NET

(summer semester 2009/2010, Technical University of Sofia)

The „Web Applications Development with .NET Framework and ASP.NET” course objective is to introduce the students to the fundamentals of C#, .NET Framework, databases and Web application development with ASP.NET and AJAX. Students will learn how to build dynamic data-driven Web applications with SQL Server and ASP.NET. The course starts with the basics of C# language (data types, expressions, statements, loops, arrays, methods, strings, collections, exceptions, etc.), object-oriented programming with C# (classes and interfaces, constructors, properties, events, methods, etc.), relational databases, SQL language and SQL Server, data access technologies (LINQ and LINQ-to-SQL). The main focus is on Web technologies, starting from HTTP, HTML, CSS and JavaScript, through the fundamentals of ASP.NET and ASP.NET Web Forms. Advanced topics include building rich-data applications with ASP.NET data-bound controls, using master pages, AJAX and Silverlight. All topics covered in the course will be demonstrated in a practical session demonstrating how to build building a sample dynamic rich-data Web application from scratch, step-by-step.

  • C#
  • High-quality programming code
  • programming

Design Patterns in C#

(summer semester 2007/2008, Sofia University “St. Kliment Ohridski”)

The course “Design Patterns” introduces to the students the most widely used patterns for creating flexible industrial quality object-oriented software and the principles and practices for their application. The course focuses on the software architecture and design phase of the software development life-cycle. It covers the classical GoF patterns (creational, functional and behavioral) as well as some additional topics like architectural patterns (like MVC). Each pattern is presented by its general description, structure (given as UML diagrams), purpose, typical use scenarios, implementation in C# and few real-world examples.

  • programming
  • java
  • object-oriented programming

NETB368 – Java System & User Application Development

(summer semester 2006/2007, New Bulgarian University)

The course “Java System & User Application Development” introduces the Java GUI programming with Swing. It covers desktop applications development with AWT / Swing and Java applets. Students learn how to create forms, dialogs, handle events, use the built-in GUI controls in Eclipse IDE.

  • programming
  • java
  • object-oriented programming

NETB358 – Programming in Java

(summer semester 2006/2007, New Bulgarian University)

The course “Programming in Java” introduces the principles of program design, implementation, testing and documentation and develops an understanding of the concepts involved in object-oriented development with the Java SE platform. Students are supposed to learn the main syntax constructs of Java, fundamental methods of general programming, and object-oriented programming.

  • programming
  • java
  • object-oriented programming
  • AJAX
  • html
  • CSS
  • javascript
  • server technologies
  • SQL

Java Web Application Development

(winter semester 2006/2007, Sofia University “St. Kliment Ohridski”)

The course “Java Web Application Development” introduces to the students the principles of Web applications development with the Java Enterprise Edition (Java EE) platform. The course content starts with an introduction to the Web standards (HTTP, HTML, CSS, JavaScript) and introduction to the Java technologies for generation of dynamic Web content (Servlets / JSP and Tomcat server). Some more complex technologies follow: custom tags, EL, JSTL. Two major approaches to Java Web development are presented in details: Struts framework and JavaServer Faces (JSF). Finally the technology AJAX is introduced along with some techniques for integrating it in Java Web applications.

  • C#
  • ASP.NET
  • programming
  • xml

Programming for .NET Framework 2.0

(winter semester 2006/2007, Sofia University “St. Kliment Ohridski”)

The “Programming for .NET Framework 2.0” objective is to introduce the students to the principles of application development for the Microsoft .NET Framework 2.0. The most important topics covered include: Architecture of .NET Framework, CLR managed execution environment, C# language, Common Type System (CTS), .NET components (assemblies), Framework Class Library, as well as Remoting and Web-services. Accessing data with ADO.NET, working with XML, creating graphical user interface with Windows Forms and Web applications with ASP.NET are also covered. More advanced topics like reflection, multithreading, interoperability, enterprise services and mobile computing are also examined.

  • High-quality programming code
  • programming

Design Patterns

(summer semester 2005/2006, Sofia University “St. Kliment Ohridski”)

The course “Design Patterns” introduces to the students the most widely used patterns for creating flexible industrial quality object-oriented software and the principles and practices for their application. The course focuses on the software architecture and design phase of the software development life-cycle. It covers the classical GoF patterns (creational, functional and behavioral) as well as some additional topics like architectural patterns (like MVC). Each pattern is presented by its general description, structure (given as UML diagrams), purpose, typical use scenarios, implementation in C# and few real-world examples.

  • C#
  • ASP.NET
  • programming
  • xml

Programming for the .NET Framework

(winter semester 2005/2006, Sofia University “St. Kliment Ohridski”)

The “Programming for the .NET Framework” course objective is to introduce the students to the principles of application development for the Microsoft .NET Framework. The most important topics covered include: Architecture of .NET Framework, CLR managed execution environment, C# language, Common Type System (CTS), .NET components (assemblies), Framework Class Library, as well as Remoting and Web-services. Accessing data with ADO.NET, working with XML, creating graphical user interface with Windows Forms and Web applications with ASP.NET are also covered. More advanced topics like reflection, multithreading, interoperability are also examined.

  • High-quality programming code
  • programming

High-Quality Programming Code

(summer semester 2004/2005, Sofia University “St. Kliment Ohridski”)

The “High-quality programming code” course objective is to introduce the students to the principles of high-quality programming code construction during the software development process. The quality of the code is discussed in its most important characteristics – correctness, readability and maintainability.

  • C#
  • ASP.NET
  • programming
  • xml

Programming for the .NET Framework

(winter semester 2004/2005, Sofia University “St. Kliment Ohridski”)

The “Programming for the .NET Framework” course objective is to introduce the students to the principles of application development for the Microsoft .NET Framework. The most important topics covered include: Architecture of .NET Framework, CLR managed execution environment, C# language, Common Type System (CTS), .NET components (assemblies), Framework Class Library, as well as Remoting and Web-services. Accessing data with ADO.NET, working with XML, creating graphical user interface with Windows Forms and Web applications with ASP.NET are also covered. More advanced topics like reflection, multithreading, interoperability, enterprise services and mobile computing are also examined.

  • http protocol
  • programming
  • java
  • object-oriented programming
  • server technologies

Internet Programming with Java

(summer semester 2003/2004, Sofia University “St. Kliment Ohridski”)

Тhe “Internet programming with Java” course objective is to introduce the students to the base technologies in the area of Internet-oriented programming with Java. These tehcnlogies include TCP/IP netwotk programming, Java applets development and Web-application development with Servlets/JSP, Tomcat and Struts framework.

  • C#
  • ASP.NET
  • programming
  • network security
  • server technologies
  • SQL
  • java
  • C++

Network Security – Part 2

(winter semester 2003/2004, Sofia University “St. Kliment Ohridski”)

The Network Security Course (Part 2) introduces the students to the base concepts of secure programming. This includes introduction to the most popular vulnarabilities against interpretable and compilable programming languages like “incorrect input validation”, “race conditions”, problems due to differences in the operating systems, “shell injection”, “SQL injection”, error handling problems, problems due to unchecked environment/context, etc. The course gives attention to the specific security issues typical for PHP, Perl and Unix shell scripting. The theory of buffer overflow/underrun vulnerability is discussed as well as how to build secure code in C/C++. As a next step security issues in Java and .NET languages as well as Web programming issues take the focus and the typical Web vulnerabilities like “cross site scripting”, “cookie and session hijacking” are also discussed. The course finishes with overview of backdoors, trojan horses, viruses and worms.

  • programming
  • Algorithms
  • Data structures

Design and Analysis of Computer Algorithms – Part 1

(winter semester 2003/2004, Sofia University “St. Kliment Ohridski”)

The “Design and Analysis of Computer Algorithms – Part 1” course objective is to introduce the students to the design and analysis of algorithms for some of the most frequently encountered computational problems. The course aims to provide familiarity with general algorithmic techniques, performance measures and problem areas. General topics to be covered include: simple numerical algorithms, fundamental data structures, recursion, sorting, searching, graph searching and optimization algorithms, dynamic programming, divide and conquer techniques, NP-completeness, backtracking, greedy and approximation algorithms.

  • network technologies
  • network security
  • programming
  • ASP.NET

Network Security – Part 1

(winter semester 2003/2004, Sofia University “St. Kliment Ohridski”)

The Network Security Course (Part 1) introduces the students with the base security concepts in Internet and local TCP/IP networks. This includes introduction to networking, cryptography, datalink and network layer security issues, network management protocols, security processes and policy, security models in various operating systems (UNIX, Linux, Windows), some popular Internet services (DNS, Mail, FTP, WWW, RPC), auditing tools, remote administration, backup systems, remote attacks, single sign-on, PAM, one-time passwords, Active Directory and .NET security.

  • C#
  • ASP.NET
  • programming
  • xml

Programming for the .NET Platform

(summer semester 2002/2003, Sofia University “St. Kliment Ohridski”)

The “Programming for the .NET Platform” course objective is to introduce the students to the principles of application development for the Microsoft .NET platform. The most important topics covered include: Base concepts of the platform, architecture, CLR managed execution environment, .NET components (assemblies), Framework Class Library, as well as Remoting and Web-services technologies. Accessing data with ADO.NET, working with XML, creating graphical user interface with Windows Forms and Web applications with ASP.NET are also in the course plan. The course aims only to introduce the bases of .NET platform without discussing it in deep details.

  • High-quality programming code
  • programming

High-Quality Programming Code Construction

(winter semester 2002/2003, Sofia University “St. Kliment Ohridski”)

Тhe “High-Quality Programming Code Construction” course objective is to introduce the students to principles of writing high-quality, highly reliable, easy-to-read and maintainable programming code. Most important topics covered are: building routines, structured and modular programming, using variables and data structures, using control structures, code layout and documentation, code quality, debugging and code-tuning.

  • network technologies
  • network security
  • programming
  • ASP.NET

Network Security

(winter semester 2002/2003, Sofia University “St. Kliment Ohridski”)

The “Network Security” course is intended to introduce the students to the base concepts for security in Internet and local area networks. The course concerns the security issues in the most wide-spread operating systems and platforms like Microsoft, UNIX, Linux, Novell, etc. Some vulnerabilities scanners and tools for local and remote attacks are discussed. A special attention is payed to the security of the basic services in Internet like E-Mail, WWW, FTP, DNS, etc., as well as to the actions for preventing the potential intrusions and attacks against these services. The theory of some important vulnerabilities, exploits, cryptography and physical attacks is also discussed. The course also gives some particular advices for protecting from potential hackers’ attacks.

  • http protocol
  • programming
  • java
  • object-oriented programming
  • server technologies

Internet Programming with Java

(summer semester 2001/2002, Sofia University “St. Kliment Ohridski”)

Тhe “Internet programming with Java” course objective is to introduce the students to the base technologies and concepts in the area of Internet-oriented programming with Java. It concerns Java socket programming, Java applets and J2EE Web-applications based on Servlet/JSP technology. A special attention is payed on the development of Java-based Internet/Intranet applications that communicate through TCP/IP protocols – chat client/servers, Web servers, proxy and forward servers, mail client/servers, etc. The technology of Java applets is also concerned – creating user interface with AWT, creating Java applets, applets advantages and limitations, communication between applets and other applications, etc. The Web applications development based on Servlets and JSP (Java Server Pages) is discussed. The base concepts of Web programming like HTTP protocol, requests, responses, cookies, sessions, and etc. are introduced. Also using Apache Tomcat server, creating and deploying Web applications according to the J2EE standards, creating custom tags, and some other issues are concerned.

  • programming
  • Algorithms
  • Data structures

Design and Analysis of Computer Algorithms

(winter semester 2001/2002, Sofia University “St. Kliment Ohridski”)

The “Design and Analysis of Computer Algorithms” course objective is to introduce the students to the design and analysis of algorithms for some of the most frequently encountered computational problems. The course aims to provide familiarity with general algorithmic techniques, performance measures, and problem areas – a knowledge that anyone conducting research in computer science should have. General topics to be covered include: simple numerical algorithms, fundamental data structures, sorting and searching, graph searching and graph algorithms, dynamic programming, divide and conquer, NP-completeness, greedy and approximation algorithms as well as compression techniques.

Tags:
Previews (45,941), Views (17,654), Comments (1)

One Response to “Svetlin Nakov – University Courses”

  1. […] студенти нараства на няколко стотици. Възраждат се безплатните курсове по софтуерни технологии по универ… (Уеб дивелъпмънт с ASP.NET, Качествен програмен код и […]

RSS feed for comments on this post. TrackBack URL

LEAVE A COMMENT