COMP1100/COMP1130: Programming as Problem Solving

From Hitchhiker's Guide to CS
Jump to navigation Jump to search


Runs Both semesters (1100), Semester 1 (1130)
Languages Haskell (taught)
Lecturers Ranald Clouston, Jooyoung Lee

Unless you’re a Science or Engineering student, this will probably be your first programming course at the ANU. COMP1100 runs both semesters, but most people take it in first semester; COMP1130 only runs in first semester. These courses run together, sharing 3 lectures and the labs. 1130 is an optional extension with one extra lecture per week and slightly different assignments and final exams. You can choose to take either unless you are in the BAC R&D (1130 is compulsory). They count basically the same for prerequisites. No prior programming experience is expected.

If you are a Science or Engineering student (for instance, taking the CS major in the BSc), you can opt to take COMP1730 instead of this course. 1730 is a much more practical, hands-on course that teaches Python with applications. If you want to learn to code to analyse some data here and there but you don't want to focus on pure computing, 1730 may be a better choice. If you plan to focus your degree on CS, COMP1100/30 will set you up better for courses later on because it gives you a strong theoretical underpinning. You can take both courses if you like.

COMP1100 teaches introductory computer science concepts, using a language that you may not have heard of: Haskell. Haskell’s what’s called a functional language (as in maths functions). You'll learn what that means, but suffice to say, it will probably look quite different to any programming you may have done before. This is deliberate, as it helps put people with and without programming experience on a more level footing. COMP1100 will gently walk you through setting up a code editor and using a terminal, and move on to concepts including functions, recursion, algebraic data types, polymorphism, trees, and time complexity. Don't worry if these sound intimidating, you'll have 12 weeks to learn it all and your tutors, peers and the CSSA community are all willing to help!

COMP1130 goes beyond 1100 and teaches (untyped) lambda calculus and introductory program proofs. These concepts are very mathematical and theoretical (and beautiful!). If you like maths you will love COMP1130, if not you will not be disadvantaged.

Like many courses you’ll go on to do, this course has weekly labs. Near the start of the semester you will choose one lab time for the week. You’re strongly encouraged to attend all the labs: they’re an extremely important part of the course and you don’t want to be playing catch-up. The tutor team for the course is always extremely knowledgeable, helpful and approachable.

There are three major programming assignments, a tiny lab attendance & completion mark, and a mid-semester and final exam, both of which are taken digitally in the CSIT or Hanna Neumann labs or online from home.