
Java Web Applications
Development
(winter semester 2006/2007, Sofia University "St. Kliment Ohridski")
The course “Java Web Applications 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.
Programming for the .NET Framework
2.0
(winter semester 2006/2007, Sofia University "St. Kliment Ohridski")
The "Programming for the .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.
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
(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.
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.
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.
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.
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 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.
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 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 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.
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.
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.