The paper analyses the problems in selecting and integrating tools for delivering basic programming knowledge at the university level. Discussion and analysis of teaching the programming disciplines, the main principles of study programme design, requirements for teaching tools, methods and corresponding languages is presented, based on literature overview and author`s experience. A pressure from labor market, students and other sources to emphasize practical skills over deeper, long-term programming concepts is described. A model of teaching introductory programming disciplines at a higher logical level, using C#, is presented as a summary of the accomplished analysis, and also taking into account the recommendations of the ACM (Association for Computing Machinery) association for typical teaching programs. Also, design principles for building introductory programming courses, aligned with such teaching approach, are presented. This model has already been trialed at Vytautas Magnus University.