COMP1100: Difference between revisions

From Hitchhiker's Guide to CS
Jump to navigation Jump to search
mNo edit summary
No edit summary
Tag: 2017 source edit
Line 10: Line 10:
! style="text-align: left;" |Lecturers
! style="text-align: left;" |Lecturers
|Ranald Clouston, Jooyoung Lee
|Ranald Clouston, Jooyoung Lee
|-
! style="text-align: left;" |Course webpage
|https://cs.anu.edu.au/courses/comp1100/
|}
|}


Line 20: Line 23:
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!
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.
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. Note that the program proof topic is very similar in scope to the same topic in [[COMP1600]], so even if you don't do 1130 you'll cover this later in your degree anyway.


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.
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.

Revision as of 23:21, 8 January 2022


Runs Both semesters (1100), Semester 1 (1130)
Languages Haskell (taught)
Lecturers Ranald Clouston, Jooyoung Lee
Course webpage https://cs.anu.edu.au/courses/comp1100/

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. The course is fairly difficult and is rumoured to have a high attrition and fail rate.

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 and comparatively easy course that teaches Python with applications. If you want to learn to code to solve problems 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.

If you want to get a taste of 1100 before you start or decide whether 1730 is a better choice, the free online book Learn You A Haskell is excellent (site currently down, see archive.org instead) (note: it is not the official course text). The course covers the first 8 chapters. To get a taste of the course, try reading chapters 1 (introduction) and 2. If you want to try coding yourself, follow the course's installation instructions here.

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. Note that the program proof topic is very similar in scope to the same topic in COMP1600, so even if you don't do 1130 you'll cover this later in your degree anyway.

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.