Find information relating COVID-19 and this offering here and here .
Course Code | COMP6080 |
Course Title | Software Engineering Fundamentals |
Convenor | Hayden Smith |
Admin | Hayden Smith |
Units of Credit | 6 |
Course Website | http://cse.unsw.edu.au/~cs6080/20T3/ |
Handbook Entry | http://www.handbook.unsw.edu.au/undergraduate/courses/current/COMP6080.html |
COMP6080 aims to develop your confidence in building modern web-based applications to industry standards. This occurs through the introduction of a range of basic concepts surrounding HTML, CSS, Vanilla Javascript, Javascript Declarative Frameworks, UI/UX Principles, Accessibility, Network & Asynchronous Programming, Front-end Testing, and other basic infrastructure.
This course has a heavy emphasis on industry voices, and as such a number of lectures (approximately 50% of the course) will be given by current front-end developers from industry. For 20T3 the bulk of this industry support comes from
Canva
, with some less major help from
Google
.
COMP6080 assumes that you have satisfactorily completed COMP1531 and (COMP2521 OR COMP1927). The main areas of knowledge you'll need from these courses are:
Postgraduate students will need to familiarise themselves with git, specifically, if not already confident, check out the resources here .
After completing this course, students will be able to:
The challenges of teaching front-end in a finite time period are related to the size and scope of knowledge around modern web front-end. Building even the most basic modern web app requires an extreme breadth and depth of abstractions that take typical developers years to become very comfortable with.
Teaching front-end is also challenging due to the rapid advances that are made in the world of web (a good thing), which leads to sprawling and conflicting resources across the internet. This can lead to learning inconsistent or sub-standard practices and programming patterns.
To teach only declarative frameworks (e.g. ReactJS) as an introduction creates the problem of producing capable students who can rapidly produce work, but do so without the fundamental understanding to grow and apply their skills sustainably and with accountability. However, to teach only Vanilla Javascript would neglect the reality that nearly all students in this course will inevitably not be building actual applications with Vanilla Javascript.
This course is about spending a term learning both Vanilla Javascript (Javascript without abstractions) and Javascript Declarative Frameworks (specifically ReactJS). The term will begin with a heavy focus on HTML/CSS, and have topics of UI/UX, Accessibility, and Testing, trickled throughout. The course will be very heavy Vanilla JS to start while slowly tapering off, and will be very light on ReactJS at the start before rapidly getting into more depth.
The decision is to introduce ReactJS early (but lightly), instead of waiting until the middle of term, is to provide students with a very slow introduction to a challenging concept and really provide time to absorb ideas amidst these short 9 week teaching terms.
A crude visualisation of the teaching approach to topics can be seen below. The area of each shape denotes the focus it will be given with respect to time throughout the course.
There will be a number of people who feel strongly about the exclusion of particular topics from the course, such as typescript or more complex state managers (redux, mobx). Often when topics are omitted it's because they aren't
fundamental
knowledge in the limited weeks this course is offered in.
We've compiled an FAQ to answer these questions. If you still have further questions or comments, we'd encourage you to use the forum linked in the sidebar.
Students with prerequisite knowledge in this course should understand that this is an introductory course with very limited assumed knowledge, and as such, is not a course to extent an already firm foundation of knowledge. If you are already quite competent in the areas taught in this course, please be patient as we will be moving quite slowly by your standards. If this is something that you feel may be frustrating, it may be more appropriate with your skillset to find a more stimulating course.
This course uses the standard set of practice-focused teaching strategies employed by most CSE foundational courses:
Lectures will be used to present the theory and practice of the techniques in this course. Although the lectures will primarily focus on the key concepts of software engineering, some lectures will also include practical demonstrations. Lecture slides will be available on the course web page.
On a typical week we will only have the live Thursday lecture (2 hours). The live Monday lecture will be replaced by approximately 2 hours of pre-recorded lectures to watch each week. Please note:
You can see the schedule for lectures here , and the list of lecture videos and content here .
Because lectures will be delivered from a
range
of people, it's important that students are prepared for differences in slide format and teaching style.
Tutorials are 1 hour lessons every week that help clarify ideas from lectures and work through exercises based on the lecture material. You should make sure that you use them effectively by examining in advance the material to be covered in each week's tutorial, by asking questions, by offering suggestions and by generally participating.
Tutorial information on it's release can be found by going to the tutorials page . Tutorial solutions will be released at the end of the week the tutorial is in. Tutorials do not contribute to your final mark.Tutorials will be run via Blackboard Collaborate.
Laboratories follow tutorials, and are 2 hours in length. They are open ended video calls (Blackboard Collaborate) where there will be two types of tutors / lab assistants:
You must submit a lab by the end of the week that it's due (see lab for specific due date). Your lab must be then marked off by a tutor in that collaborate session in the following teaching week. E.G. Week 3 lab submitted Sunday of week 3, to be marked off in your lab in week 4.
When you are marked off with your computer, please have your lab work ready and able to be screen shared to show your lab assistant.
The collaborate sessions will have multiple breakout rooms for both student assistance and lab marking.
Help sessions are unprepared drop-in "clinics" where students and groups can go to seek help about course related matters, whether that be the project, tutorials, or labs. Current tutors or lab assistants will supervise each help session.
Help session will be run via zoom.
There will be a series of assignments which will run through the teaching period from weeks 1-10 and contributes to 60% of the overall course mark. Each assignment is worth 20%.
Assignments will be the platform you have to study and learn the material in substantially more depth.
Your assignments will be completed via gitlab.
The intention is that the third assignment will be completed in a pair. You are able to opt out of this and work alone (at your own expense!). You can choose your pair, otherwise we will assign you a partner. You can pair up with any student in the course.
There will be a centrally timetabled final exam which will in your UNSW exam timetable. The exam may contain a mixture of multiple choice questions, short answer questions, and programming exercises. More specific details of the exam will be provided through the course.
If you cannot attend the final exam because of illness or misadventure, then you must submit a Special Consideration request, with documentation, through MyUNSW within 72 hours of the start of the exam exam. If your request is reasonable, then you will be awarded a Supplementary Exam. No supplementary exams will be provided for students who score marks 49 or below on grounds of being "close" to a pass.Item | Due | Weighting |
Labs | Weeks 1-5,7-10 | 15% |
Assignments | Due in weeks 3, 7, 10 | 60% |
Final Exam | Exam period | 25% |
This breakdown was updated on the 24th of September from the previous explanation (below). If there are any urgent issues please notify cs6080@cse.unsw.edu.au:
The marking criteria for your assignments will be specified in each specification (once released) and can be found
here
.
The marking criteria for your final exam will be specified in the exam specification which can be (once released) found here .
The schedule for this course is outlined clearly in the timetable for lectures , tutorials/labs , and help sessions .
The Student Code of Conduct ( Information , Policy ) sets out what the University expects from students as members of the UNSW community. As well as the learning, teaching and research environment, the University aims to provide an environment that enables students to achieve their full potential and to provide an experience consistent with the University's values and guiding principles. A condition of enrolment is that students inform themselves of the University's rules and policies affecting them, and conduct themselves accordingly.
In particular, students have the responsibility to observe standards of equity and respect in dealing with every member of the University community. This applies to all activities on UNSW premises and all external activities related to study and research. This includes behaviour in person as well as behaviour on social media, for example Facebook groups set up for the purpose of discussing UNSW courses or course work. Behaviour that is considered in breach of the Student Code Policy as discriminatory, sexually inappropriate, bullying, harassing, invading another's privacy or causing any person to fear for their personal safety is serious misconduct and can lead to severe penalties, including suspension or exclusion from UNSW.
If you have any concerns, you may raise them with your lecturer, or approach the School Ethics Officer , Grievance Officer , or one of the student representatives.
Plagiarism is defined as using the words or ideas of others and presenting them as your own. UNSW and CSE treat plagiarism as academic misconduct, which means that it carries penalties as severe as being excluded from further study at UNSW. There are several on-line sources to help you understand what plagiarism is and how it is dealt with at UNSW:
Make sure that you read and understand these. Ignorance is not accepted as an excuse for plagiarism. In particular, you are also responsible that your assignment files are not accessible by anyone but you by setting the correct permissions in your CSE directory and code repository, if using. Note also that plagiarism includes paying or asking another person to do a piece of work for you and then submitting it as your own work.
UNSW has an ongoing commitment to fostering a culture of learning informed by academic integrity. All UNSW staff and students have a responsibility to adhere to this principle of academic integrity. Plagiarism undermines academic integrity and is not tolerated at UNSW. Plagiarism at UNSW is defined as using the words or ideas of others and passing them off as your own.
If you haven't done so yet, please take the time to read the full text of
The pages below describe the policies and procedures in more detail:
You should also read the following page which describes your rights and responsibilities in the CSE context:
There is no single text book that covers all of the material in this course at the right level of detail and using the same technology base as we are. The lectures should provide sufficient detail to introduce topics, and you will then study them in further depth in the tutorials, labs and assignments. For some lectures, further reading material may be given for students who wish to gain a deeper understanding.
Resource created Sunday 26 July 2020, 01:56:58 AM, last modified Monday 09 November 2020, 11:52:19 PM.