No. Group work is terrible and students are—at least perceptually, when not in fact—in competition with each other both for grades and for time. Even in the best case scenario students are incentivized to do the parts of the work they already do best which seems antithetical to education.
Multiple choice quizzes are also useful to the student because they provide a snapshot of fact memorization and maybe some application but there is no point in counting the grades, IMO.
If we must evaluate students, then we should be treating evaluation as important as imparting knowledge and experience and spend the time on it that it deserves. Students deserve and need timely and thoughtful individual feedback in order to improve anyway. That means thoughtful projects and a lot of time spent grading. How you incentivize this amongst educators who often don’t even want to be teaching is beyond my pay grade.
(Additionally, a grade should reflect level of mastery at the end of the course regardless of progression but that’s not how grades are generally calculated.)
Group work is terrible, but project-based ability assessment is much better than multiple-choice tests. I quit school before graduating, so maybe I’m not the best example, but I had one instructor that noticed a few of us were bored out of our minds in an intro to OO class and told us we could skip all assignments and the final if we turned in a working clone of Asteroids that met certain criteria, using a vector drawing library called Processing, by the end of the semester.
Instead of making class Dog extend class Animal for the whole semester, I found myself learning how to do polygon collision detection, optimize it with a rectangle intersection pre-test, modeling thrust and inertia, etc. I started adding level-ups like extra lives, missiles, procedurally generating increasing difficult levels.
Still some of the most fun I remember having with a computer.
I don't think multiple choice tests and project-based assessment are in conflict. They are both useful tools for evaluation. Multiple choice tests can allow a student to evaluate himself to make sure he has the base level of knowledge required (facts and application) in order to develop mastery. I do think it's useless as a grading metric, even discounting cheating issues. Project-based ability assessment is useful both for gaining mastery (with timely expert feedback) and for evaluating a students' mastery. I think project-based ability assessments for grading purposes ought to be coupled with a conversation about the project so the student can explain/defend his or her choices. As a side effect, it will help prevent cheating by having someone else write your project.
In your particular case, I'm glad you had a good professor that allowed you to spend otherwise wasted time learning. However, I can't help but feel you should never have been forced to take (and presumably pay for) that class.
> However, I can't help but feel you should never have been forced to take (and presumably pay for) that class
I felt the same way, so I dropped out of school and started looking for someone who would hire me without a degree. I regret not having a university experience, but as far as career goes, I got a two year head start and no debt.
> making class Dog extend class Animal for the whole semester
I expect this is hyperbole, but the sense that degrees have softened their content density is palpable.
Even when I was attending, decades ago, the administration at my university was conjuring plans to greatly diminish the breadth and depth of content in their courses in order to graduate more students.
It depends on the class. Many "intro to OO programming" classes are really "intro to programming" that happen to use OO. There are no or low-level prerequisites, so the class often has to accommodate learners who have never so much as written a hello world script. (There is also pressure for higher level classes to dumb things down so the students from the lower level classes don't reach an insurmountable cliff, even if it's only insurmountable because the school's earlier classes have failed them.)
That's what is wrong! It's like starting an English degree as an illiterate person and expecting the intro courses to make you literate; worse, the programs are designed with this expectation in mind.
-There usually isn't a prep course available, nor are there other prerequisites.
-When there is a prep course, it is usually called remedial as if being failed in high school, being an older student who left high school years ago, or just never being exposed to a subject makes you, as a person, deficient. (And, of course, these legally have to be included in a person's transcript.)
-Universities are under pressure to push people through quickly, so they don't want students taking extra prep courses early on.
-Universities/parents/students all want to see good grades and frequently prioritize this over education (which is probably the fundamental problem of education: how to evaluate and what to do with those evaluations)
-There are no ways, difficult ways, or arbitrary ways to drop out of an intro course.
-A syllabus is fundamentally a contract, but you (usually) don't get to see it until you have registered, paid, and been to the course.
...
etc.
It's not harder, it's more fundamental. Logic gates express forms of the basic foundations of computation, and building from there conveys their power and expressiveness.
In my degree, object oriented programming came in later semesters, often paired with courses on symbolic computing, discrete mathematics, and computability and complexity.
Someone who cares about how our existing knowledge shapes or understanding of new knowledge. Knowing how a computer works helps to understand the why and how of higher level concerns.
That sounds like a great option, though I imagine offering an alternative objective like that will get harder to do as the course difficulty/level increases.
Multiple choice quizzes are also useful to the student because they provide a snapshot of fact memorization and maybe some application but there is no point in counting the grades, IMO.
If we must evaluate students, then we should be treating evaluation as important as imparting knowledge and experience and spend the time on it that it deserves. Students deserve and need timely and thoughtful individual feedback in order to improve anyway. That means thoughtful projects and a lot of time spent grading. How you incentivize this amongst educators who often don’t even want to be teaching is beyond my pay grade.
(Additionally, a grade should reflect level of mastery at the end of the course regardless of progression but that’s not how grades are generally calculated.)