Programming as Problem Solving COMP 1100 Semester 2, 2019 The Australian National University Acknowledgement of Country We acknowledge and celebrate the traditional custodians of the land on which we meet, the Ngunnawal people, and pay our respect to the elders past, present and emerging. We also acknowledge and welcome any other Aboriginal and Torres Strait Islander people joining us here. You can learn more about Acknowledgements of Country here. COMP1100 Team • Instructors Dr. Ranald Clouston, Convenor Prof. Tony Hosking, Second Examiner Dr. Jooyoung Lee, Assistant • Tutors Richa Awasthy Dev Chakraborty Cassy Chun-Crogan Josh Corner Josh Gilbert Tom La David O’Donohue Eric Pan Peter Quarel David Quarel Kunal Sareen Jack Stodart Maddox Wong Allie Zhou Part One What is this course? COMP1100 • The entry point for study in Computer Science. • A broad course aimed at many different backgrounds and destinations. • Teaching the fundamentals of algorithms and programming as means of solving problems. • Introduces many concepts that will be revisited in more depth later in the CS curriculum. • Uses the programming language Haskell. Programming Experience • Many of you will have programmed before e.g. in high school, or as a hobby • Many of you will not have. • Prior programming is not expected in this course. • Nor, in our experience, is it a major advantage: we focus on the principles and foundations of programming in a way that is very different from most students’ experience. Mathematical Maturity • We do expect students to be comfortable with mathematical thinking abstraction, algorithms, attention to detail • Building these mathematical skills at the same time as picking up programming skills can be a challenge for some students. • Students who lack confidence in their mathematics should consider delaying COMP1100 by one semester, to take a course like MATH1005 (Discrete Mathematical Models). Ongoing vs One-Off Study • COMP1100 is designed to be an introduction to a broader course of learning in computer science. • It may also be used as a ‘taster’ of what computer science is like. • But it is not recommended for students who intend only to do one computer science course to get basic programming skills. • We recommend COMP1730 (Programming for Scientists) for such students. Programming vs IT Skills • COMP1100 is completely focused on programming. • It does not cover information technology skills (spreadsheets, presentation tools, word processing, website design, …). • COMP1710 (Web Development and Design) and COMP1720 (Art & Interaction in New Media) cover some of these topics. Exiting the Course • Easy to do in the first week, to pick up another course. • 31 August ‘Census Date’ is the last day to withdraw without fees. • 4 October is the last day to drop without failure (WD). • Visas: it is not always true that withdrawal from a course without replacement will violate your study visa; talk to Student Services about this if you need information. Part Two How do I interact with this course? 2A. How do I get basic information about the course? 2B. How do I get the content of the course? 2C. How do I practise my skills? 2D. How do I get answers to my questions? Getting Information: Course Website https://cs.anu.edu.au/courses/comp1100 • Announcements in lectures and on Piazza forum also. Getting Content: Lectures • Introduce the core concepts of the course, and demonstrate ‘live coding’ to show you programming in action. • Monday, Physics Lecture Theatre, 3:30pm–5:00pm • Thursday, Kambri Cinema, 8:30am–10:00am Lecture recordings https://echo360.org.au Warning: • Lecture recordings are not a substitute for attending live lectures. • Failing to attend lectures will hamper your progress in this course. • Recordings complement live lectures and should only be seen as a fallback in case of emergency. Getting Content: The Textbook Thompson, Simon HASKELL: the craft of functional programming Third edition • Not required. • To buy or not to buy? Depends on the student. • Copies in the library. PAL • Students who have done the course before. • Gone through all the successes and struggles that everyone experiences. • Pals that you can talk to about anything. • Mentors for you to use! We Do:We Are: • Run 4 one-hour sessions per week. • Fun, interactive problem solving focused on the latest content. • Develop skills that will help with all courses. • Help you survive COMP! Jay Cameron Yichen Edmund No Sign Up Required! Just Drop In! Keep an Eye on Piazza for Information! Developing and Practising Skills: Labs • You will learn more, and have more fun, in labs than any other part of the course! • Tutors are there to answer questions and guide your learning. • Sign up now at https://cs.anu.edu.au/streams. • 3% of the course linked to attendance and participation in the labs, and to submission of attempts at lab exercises. • Based on ten best labs • Basic engagement hurdle can be passed by participating in the labs across the early part of the course. Practising Skills: Beyond Labs •Assignments. •Hundreds of exercises in the textbook. •Past exam questions on the website. Warning: the course changes over time. Past exams may contain material you are not expected to know, and may miss material you are expected to know. Getting Questions Answered • Live questions in lectures are extremely welcome! • Tutors also there to answer questions in labs. • But these questions should be related to the current content. • How to get your questions answered? • Piazza Forum. • Consultations. • Email instructors at
[email protected] but only for exceptional circumstances. https://piazza.com/anu.edu.au/winter2019/comp1100 Piazza Forum HN 1.24 Starts in week 2 Note that Monday consultations clash with lecture Hanna Neumann Building 145 (the new building) Monday – Friday 4-5pm Getting Questions Answered: Email • Piazza is the preferred forum for getting your questions answered • Email your tutor only if you have questions specific to your interactions with that tutor (about lab attendance: e.g., inability to attend, assignment marking etc.) • Email the instructors, instead of using Piazza, only if you have an issue that cannot be handled on Piazza or by your tutors. - Use
[email protected] - Use your ANU e-mail account • For all enquiries not directly related to this course, contact Student Services in person or by email (
[email protected]). Part Three Miscellaneous Resources Study Sessions •Organized by ANU Computer Science Student Association (CSSA) •Two sessions: - Preparation for mid-term exam - Preparation for final exam https://services.anu.edu.au/business-units/division-of-student-life • Academic Skills and Learning Centre - teaching students about issues related to academic integrity, writing, study skills, and assignments. • Access and Inclusion - supporting students, including those with a disability, a medical condition, or those involved with elite sport, to participate fully in their program of study. • Accommodation Services - helping students find accommodation on and off campus. • Counselling Centre - providing free and confidential counselling to students and running group wellbeing programs like “Get Up and Go.” • Health Service – providing health check-ups, travel immunisations, minor surgical procedures, and antenatal nurse care. • Student Experience and Career Development - supporting students’ transition to higher education study and working with students to develop their employability and ensure they have the skills and knowledge to navigate their future careers. Part Four Academic Integrity Academic Integrity • Plagiarism taking someone else’s work or ideas and passing them off as one’s own • Honesty enhances your learning, reputation, career • Cheating compromises your learning, reputation, career • Academia is sensitive to plagiarism because reputation is everything • Don’t underestimate the chance of detection (we use MOSS!) rephrasing, renaming, reordering won’t change likelihood of detection • Write all code and documentation by yourself and don’t share it with anyone except your tutor http://academichonesty.anu.edu.au Acceptable collaboration • Exchange ideas freely but don’t work together on shared artefacts that you plan to submit • Don’t use notes of your collaboration • Leave time between periods of collaboration and the time when you work on what you will submit • With lab exercises, where collaboration is acceptable, acknowledge your collaborators in your submitted material Web search • Syntax • Background • Solution Part Five Course Representatives 46 CECS Course Representatives Why become a course representative? • Develop skills sought by employers, including interpersonal, dispute resolution, leadership and communication skills. • Become empowered. Play an active role in determining the direction of your education. • Become more aware of issues influencing your University and current issues in higher education. • Ensure students have a voice to their course convener, lecturer, tutors, and college. Roles and responsibilities: • Act as the official liaison between your peers and convener. • Be creative, available and proactive in gathering feedback from your classmates. • Attend regular meetings, and provide reports on course feedback to your course convener and the Associate Director (Education). • Close the feedback loop by reporting back to the class the outcomes of your meetings. 47 CECS Course Representatives Want to be a course representative? Nominate today! Please contact your instructors to nominate as a course representative. ANUSA and PARSA offer course representative training on 12th March to give you skills to be an effective course representative. Contact ANUSA President, Eleanor Kay, for more information:
[email protected] Course Representatives in COMP1100 • We are looking for 3 course representatives! • Looking for diverse representation –male and female, Australian and international, different degrees etc. • If you are interested, please submit your application to
[email protected] before Friday week 1. • Write why you will be a good course representative. Describe your background or anything that might be relevant. • We will announce the course representatives in week 2.