programming as problem solving - gitlab.cecs.anu.edu.au...installfest • organized by anu computer...

45
Programming as Problem Solving COMP 1100/1130 Semester 1, 2019 Ranald Clouston The Australian National University

Upload: others

Post on 27-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Programming as Problem SolvingCOMP 1100/1130Semester 1, 2019

Ranald CloustonThe Australian National University

Page 2: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Acknowledgement of Country

I wish to acknowledge the traditional custodians of the land we are meeting on, the Ngunnawal people. I wish to acknowledge and respect their continuing culture and the contribution they make to the life of this city and this region. I would also like to acknowledge and welcome any other Aboriginal and Torres Strait Islander people who are enrolled in our courses.

You can learn more about Acknowledgements of Country here.

Page 3: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

COMP1100 Team• Course convener and lecturer

Ranald Clouston

• Second examinerEkaterina (Katya) Lebedeva

• TutorsRicha AwasthyJames BaconDev ChakrabortyZoey ChenJosh CornerJosh GilbertRobert Jeffrey

Jack KellyMadddox Kwo WongTom LaManal MohaniaDavid O’DonohueEric PanDavid Quarel

Peter QuarelRohit RamAlex SmithJack StodartAbigail ThomasXi (Ella) WangYihan (Allie) Zhou

Page 4: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Part One

What is this course?

Page 5: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

COMP1100 and COMP1130

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

Page 6: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

COMP1130

• Extends COMP1100 with topics on the mathematical foundations of programming.

• More depth, more work, more 'curiosity-driven'.• Required for students in BAC(R&D).• Assumes ACT Specialist Maths or NSW Maths Extension 1, or

equivalent.• Aimed at mathematically elite students.

Page 7: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

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.

Page 8: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

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

Page 9: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Ongoing vs One-Off Study

• COMP1100/1130 is designed to be an introduction to a broader course of learning in computer science.

• May also be used as a 'taster' of what computer science is like.• But not recommended for students who intend to only do one

computer science course to get useful programming skills.• We recommend COMP1730 (Programming for Scientists) for such

students.

Page 10: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Programming vs Other IT Skills

• COMP1100/1130 completely focused on programming.• Other information technology skills (spreadsheets, presentation tools,

word processing, website design…) are not covered.• We offer COMP1710 (Web Development and Design) and COMP1720

(Art & Interaction in New Media).

Page 11: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Exiting the Course

• Easy to do in the first week, picking another course up.• Moving from 1130 to 1100 possible at any stage, but any marks

received as an 1130 student will stand.• 31 March ‘Census date’ deadline for withdrawal without fees.• 10 May deadline for withdrawal without failure.• Visas – it is not always true that withdrawal from a course without

replacement will violate your visa; talk to Student Services about this if you need information.

Page 12: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

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?

Page 13: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Getting Information: Course Website

https://cs.anu.edu.au/courses/comp1100

• Announcements in lectures and on Piazzaforum also.

Page 14: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Getting Content: Lectures

• Introduces the core concepts of the course, and 'live coding' to show you programming in action.

• Tuesday, Cultural Centre Large Event Room, 2:00pm–3:30pm• Thursday, Cultural Centre Large Event Room, 8:30am–10:00am

• Friday, 1130 only, Science Teaching Building 3.07, 10:00am–11:00am

Page 15: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Lecture recordings

https://echo360.org.au

Warning: Use these recordings instead of attending at your own risk.

Page 16: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Getting Content: The Textbook

Thompson, SimonHASKELL: the craft of functional programmingThird edition

• Not required• To buy or not to buy? Depends on the student.• Copies in the library.

Page 17: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Peer

Assisted

Learning

• Students who have done these courses before

• Run 6, hour long mentoring sessions per week (5 for 1100 and 1 for 1130)

• Fun, interactive, problem solving focused sessions to equip you with the skills we have that will help you survive COMP

• We’re your pals, come talk to us about anything!

•Tech support

•Tutors

We are: We are not:

Benefits:Get better grades!

Make friends

Page 18: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Yichen

Cassy Razi Jay

Edmund Cameron

Page 19: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Important info:

Starts week 2 (unlike your tutorials!)

Timetable finalised soon, keep an eye on Piazza and your course website.

No registration required, drop in any day.

Page 20: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Practising Skills: Labs

• You will learn more, and have more fun, in labs than any other part of the course!

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

Page 21: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

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.

Page 22: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Getting Questions Answered

• Live questions in lectures 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 (in rare circumstances)

Page 23: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

https://piazza.com/anu.edu.au/spring2019/comp1100comp1130Piazza Forum

Page 24: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •
Page 25: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Lab 1.24

Start in week 2

Note that Thursday consultations clash with lecture, and Friday consultations clash with 1130 lecture

Building 145 (the new building)

Page 26: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Getting Questions Answered: Email

• 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 lecturers, instead of using Piazza, only if you have an issue that tutors could not help with or should not see.

- Use [email protected] (read by Ranald and Katya)- Use your ANU address

• For all enquiries not directly related to this course, contact Student Services in person or by email ([email protected]).

Page 27: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Part Three

Miscellaneous Resources

Page 28: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

InstallFest

• Organized by ANU Computer Science Student Association (CSSA)

• 6-10pm on Thursday 7 March (in Week 2)• N101 in the CSIT building (#108)• Dinner will be provided

Page 29: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Study Sessions

•Organized by ANU Computer Science Student Association (CSSA)

•Two sessions:- Preparation for mid-term exam- Preparation for final exam

Page 30: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

ANUSA CECS Representatives

● Computer Science Rep: Tyrus Caldeira● Engineering Rep: Matilda Dowse● We’re advocates for CECS and do our best

to ensure all CECS students wellbeing● We can help you with anything about CECS,

ANUSA or ANU.● If you have academic, personal, course

issues etc, we are here to help!● Contact us at: [email protected]

Page 31: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

https://services.anu.edu.au/business-units/division-of-student-life

Page 32: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

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

Page 33: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Part Four

Academic Integrity

Page 34: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Academic Integrity• Plagiarism

the practice of 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, and 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

Page 35: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

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

Page 36: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

🙁🙁

Page 37: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

🙂🙂

Page 38: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

🙁🙁

Page 39: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

🙁🙁

Page 40: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

🙂🙂

Page 41: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Web search

• Syntax• Background

• Solution

Page 42: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Part Five

Course Representatives

Page 43: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

43

CECS Course RepresentativesWhy 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.

Page 44: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

44

CECS Course RepresentativesWant to be a course representative? Nominate today!

Please contact your convenor by 4th March to nominate yourself 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]

Page 45: Programming as Problem Solving - gitlab.cecs.anu.edu.au...InstallFest • Organized by ANU Computer Science Student Association (CSSA) • 6-10pm on Thursday 7 March (in Week 2) •

Course Representatives in COMP1100/1130

• We are looking for 5 course representatives!• Looking for diverse representation – 1100 and 1130, 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.