Presentation on theme: "Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013."— Presentation transcript:
Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013
Andreja Tepavčević Department of Mathematics and Informatics Faculty of Sciences University of Novi Sad Serbia
Outline: New accreditation round at Faculty of Sciences, UNI Novi Sad Theoretical computer science SWEBOK Current situation at UNI Novi Sad Conclusion
New accreditation round at Faculty of Sciences Programs Bachelor Informatics 3 years Modules: Computer Sciences Information Technologies Bachelor Informatics 4 years Master Informatics 2 years: Modules: Computer Sciences Software Engineering Information Technologies
Adjusting programmes at UNI for the new accreditation round How it was through the history of the department?
Theoretical computer science (TCS) is a division (or subset) of general computer science and mathematics which focuses on more abstract or mathematical aspects of computing. (from Wikipedia)
The field of TCS include algorithms, data structures, computational complexity theory, distributed computation, parallel computation, machine learning, information theory, cryptography, quantum computation, computational number theory and algebra, program semantics and verification, automata theory, the study of randomness,…
Important aspects: mathematical technique and rigor
IEEE Computer Society Guide to the Software Engineering Body of Knowledge (SWEBOK)
The SWEBOK Guide: characterizes the contents of the software engineering discipline promotes a consistent view of software engineering worldwide clarifies software engineering's place with respect to other disciplines provides a foundation for training materials and curriculum development, provides a basis for certification and licensing of software engineers.
Engineering foundations Empirical Methods and Experimental Techniques Statistical Analysis Measurement Engineering Design Modeling, Simulation, and Prototyping Standards
Computing foundations: Not all courses in computer science are related or equally important to software engineering
Computing foundations Problem Solving Techniques Abstraction Programming Fundamentals and Programming Language Basics Debugging Tools and Techniques Data Structure and Representation Algorithms and Complexity Basic Concept of a System Computer Organization Secure Coding,…
Mathematics for a software engineer is mostly connected to the logic and reasoning.
Mathematical foundations Sets, relations, functions Basic logic Proof Techniques Basics of Counting Graphs and Trees Discrete Probability Finite State Machines Grammars Numerical precision Number Theory Algebraic Structures
Situation at UNI Novi Sad Software engineering curriculum: -Bachelor Informatics 3 years’ -Master in Informatics (a module - Master in SE)
Courses connected with TCS Bachelor 3 years: Obligatory courses for both modules: Computing foundations Mathematical foundations e.g. Mathematical logics and basics of algebra, Discrete Mathematics, Formal Languages and Automata,… + Several elective courses
Master in SE It is assumed that students already learned TCS fundamentals at bachelor level No obligatory courses in TCS at master level Some elective courses as Applied Mathematical Statistics, Mathematical Logics, Combinatorial Algorithms In practice, they are rarely chosen by students
Do we need TCS in SE curriculum? Yes, we do because TCS provides necessary basics to SE. Yes, we do, although the courses and methods should be very carefully chosen Yes, not because mathematicians insist that mathematics is needed, but because some basics is really needed (according to SWEBOK guide).