COMP1100: Difference between revisions

From Hitchhiker's Guide to CS
Jump to navigation Jump to search
(Categorise)
Tag: 2017 source edit
(Fix some links and clarify some stuff)
(4 intermediate revisions by 2 users not shown)
Line 8: Line 8:
|Haskell (taught)
|Haskell (taught)
|-
|-
! style="text-align: left;" |Lecturer
! style="text-align: left;" |Lecturers
|
|Ranald Clouston, Jooyoung Lee
|-
! 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, with 1130 acting sort of like an optional extension, with one extra lecture per week and slightly different assignments and final exams. Unless you’re in the BAC (R&D), you can choose to take either (but not both!) and they count basically the same for prerequisites. No prior programming experience is expected.
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.


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


Like many courses you’ll go on to do, this course has weekly labs. You’re strongly encouraged to attend all the labs: they’re an extremely important part of the course (debatably even more so than the lectures!), and you don’t want to be playing catch-up. The tutor team for the course is always extremely knowledgeable, helpful and approachable - so don’t miss out on your chance to make the most of your time with them. As a side note, lab attendance is marked, but hopefully we’ve given you a good enough sales pitch that you won’t need any extra convincing :)
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].


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


Note: if you’re taking the CS major as part of the BSC, you can opt to take [[COMP1730]] instead of this course; however, if you plan to focus your degree on CS, COMP1100/30 will set you up better for courses later on. Conversely, if you’re a BE student, or a non-CS BSC student, you have the same choice, but the more practical COMP1730 will probably prove more useful.
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 computerised (not written) and programming-heavy.


[[Category:1000-level courses]]
[[Category:1000-level courses]]
[[Category:Introductory courses]]
[[Category:Introductory courses]]

Revision as of 13:21, 16 June 2022


Runs Both semesters (1100), Semester 1 (1130)
Languages Haskell (taught)
Lecturers Ranald Clouston, Jooyoung Lee
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 (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 computerised (not written) and programming-heavy.