transition from one - to two-semester(s) of fundamentals ......transition from one- to...
TRANSCRIPT
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
G. Banjac and D. BrdjaninUniversity of Banja Luka, Bosnia & Herzegovina
Transition from One- to Two-Semester(s) ofFundamentals of Programming
16th Workshop “Software Engineering Education and Reverse Engineering”Jahorina, 22 - 26 August 2016.
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
About this presentation
• Short history of computing curricula at FEE• Syllabus of Fundamentals of Programming
(then and now)• Examination• Statistics• Students’ feedback• Conclusion
2
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Undergraduate computing curricula at FEE (1/3)
3
Technical Faculty was founded, with the Electrical Engineering
undergraduate study program
Specialization in Computing technology and Automatics started
The major reconstruction of undergraduate study programs
took place when Computing and Informatics (4 y.) study program
(with profiles Computer Engineering and Software Engineering) was proposed
Minor changesto curricula
Last reconstruction
has been finished in
January 2014
Department of Electrical Engineering has grown into FEE with two study
programs:Computing technology
and Automatics and Electronics and
Telecommunications
New CC (5 y.)
New CC (5 y.)1962.
1972.
1975.
1988.
1995.
2003.
2007.
2014.
Short history
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Undergraduate computing curricula at FEE (2/3)
4
First year courses overview (2003-2013)
# Course title Sem. ECTS Hours Type
1 Linear algebra 1 7 3+3+0 A
2 Fundamentals of electrotehnics 1 7 3+2+1 A
3 Physics 1 8 4+2+1 A
4 Fundamentals of computer technics 1 6 2+0+2 A
5 Sociology 1 2 2+0+0 B
6 Philosophy 1 2 2+0+0 B
7 Communication skills 1 2 2+0+0 B
8 Mathematical analysis I 2 8 3+3+0 A
9 Fundamentals of electrotehnics II 2 8 3+3+1 A
10 Programming fundamentals 2 7 3+2+1 A11 Fundamentals of computer technics II 2 7 3+2+1 A
Legend: A – mandatory, B – elective
• First year courses are common for all Study Programs
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Undergraduate computing curricula at FEE (3/3)
5
First year courses overview (2014- )
# Course title Sem. ECTS Hours Type
1 Mathematics I 1 7 3+3+0 A
2 Fundamentals of electrotehnics I 1 7 3+2+1 A
3 Programming I 1 6 2+2+1 A4 Fundamentals of computer technics 1 7 3+2+1 A
5 Sociology 1 3 2+0+0 B
6 Philosophy 1 3 2+0+0 B
7 Communication skills 1 3 2+0+0 B
8 Mathematics II 2 7 3+3+0 A
9 Fundamentals of electrotehnics II 2 8 3+3+1 A
10 Programming II 2 8 3+2+1 A11 Physics 2 7 3+2+1 A
• First year courses are common for all study programs
Legend: A – mandatory, B – elective
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Course syllabus (1/3)
6
Programming fundamentals (7 ECTS)
• Types and levels of the programming languages. Environment for program development: editors, compilers, linkers. Program execution. Programming: basic concepts and priciples. Problem solving and algorithms.
• C programming language- Basic structure of C program, and elements of C language.- Variables, constants, and basic data types. Memory representation.- Operators and expressions.- Statements. Conditional statements. Loops, break, continue, and goto
statements.- Functions, definitions and function prototypes. Function parameters and return
values.- Complex data types: one-dimensional and multi-dimensional arrays. Structures
and unions.- Pointers. Pointers as function parameters. Dynamic memory allocation.- Recursions and recursive functions.- I/O communication. Files and data streams. I/O function library.
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Course syllabus (2/3)
7
Programming I (6 ECTS)
• Types and levels of the programming languages. Environment for program development: editors, compilers, linkers. Program execution. Basic concepts and priciples of programming. Problem solving and algorithms.
• C programming language- Basic structure of C program.- Basic data types. Variables and constants. Memory representation.- Operators and expressions.- Statements. Conditional statements. Loops. Break, continue, and goto
statements.- Complex data types: arrays, structures, unions.- Function declaration and function definition. Function parameters and return
values.- Pointers. Pointers as function parameters.
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Course syllabus (3/3)
8
Programming II (8 ECTS)
• Recursions and recursive functions. • Functions with variable number of arguments.• Standard function libraries.• Pointers to functions.• I/O communication. Files and data streams. I/O function library.• Dynamic memory allocation.
• Linear data structures: arrays, lists, stacks, queues.• Non-linear data structures. Trees: binary trees, tree traversal. Graph basics.• Basics of algorihtm systems. Algorithm representation techniques.
Basic sorting and searching algorithms.• String manipulation. Large number manipulation.• Standard algorithm library.• Algorithm complexity.
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Examination
9
Programming fundamentals• Practical part:
- two partial exams during semester (max. 25 points each), or- integral exam (max. 50 points)
• Final exam (max. 50 points)
Programming I• Practical part:
- two partial exams during semester (max. 30 points each) andonline test for additional points (max. 10 points), or
- integral exam (max. 60 points)• Final exam (max. 40 points)
First generation of students didn’t have test for additional points.
Programming II• Practical part:
- two partial exams during semester (max. 25 points each) andwork in a laboratory (max. 10 points), or
- integral exam (max. 60 points)• Final exam (max. 40 points)
Only 55% of students took this test for additional points.
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Statistics (1/6)
10
0
50
100
150
200
250
300
350
2007/08 2008/09 2009/10 2010/11 2011/12 2012/13 2013/14
138 133 147 142 136 122
182
41 6986 89 102
102
129
First time Repeated
Enrolled students
Programming fundamentals
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Statistics (2/6)
11
0
50
100
150
200
250
300
350
400
2014/15 2015/16
245 257
145 138
First time Repeated
Enrolled students
0
50
100
150
200
250
300
350
400
2014/15 2015/16
367
238
0
146
First time Repeated
Programming I Programming II
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Statistics (3/6)
12
Examination
Programming fundamentals
0
50
100
150
200
250
300
350
2007/08 2008/09 2009/10 2010/11 2011/12 2012/13 2013/14
37 46 45 36 28 43 62
41 29 26 4132
45 24
101 127162 154 178 136
22544%37%
30% 33% 25%39%
28%
Passed through partial exams Passed through integral exam Didn't pass
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Statistics (4/6)
13
Examination
Programming I Programming II
0
50
100
150
200
250
300
350
400
2014/15 2015/16
10372
8
173417
270 264
31% 33%
0
50
100
150
200
250
300
350
400
2014/15 2015/16
72 53
2538 5
6
257 295
30%23%
2014/15
PI PII88
88 students passed both courses
2015/16*
PI PII53/76
53 students allready passed both courses
At least 76 students are expected to pass both
courses
* Current data
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Statistics (5/6)
14
Grades
Programming I Programming II
0
10
20
30
40
50
60
70
6 7 8 9 10
4345
20
11
1
47
30
17
9
3
68
1815
41
2014/15 2015/16 2015/16 (without additional points)
0
10
20
30
40
50
60
6 7 8 9 10
60
27
19
31
14
21
14
7
2
2014/15 2015/16
Average grade2014/15: 7.022015/16: 6.972015/16: 6.60
Average grade2014/15: 6.712015/16: 7.34
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Statistics (6/6)
15
Comparison with other courses
# Course title Sem. ECTS Passed(2014/15)
Passed(2015/16)*
1 Mathematics I 1 7 81 80
2 Fundamentals of electrotehnics I 1 7 86 86
3 Programming I 1 6 120 1064 Fundamentals of computer technics 1 7 131 91
5 Sociology 1 3
198 2066 Philosophy 1 3
7 Communication skills 1 3
8 Mathematics II 2 7 20 22
9 Fundamentals of electrotehnics II 2 8 52 49
10 Programming II 2 8 110 5811 Physics 2 7 46 14
* Current data
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Students’ feedback
16
• … is, generaly, positive, but with some suggestions on how to improve courses:
• “Increase the number of hours”
• “Increase the number of hours in a laboratory”
• “More homework and tasks in a laboratory”
• “Examination should be on computers (instead of paper examination)”
• “Partial exams should be on computers”
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
Conclusion
• Last major recontruction of undergraduate computing curricula at FEE has been finished in January 2014
• Instead of one, now we have two semesters of Fundamentals of Programming in the first year curricula
• Now, 1st year students:– Learn more advanced programming concepts (e.g. functions
with variable number of arguments, …) as well as basic concepts of data structures and algorithms
– Have more practical experience / more work in a laboratory
• Passing rate for the new courses is almost the same as the passing rate for the old course
17
Banjac and Brdjanin: Transition from One- to Two-Semester(s) of Fundamentals of Programming
G. Banjac and D. BrdjaninUniversity of Banja Luka, Bosnia & Herzegovina
Thank You!
Transition from One- to Two-Semester(s) ofFundamentals of Programming
16th Workshop “Software Engineering Education and Reverse Engineering”Jahorina, 22 - 26 August 2016.