210 likes | 246 Views
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 Science s University of Novi Sad Serbia. Outline:.
E N D
Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August28, 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 SocietyGuide 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 • Mathematical foundations • Computing foundations
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).