Slashdot Mirror


CS Students Want Advice on Helping Strugglers?

geekgirl21 asks: "My university's Computer Science Society (a student organization) wants to create a booklet about helping students get through the major's introductory courses (3 semesters of Java). The focus of this booklet is toward the people who work hard but still struggle with the courses. Specifically, we'd would like some advice about where to get the following: clearly written books/articles about the concepts of Java and OOP, how to prepare for tests, how to take notes in class, how to productively complete a coding assignment, and how to write good, documented code. Also, organization is not our group's strong point. So how do you recommend splitting up the work to complete this seemingly intimidating task? Thanks in advance about any advice you can provide."

2 of 99 comments (clear)

  1. Suggestions by Lando · · Score: 3, Informative

    First most colleges offer courses in how to organize and prepare for tests. Most students should take this course or class if they can... No reason for your organization to bear the brunt of teaching someone how to study.

    Second, the students will need an idea on how mathmatics and logic work, consider sending them to the math and physic tutors for the basics.

    Third, how much of Java is about the fundamentals of OOP, more than likely if this is a basic programming class, the people learning it don't need to try to learn programming to start with, indeed they just need to get java to print and they need basic flow control... Trying to teach the oop and what it means at this stage of the game is a little premature... As long as they know how to get a basic program working, that's what they need to focus on at the moment... once they get the basics down, then they can move into thoery...

    Fourth, where are your senior classmen, tutoring is one of the jobs of the senior classmen. So get with the tutoring department and get some of your senior classmen paid for tutoring students. A one-on-one education with someone that has been through this will help you to tailor your training in the future... Just make sure the tutors are giving feedback as to what they find students need the most help in.

    --
    /* TODO: Spawn child process, interest child in technology, have child write a new sig */
  2. My experience by John+Harrison · · Score: 3, Informative
    CS is a very popular major where I went to school. Now the reason for that isn't entirely that a bunch of people that go there knowing that it has a great program. The reason is that nearly all the undergrads hear that the intro course ( CS106a) is good by word of mouth and so lots of them take it. Since it really is a good course lots of people get turned on to CS by it. Seriously, there were people who had never used a computer before ending up as CS majors.

    Why is this course so popular? First of all they choose the best professors and lecturers to teach it. They are able to explain things clearly and they are very personable/funny/approachable.

    Second, the programming assignments are well designed. I always knew WHY I was doing a particular assignment. I have since helped people from other universities with their CS assignments and I can say that assignment design is a big deal. Some profs just throw some random problem at the kids without thinking about the purpose of it. They don't provide clear goals. They don't provide any libraries to use. The documentation provided with assignment needs to be clear and complete.

    The most important reason that these classes were both popular and productive was the section leaders. These were CS students in their senior or junior year that taught section once a week. The position was prestigious and it paid well. They got some of the best CS students that way. It is describe briefly in this article. (Search for CS198 if you don't want to read the whole thing.) The sections were very productive. You would write code to do some particular task and the section leader would help/critique. There was almost always a section leader "on call" in a cube in the lab that you could go to for help on an assignment. More than one near the due dates. They could find a bug in 2 seconds flat. But they would just show it to you, they would "help" you see it yourself. But the most important thing they did was "interactive grading". They would go through a printout of your code line by line and write comments both good and bad while grading your program. Then they would have a 20 minute one one one session with the student and explain what was good and what was bad about thier coding. Whether the program actually functioned or not was of secondary importance, especially early in the quarter. They made sure that your code made sense, was well documented, that you had variable names that made sense, etc.

    Many schools just give grades based on functionality and never even look at the code produced. This sink or swim attitude might bring to light a few naturally good coders. The mentoring aspects of the program at I just described produce a lot of great coders.

    In summary:
    1. Choose good instructors.
    2. Give assingments with a purpose. Document them.
    3. Give the students detailed feedback and lots of support early on whether they think they need it or not.