So far, I teach courses in the following subjects:
- Programming in C++ -
includes basics of C++, using MS Visual Studio, object oriented programming in C++, templates, exceptions, input/output,
standard template library, and sometimes basics of MFC and making MS Windows applications and libraries,
- Programming in Java -
includes basics of Java, using NetBeans, object oriented programming in Java, exceptions, input/output,
database access, basics of network programming in Java, using Swing & AWT,
writing JavaBeans,
- Database Development -
includes basics of database design (normalization, ER diagrams), developing databases in MS Access,
SQL as a query and database management language with MS SQL Server, programming stored procedures for
MS SQL Server, database administration using GUI tools,
- Software Engineering -
includes overview of software development life cycle, software development methods (like linear,
object oriented, or component models), managing software projects, managing projects with MS Project,
selecting development tools, basics of project timing and costing, risks involved in programming projects
and methods of managing those risks.
While teaching at ITT Technical Institute, I have to:
- develop daily lesson plans,
- successfully communicate the subjects to the students in a knowledgable, accurate, and organized manner,
- develop and supervise hands-on exercises for the students,
- accurately and objectively evaluate students' work,
- actively help students to achieve their course objectives.
For this position, mainly, I have to use the following skills:
- communication,
- teaching techniques,
- planning,
- programming in C++ & Java, using MS Visual Studio, using NetBeans & Eclipse, debugging skills in MS Visual Studio, NetBeans & Eclipse,
- database development - PL/SQL, database management, ER diagrams, database design, using Query Analyzer and Enterprise Manager for MS SQL Server, developing databases in MS Access,
- software project management - I have to plan my hands-on exercises with very high degree
of accuracy and adjust them depending on the abilities/background of my students to achieve
all stated course objectives,
- objective assessment of person's knowledge and skill.
During over four years of my employment @ Pitt, I taught the following subjects:
- Computer Networks - a detailed view of the TCP/IP protocol suite, basics of network protocols, basics of routing and addressing, basics of computer network programming, programming project involving sockets in Unix environment
- Introduction to Telecommunications - general introduction into telecommunication systems, basics of network protocols, basics of TCP/IP protocols, basics of telephone networks
- Software Tools and Techniques - hands-on introduction into Unix environment, scripting in Unix, C programming, Unix API for process management and input/output
- Local Area Networks - overview of local area protocols, detailed description of Ethernet protocol including Gigabit and 10Gigabit versions, Ethernet switch construction, Spanning Tree Protocol, Autonegotiation, line encoding for different versions of Ethernet,
- Client/Server & Workstation Systems - overview of client/server programming techniques (and supporting API), client/server programming project in Java or C++ in Unix environment,
- Queuing Theory - advanced course in network performance evaluation using queuing models
- Network Performance - basic course in network performance evaluation using monte-carlo simulation, and basic analytical models (like Erlang-B)
- Network Design - overview of network design techniques, network project costing, options for local area network design using wired and wireless networks, design and costing of leased long-distance connections, costing of access connections
- Internet Construction - undergraduate course - introduction to Internet protocols and network protocol basics
My duties and experience at Pitt included:
- developing course syllabi, course planning, creating lesson plans, lecture notes, publishing online materials for students,
- successfully communicating course content in an organized, accurate, and knowledgable manner,
- developing exams and objectively evaluating students' work,
- supervising graduate student assistants at lab experiment development for the hands-on course components,
- assigning and supervising students' projects,
- actively helping students achieve course objectives,
- supervising Telecommunications Program's website development.
The position required the following skills:
- communication,
- teaching techniques,
- planning,
- supervision of several projects/assignments,
- programming in C/C++ & Java, using GNU C++, Sun Workshop, NetBeans, Eclipse, debugging skills using GDB, DDD, Sun Workshop, NetBeans, Eclipse,
- scripting in Unix environment,
- development of network protocols and program code that implements them,
- development and documentation of client/server software using C++ (RPC, BSD sockets), and Java (RMI, sockets),
- reading and knowledge of network protocol specifications, identifying key elements of network protocols, identifying common misconceptions and problems,
- statistical analysis of network protocols and networking mechanisms, using monte-carlo simulations, as well as numerical and analog models in Mathematica,
- development of websites using HTML/CSS in Dreamweaver,
- software project planning, costing, and management,
- networking equipment administration - I had to configure networking equipment and develop lab exercises for students, as well as supervise and instruct assistants to do so. The equipment included Marconi/Fore ATM switches, Cisco ATM switches and IP routers, Ethernet switches and hubs of various brands, network adapters for PCs and Sun Workstations,
- administartion and use of Unix workstations - Sun/Solaris and PC/Linux,
- objective assessment of person's knowledge and skill.
My duties as a researcher included:
- Creating individual research plans,
- Developing research grant proposals,
- Participating in team's research,
- Pursuing my own research interests,
As the Head of Multimedia Systems Group, I was responsible for:
- Supervising a group of three researchers,
- Creating team research plans and supervising individual research plans,
- Coordinating team's research,
- Creating and maintaining research environment for team members,
- Developing research grant proposals,
- Participating in team's research,
- Pursuing my own research interests,
During that time, I have
- completed and defended my own PhD dissertation,
- participated in two international cooperation projects,
- participated and successfully completed one major research project that involved seven other people from the institute,
- published several papers in conferences and journals, both individually and with other coauthors,
- while I was the head of the research group, all my team members have completed their respective degrees (one PhD,
and two master theses).
At that position, mainly, I used the following skills:
- communication,
- planning and organization of work,
- programming in C/C++ in Unix environment,
- created mathematical models of computer systems and solved them numerically or analytically using either custom-written C/C++ software or Mathematica,
- technical writing,
- project planning and costing,
- supervision of other people's work,
- administration of Unix machines,
- reading and implentation of technical specifications.