COMP1100: Difference between revisions
(Categorise) Tag: 2017 source edit |
(Updated to 2023/24 course requirements and description) |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 8: | Line 8: | ||
|Haskell (taught) | |Haskell (taught) | ||
|- | |- | ||
! style="text-align: left;" | | ! style="text-align: left;" |Lecturers | ||
| | |Ranald Clouston, Nisansala Yatapanage | ||
|- | |||
! style="text-align: left;" |Course webpage | |||
|https://comp.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, | 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 (where 1130 is compulsory). They count basically the same for prerequisites (except you'll need to ask permission to take [[COMP1140]] if you don't take 1130). No prior programming experience is expected, and the course can be quite challenging regardless of whether you have previous experience. | ||
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 comparatively easy course that teaches Python - a very widely used programming language in the sciences (and elsewhere) that is considered very approachable for beginners - with the goal of solving problems and building basic proficiency, rather than ''understanding'' computation. 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 also take both courses if you like. (COMP1730 is also often considered to have a far-from-perfect approach to teaching and assessment.) | |||
If you want to get a taste of COMP1100 before you start or decide whether 1730 is a better choice, the free online book ''[http://learnyouahaskell.com/chapters Learn You A Haskell]'' is excellent (note: it is not the official course text). COMP1100 covers content corresponding roughly to 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, you can follow the course's installation instructions [https://comp.anu.edu.au/courses/comp1100/resources/install/ 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 the simply typed lambda calculus. 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 computerised (not written) and programming-heavy. | |||
[[Category:1000-level courses]] | [[Category:1000-level courses]] | ||
[[Category:Introductory courses]] | [[Category:Introductory courses]] |
Latest revision as of 10:37, 15 February 2024
Runs | Both semesters (1100), Semester 1 (1130) |
---|---|
Languages | Haskell (taught) |
Lecturers | Ranald Clouston, Nisansala Yatapanage |
Course webpage | https://comp.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 (where 1130 is compulsory). They count basically the same for prerequisites (except you'll need to ask permission to take COMP1140 if you don't take 1130). No prior programming experience is expected, and the course can be quite challenging regardless of whether you have previous experience.
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 comparatively easy course that teaches Python - a very widely used programming language in the sciences (and elsewhere) that is considered very approachable for beginners - with the goal of solving problems and building basic proficiency, rather than understanding computation. 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 also take both courses if you like. (COMP1730 is also often considered to have a far-from-perfect approach to teaching and assessment.)
If you want to get a taste of COMP1100 before you start or decide whether 1730 is a better choice, the free online book Learn You A Haskell is excellent (note: it is not the official course text). COMP1100 covers content corresponding roughly to 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, you can 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 the simply typed lambda calculus. 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 computerised (not written) and programming-heavy.