The University of Western Australia
School of Computer Science and Software Engineering
 
 

School of Computer Science and Software Engineering

CITS4406 Problem Solving and Programming

No student should ever find that they cannot obtain help with any difficulties encountered with the unit - providing they keep up with the work and don't leave it too late!


Avenues for Help:

  • The lab class provides a weekly session where staff will be available to answer programming-related questions about the unit and provide assistance in completing the labsheets and project. Becoming proficient at programming and problem solving requires significant practice. Make the most of these sessions and ask for help when facing difficulties. Remember, completion of the practical components are considered essential in order to make satisfactory progress in the unit, however achieving this will require preparation and effort outside of your allocated lab session.

  • The help4406 electronic forum is provided to allow students and staff to share problems and solutions relating to the content of the unit. If you encounter a problem, first check the forum to see if it has been encountered before. If it hasn't, feel free to post details about your problem (or solutions to other problems) to the forum. Note however that the forum is not a substitute for face-to-face teaching and does not have a guaranteed "response time". That is, if you have an urgent problem you should attend one of the other sessions.

  • The consultation time provides a time to meet with the lecturer individually to discuss private problems or problems that remain unsolved by the above facilities.

  • The text provides a somewhat different view of the teaching material. The text for the unit is: "Fundamentals of Python: First Programs", 1st Edition, Course Technology, 2012, by Kenneth A. Lambert. Corrections, data-files, and a free advanced online chapter of the book are available from the publisher's website. Other recommended readings are listed on the Resources page.


Working Effectively:

The Charter of Student Rights and Responsibilities discusses a student's Quality of Education, and states that "every student has the responsibility to bring an open and enquiring mind and enthusiasm to their studies (4.2.1) and to participate actively in the teaching and learning and research environment, in particular by attending classes as required, complying with workload expectations, and submitting required work on time (4.2.2)".

The Faculty of Engineering, Computing, and Mathematics, in which CITS4406 is delivered, has stated that the expected workload for an average student in a 6-point unit is 10 to 12 hours per week, averaged over the whole semester. This page outlines some methods by which you can study more effectively in this unit, and do so within the workload expectation.

  • Allocate times of your weekly workload
    This will clearly depend on your abilities, study habits, and the weekly requirements of the unit, but a typical week could consist of:

    • 2 hours - attending and being engaged in the lectures.
      Follow the presentations, make your own clear annotations, and ask questions when something is unclear.

    • 3 hours - review lecture material, with constant reference to the text or good online tutorial.
      Review the lecture material and the notes that you've taken during the lecture. Note however that the lectures themselves do not provide the whole content of the unit. Some students mistakenly believe that rote-learning of lecture handouts is sufficient, however the lectures only identify the important concepts for the unit, and you are expected to investigate further. Seek help if it is unclear what the important concepts of any lecture were.

    • 5 hours - lab and project work.
      Having reviewed the relevant fundamental concepts introduced in a lecture, the lab and project work is much easier. Prepare for your lab sessions by reading the labsheet before attempting the set tasks, identify the concepts that you do not understand, look up those concepts in a text or online tutorial, and ask questions of the lab demonstrator about parts that are still unclear. The lab sessions should be the times when you put your knowledge into practice by attempting the set tasks, not times when you meet a fundamental concept for the first time. Much of the effort required to complete lab tasks and projects can be achieved away from the lab and even without a computer.

  • Purchase and read the recommended text
    Do not mistakenly believe that the lecture notes comprise the unit's complete material. Indeed, lectures comprise about ⅓ of the unit's material. Lectures identify fundamental concepts; texts more thoroughly explain those concepts and provide examples of their use. Learn how to use the table of contents and index of your text.

  • Programming is best done with pencil and paper first
    Invest in a notebook that you can carry with you. Use it to both solve your problems, and as a log of past problems and their solutions. So much of Computer Science and Software Engineering is "just boxes and arrows", and drawing many pictures can assist greatly in the design and debugging of many programming problems. Print out (short) sections of significant code and stick them in your notebook. Review your notebook weekly.

  • Do not sit in front a computer for long periods
    Solutions to lab tasks and projects will not magically jump out of the screen. If having difficulty with a task, print out your code, visit a coffee shop or a comfortable lawn, and think about the problem in an environment where you're able to focus on the bigger problem rather than just fixing a small bug. You'll often find that you not only fix the current bug, but by thinking about the whole task, you often think through problems that you haven't got to yet. Don't forget to draw a picture or sketch out a solution on paper first!

  • Use help4406
    help4406 not only provides a facility for you to ask questions about unit content, but also allows you to view the questions and replies of other students. As it is very likely that other students in the unit will be having, or have already solved, similar problems to the ones you're experiencing, read over the other articles before posting a question. Read help4406 at least twice a week. Similarly, use the csentry program to provide quick access to the unit homepage, help electronic forum, timetable, outline, handbook entry, and next item of assessment in all of your CSSE units.

  • Read your UWA email
    Email is an official communication mechanism at UWA. Official announcements are emailed to your UWA email account. If you have your UWA email redirected to an external mailbox, such as to hotmail or to your ISP, ensure that this redirection is to an active account that you access frequently.

  • Be aware of assessment deadlines in all of your units
    Don't let assessment deadlines sneak up on you. All UWA units are required to provide to students clear statements about the assessment methods and deadlines for their units within the first 2 weeks of semester. CSSE clearly lists all of its assessment deadlines using the cssubmit program. Try to plan your time effectively, accounting for periods where more than one project or assignment will be due in the same week. Many units have mid-semester tests and their first small projects due around weeks 7 and 8 of semester, and most units have their large programming project due in week 12 or 13 of semester. Plan ahead!


Working Ineffectively: