report on the course - Kent State University

advertisement

State of CSI

Mikhail Nesterenko

CS Faculty Retreat

May 3, 2013

Outline

• student performance data

• challenges and philosophy

• organization

• evaluation

• topics

• components

– lab

– lecture

• recent changes and future trends

2

Student Performance, Long Term

Success Rate grade C above

100,0%

90,0%

80,0%

70,0%

60,0% 56,8%

50,0%

40,0%

74,7% 74,7%

55,6%

62,5%

51,1%

57,8%

36,1%

55,3%

43,3%

62,0%

40,0%

62,9% 62,9%

72,0%

45,7%

58,8%

51,7%

74,3%

72,5%

43,4%

56,8%

30,0%

20,0%

10,0% no discernible pattern or trend the “usual” success rate is approx. 55-60%

0,0%

S02 F02 S03 F03 S04 F04 S05 F05 S06 F06 S07 F07 S07 F08 S09 F09 S10 F10 S11 F11 S12 F12 taught by

Mikhail

3

accumulation of repeat students depressed rate?

Student Performance, Recent

Success Rate

100,0%

90,0%

80,0%

70,0%

55,7%

36,1%

38,5% succeeded

F/W/dropped

C-/D

C+/C

B+/B/B-

A/A-

60,0%

50,0%

18,1% 13,2%

6,6% 48,4% backup lab instructors introduced, rate improved?

40,0%

9,8%

30,0%

6,6% 34,4%

8,2%

20,0%

2,8%

45,8%

15,3%

27,8%

18,7%

23,1% success rate is smaller than in prev. slide since students who dropped the course in the first 2 weeks are considered

10,0% 19,7%

0,0%

Spring 12 Fall 12 Spring 13 (projected)

4

Setup and Challenges

organization

• 4 – 6 sections of up 20 students (50-90 students)

– 2 lectures + 1 lab session a week (lecture session combined, separate lab session for each section)

• 1 lecturer + 2-3 TAs

– TA conducts labs in 2 sections, backs up two more sections, grades labs, quizzes challenges

• diverse background of incoming students

– some straight from high school: may lack work ethics, motivation, discipline; some took AP programming courses in college

– evening section: may be distracted by work/family obligations, some may have programming experience at work, possibly in a different language

• need to keep everyone interested, accommodate different learning styles

• need to ensure uniform set of basic learned skills

5

Evaluation

• 2 exams (midterm, final)

100 points each, non-cumulative graded by lecturer

• 4 quizzes (worst score dropped to eliminate need for makeups) –

10 points each

• 13 labs – 10 points each graded by TA

• participation (or extra project) – 10 points

35,1%

8,1%

2,7%

grade weight

54,1% exams quizzes labs participation reasons

• large exam weight – keeps semester grade under control of instructor, makes it more consistent

• TAs grade labs differently, students may get help doing labs  should not weigh heavily

• participation – keeps students engaged during lectures

• quizzes – easy to grade, keeps students on track with studies between tests

• a person finishing with C should be proficient enough to succeed in CSII

• note that this C may be obtained through labs or exam  have to balance the weight

6

Topics

• basic, covered by a lab, students need to have “hands on” proficiency

1.

First Program

2.

Branching

3.

Looping

4.

Predefined Functions

5.

Programmer-Defined Functions, Call-by-Value, Multiple Files

6.

Call-by-Reference, Arrays

7.

Strings, File I/O

8.

Structures

9.

Classes

10. Pointers, Dynamic Memory Allocation

11. Objects with Dynamically Allocated Members (constructor, destructor, copy constr.)

12. Vectors

13. Multdimentional Arrays, Vectors of Vectors

• come at end of semester (due to grading delay), need to have “heard of” proficiency

– recursion

– namespaces

– diagrams (UML), automatic code documentation systems

7

Organization

– lecture quickly followed by a lab then individual work

• lab assignment is such that it is often not done in lab time – have to be finished at home

– two lectures + one lab per week

• first lecture introduces topic

• lab backs it up

• second lecture reviews

• the “home” part of the lab completes the cycle

– each component is important

• missed lecture – have to repeat to each student at the lab

• “overcoached” lab assignment – no learning

– additional tools : mailing list with archive (forward answers to student questions there), slides, program examples, lab assignments are on the web

8

Lab

• Windows, Visual Studio IDE, one lab in Unix&g++, code submitted to repository

– we encourage to set up tools at home for individual work. Half the students come to lab with own laptops

• lab attendance – 2 points

• lab deadline – 1 week (first 7, “easy” labs 2 points off after 4 days)

• lab assignment is on the web, opened a week in advance (students may study or attempt it before lab)

• assignment (e.g. programmer defined functions) usually contains two parts

1.

basic part (e.g. code BMR for a man/woman – simple formula – and calculate number of doughnuts to be consumed). Basic part contains explanation of IDE feature (e.g. observing program stack). Students have to learn and demo to lab instructor (for participation points)

2.

extended part (e.g. a menu of functions printing geometric shapes)

– assignment usually contains references to code examples studied in class, hints and pseudocode

• lab starts with lead TA explaining the lab assignment, then both TAs start helping students

• weekly meetings with TAs to introduce the next lab, get their feedback on previous. Good idea to have TAs code the lab

– might be helpful for lecture inst. to attend one lab session per week to gauge performance

9

Lectures

• first lecture - new material

– explain material with slides

– demonstrate with examples in Visual Studio

– time allows – explain the lab

• second lecture – material review

– questions on slides

– examples on the board

– more detailed discussion of the lab

10

Participation

• issues

– students tune out during lecture if not engaged

– understanding varies by semester, need feedback

– students skip lecture

• simply asking students engages only a few better performing ones

• each lecture has a slide with a list of simple questions

• put up on next (review) lecture

• go through all students using cards

– if answer – give plus

– if not – skip successful answers scaled to 10 points at end of semester

• motto: students who show up for most classes and answer most questions get full credit

11

Recent Changes and Trends

• this semester’s changes

Multidimensional Array/Vectors of Vectors lecture/lab replaced Exceptions – more appropriate for CSI

– removed Bit Manipulation lecture – replaced with documentation/diagrams – more appropriate for CSI

– removed Abstraction, Stubs/Wrappers lecture – replaced with basic materials review

– provided sample midterm exam – improved exam preparation, had to rewrite midterm

– added a part to Parameter Passing lab that uses swap() function – good illustration of pass-by-value (important concept)

– added pointer & iterator arithmetic other: standardized, streamlined and corrected labs, lectures, slides; changed labs a bit to eliminate code reuse from previous semesters

• longer- term trend – move towards focusing and drilling specific basic tasks – in effect the same skill, say nested loops, is taught then practiced then tested on

– more students succeed and learn basic programming skills

– students learn less of critical thinking, independent problem solving (burden shifts to downstream courses)

12

Future Changes and Wish List

next semester

• switch all examples to pre-increment (recent style); import specific names from std rather than using namespace std;

• start coordinating midterm and that week’s lab – to smooth load

• cover incremental code development, use structures/classes lab to illustrate it – simplifies harder labs

• fold Namespace material into blocks/scopes lecture wish list

• would be nice to have two midterms but too much grading

• crate a list of programming techniques to be trained (e.g. nesting loops, finding minima, loop with break in the middle) and reorganize lectures/labs around them

• replace the textbook: Savitch is wordy, has some awkward code, no-self study questions

13

Download