456-0524/01 – Programming Techniques (PTE)

Gurantor departmentDepartment of Computer ScienceCredits6
Subject guarantorIng. Marek Běhálek, Ph.D.Subject version guarantorIng. Marek Běhálek, Ph.D.
Study levelundergraduate or graduateRequirementCompulsory
Year1Semesterwinter
Study languageCzech
Year of introduction1999/2000Year of cancellation2009/2010
Intended for the facultiesFEIIntended for study typesBachelor
Instruction secured by
LoginNameTuitorTeacher giving lectures
BEH01 Ing. Marek Běhálek, Ph.D.
FAB038 Ing. Tomáš Fabián, Ph.D.
GAU01 Ing. Jan Gaura, Ph.D.
NAV79 Ing. Lumír Návrat
SIK107 Ing. Rostislav Sikora
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Credit and Examination 2+2
Combined Credit and Examination 2+2

Subject aims expressed by acquired skills and competences

Students improve their knowledge of programming techniques and they gain experience practically using them on concrete examples. After course’s graduation students will be to choose an appropriate component technology for realization of large projects and they will be able to practically use components in their applications. Also they will learn and practically use many tools for application’s development.

Teaching methods

Summary

The course covers areas of advanced programming techniques and methods, including program design, implementation, testing, and documentation. Students get experience with development tools and development environments and learn about different component technologies and their role in application development. Then they can use this experience when developing their own applications.

Compulsory literature:

Běhálek M.:Skripta k předmětu PTE, available at www.cs.vsb.cz/behalek/vyuka/pte

Recommended literature:

Campione, Walrath, Huml: The Java Tutorial - A Short Course on the Basics. Addison-Wesley, 2000, ISBN 0201703939. Materials available at WWW: msdn.microsoft.com, java.sun.com.

Way of continuous check of knowledge in the course of semester

Conditions for inclusion: At least 21 points from 45 points is required. Students can obtain points for a realization of two projects. Exams condition is written test where students must get at least 25 points from 55 points.

E-learning

Další požadavky na studenta

Prerequisities

Subject has no prerequisities.

Co-requisities

Subject has no co-requisities.

Subject syllabus:

Lectures: Introduction: Goals and contents of the course, requirements, organization, resources. Programming languages classification. Usage and applications of compilers. Source and target languages. History of programming languages and compilers: theoretical aspects, first programming languages and compilers, high-order programming languages, structured programming, modular languages, object-oriented languages, scripting languages. Functional and logic programming languages: Declarative style of programming, advantages and disadvantages of this approach, basics of Lambda Calculus, implementation of practical examples in Haskell. Scripting languages: description of differences between traditional languages and scripting languages, description of some representatives of scripting languages, practical examples, overview of PHP. Imperative programming languages: basic principles, imperative programming languages. Examples of different programming paradigms. Object-oriented programming: basic principles, less known object-oriented programming languages. Structure and functions of a compiler: Source code models, transformations. Compiler organization - phases, passes. One-pass and optimising compilers. Utility programs. Testing and maintenance of a compiler. Lexical analysis: Function of a scanner, symbol representation. Regular languages, finite automaton, regular expression. Scanner implementation. Parsing: Goals and methods of the syntactic analysis. Top-down and Bottom-up analysis. LL(1) grammars, FIRST and FOLLOW set computation. Parsing table. Parser implementation: Pushdown automaton for LL(1) languages. Recursive descent analysis. Syntax directed translation: Translation grammar, attribute translation grammar. Implementation of attribute translation during top-down parsing. Compiler Compiler JavaCC. Symbol table: Basic notions - binding, range, visibility, life time. Functions of symbol table. Programming language model. Organization of symbol table. Block structured symbol table. Implementation. Internal representation of program: Formats of internal representation - graph, stack code, three-address code. Implementation of three-address code. Translation of expressions. Array items addressing. Translation of Boolean expressions. Generation of stack code as attribute translation. Run-time program structure: Run-time system. Subroutines - activation, static and dynamic structure, activation record. Memory organization, memory allocation for activation records, access pointers. Parameter passing. Projects: There will be two projects in this course. Firs will be an implementation of some task in less known programming language. Second will be a simple compiler. Computer labs: Examples of different programming paradigms. Examples of declarative style of programming. Practical implementation of some simple tasks in Haskell. Implementation of some tasks in Haskell. Scripting languages: Implementation of simple task in PHP. Imperative and object oriented languages. Examples of programs written in some less known languages. Work on firs project. Implementation in simple filters and lexical analyzers. Practical realization of grammars for a basic constructions common in programming languages. Implementation of algorithms for a computation of sets FIRST a FOLLOW. Demonstration of LL(1) a LR(1) based syntactic analyzers. Implementation of a syntactic analyzer using recursive descent. Implementation of a simple compiler using compiler compiler JavaCC. Work on second project.

Conditions for subject completion

Combined form (validity from: 1960/1961 Summer semester, validity until: 2007/2008 Summer semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of points
Exercises evaluation and Examination Credit and Examination 100 (145) 51
        Examination Examination 100  0
        Exercises evaluation Credit 45  0
Mandatory attendence parzicipation:

Show history

Occurrence in study plans

Academic yearProgrammeField of studySpec.FormStudy language Tut. centreYearWSType of duty
2009/2010 (B2646) Information Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Compulsory study plan
2009/2010 (B2646) Information Technology (2612R059) Mobile Technology P Czech Ostrava 2 Compulsory study plan
2009/2010 (B2646) Information Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Compulsory study plan
2009/2010 (B2646) Information Technology (2612R059) Mobile Technology K Czech Ostrava 2 Compulsory study plan
2008/2009 (B2646) Information Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Compulsory study plan
2008/2009 (B2646) Information Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Compulsory study plan
2008/2009 (B2646) Information Technology (2612R059) Mobile Technology P Czech Ostrava 2 Compulsory study plan
2008/2009 (B2646) Information Technology (2612R059) Mobile Technology K Czech Ostrava 2 Compulsory study plan
2008/2009 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Compulsory study plan
2008/2009 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Compulsory study plan
2008/2009 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Compulsory study plan
2008/2009 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Compulsory study plan
2008/2009 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Compulsory study plan
2008/2009 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Compulsory study plan
2008/2009 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Compulsory study plan
2008/2009 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Compulsory study plan
2007/2008 (B2646) Information Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Compulsory study plan
2007/2008 (B2646) Information Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Compulsory study plan
2007/2008 (B2646) Information Technology (2612R059) Mobile Technology P Czech Ostrava 2 Compulsory study plan
2007/2008 (B2646) Information Technology (2612R059) Mobile Technology K Czech Ostrava 2 Compulsory study plan
2007/2008 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Compulsory study plan
2007/2008 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Compulsory study plan
2007/2008 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Compulsory study plan
2007/2008 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Compulsory study plan
2007/2008 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Compulsory study plan
2007/2008 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Compulsory study plan
2007/2008 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Compulsory study plan
2007/2008 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Compulsory study plan
2006/2007 (B2646) Information Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Compulsory study plan
2006/2007 (B2646) Information Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Compulsory study plan
2006/2007 (B2646) Information Technology (2612R059) Mobile Technology P Czech Ostrava 2 Compulsory study plan
2006/2007 (B2646) Information Technology (2612R059) Mobile Technology K Czech Ostrava 2 Compulsory study plan
2006/2007 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Compulsory study plan
2006/2007 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Compulsory study plan
2006/2007 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Compulsory study plan
2006/2007 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Compulsory study plan
2006/2007 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Compulsory study plan
2006/2007 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Compulsory study plan
2006/2007 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Compulsory study plan
2006/2007 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Compulsory study plan
2005/2006 (N2646) Information Technology (2612T025) Computer Science and Technology P Czech Ostrava 1 Compulsory study plan
2005/2006 (B2646) Information Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Compulsory study plan
2005/2006 (B2646) Information Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Compulsory study plan
2005/2006 (N2646) Information Technology (2612T025) Computer Science and Technology K Czech Ostrava 1 Compulsory study plan
2005/2006 (B2646) Information Technology (2612R059) Mobile Technology P Czech Ostrava 2 Compulsory study plan
2005/2006 (B2646) Information Technology (2612R059) Mobile Technology K Czech Ostrava 2 Compulsory study plan
2004/2005 (N2646) Information Technology (2612T025) Computer Science and Technology P Czech Ostrava 1 Compulsory study plan
2004/2005 (B2646) Information Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Compulsory study plan
2004/2005 (B2646) Information Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Compulsory study plan
2004/2005 (N2646) Information Technology (2612T025) Computer Science and Technology K Czech Ostrava 1 Compulsory study plan
2004/2005 (B2646) Information Technology (2612R059) Mobile Technology P Czech Ostrava 2 Compulsory study plan
2004/2005 (B2646) Information Technology (2612R059) Mobile Technology K Czech Ostrava 2 Compulsory study plan
2003/2004 (N2646) Information Technology (2612T025) Computer Science and Technology P Czech Ostrava 1 Compulsory study plan
2003/2004 (B2646) Information Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Compulsory study plan
2003/2004 (B2646) Information Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Compulsory study plan
2003/2004 (N2646) Information Technology (2612T025) Computer Science and Technology K Czech Ostrava 1 Compulsory study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner