21
Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Embed Size (px)

Citation preview

Page 1: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad

Bansko, August 28, 2013

Page 2: 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 InformaticsFaculty of Sciences

University of Novi SadSerbia

 

Page 3: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Outline:

New accreditation round at Faculty of Sciences, UNI Novi Sad Theoretical computer science SWEBOK Current situation at UNI Novi Sad Conclusion

Page 4: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

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

Page 5: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Adjusting programmes at UNI for the new accreditation

roundHow it was through the history of

the department?

Page 6: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

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)

Page 7: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

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,…

Page 8: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Important aspects:mathematical technique and rigor

Page 9: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

IEEE Computer Society

Guide to the Software Engineering Body of Knowledge (SWEBOK)

Page 10: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

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.

Page 11: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

• Engineering foundations• Mathematical foundations• Computing foundations

Page 12: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Engineering foundations

Empirical Methods and Experimental Techniques Statistical Analysis

Measurement

Engineering Design

Modeling, Simulation, and Prototyping

Standards

Page 13: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Computing foundations: Not all courses in computer science are

related or equally important to software engineering

Page 14: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Computing foundationsProblem Solving Techniques Abstraction Programming Fundamentals and Programming Language BasicsDebugging Tools and TechniquesData Structure and RepresentationAlgorithms and Complexity Basic Concept of a SystemComputer Organization Secure Coding,…

Page 15: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Mathematics for a software engineer is

mostly connected to the logic and reasoning.

Page 16: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Mathematical foundationsSets, relations, functionsBasic logicProof TechniquesBasics of CountingGraphs and TreesDiscrete ProbabilityFinite State MachinesGrammarsNumerical precisionNumber TheoryAlgebraic Structures

Page 17: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Situation at UNI Novi SadSoftware engineering curriculum:-Bachelor Informatics 3 years’-Master in Informatics (a module - Master in SE)

Page 18: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

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

Page 19: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

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 AlgorithmsIn practice, they are rarely chosen by students

Page 20: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

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).

Page 21: Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013

Thank you for your attention!