130 likes | 268 Views
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. Student Performance, Long Term. Success Rate grade C above.
E N D
State of CSI Mikhail Nesterenko CS Faculty RetreatMay 3, 2013
Outline • student performance data • challenges and philosophy • organization • evaluation • topics • components • lab • lecture • recent changes and future trends
Student Performance, Long Term Success Rate grade C above no discernible pattern or trendthe “usual” success rate is approx. 55-60% taught by Mikhail
Student Performance, Recent Success Rate accumulationof repeatstudentsdepressedrate? backup lab instructors introduced,rate improved? success rate is smaller than in prev. slidesince students who dropped the course in the first 2 weeks are considered
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
Evaluation • 2 exams (midterm, final) 100 points each, non-cumulativegraded by lecturer • 4 quizzes (worst score dropped to eliminate need for makeups) – 10 points each • 13 labs – 10 points eachgraded by TA • participation (or extra project) – 10 points • 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
Topics • basic, covered by a lab, students need to have “hands on” proficiency • First Program • Branching • Looping • Predefined Functions • Programmer-Defined Functions, Call-by-Value, Multiple Files • Call-by-Reference, Arrays • Strings, File I/O • Structures • Classes • Pointers, Dynamic Memory Allocation • Objects with Dynamically Allocated Members (constructor, destructor, copy constr.) • Vectors • 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
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
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 • 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) • 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
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
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
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)
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