#acl All:read
= Course Homepage =
== COMP2911: Design in Computing ==
||<#cccccc>~+ Course Material +~ ||<#ccccff> ~+ ''' [[http://www.cse.unsw.edu.au/~cs2911/13s1|2013 s1]] '''+~<
>''current session''||<#cccccc>~- [[https://www.openlearning.net/courses/COMP461394|2012 s1]] {*} -~<
> ~- [[http://www.cse.unsw.edu.au/~cs2911/12s2|2012 s2]] -~||<#cccccc> ~-[[http://mahler.cse.unsw.edu.au/webcms2/course/index.php?cid=2182|2011 s1]] {*} -~ <
> ~-[[http://www.cse.unsw.edu.au/~cs2911/11s2|2011 s2]] {o} -~||<#cccccc> ~-[[https://wiki.cse.unsw.edu.au/cs2911cgi/10s1|2010 s1]] {*} -~ <
> ~- [[http://www.cse.unsw.edu.au/~cs2911/10s2|2010 s2]] {X} -~ ||<#cccccc> ~- [[http://www.cse.unsw.edu.au/~cs2911/09s1/|2009 s1]] {*} -~ <
> ~-[[http://www.cse.unsw.edu.au/~cs2911/09s2|2009 s2]] {X} -~ ||<#cccccc> ~- [[http://www.cse.unsw.edu.au/~cs2911/08s1|2008 s1]] {X} -~ <
> ~-[[http://wiki.cse.unsw.edu.au/cs2911cgi/08s2|2008 s2]] {X} -~ ||<#cccccc> ~- [[http://wiki.cse.unsw.edu.au/cs2911cgi/07s1|2007 s1]] {X} -~ <
> ~-[[http://www.cse.unsw.edu.au/~cs2911/07s2|2007 s2]] {X} -~ ||
~-
''' Key ''' <
>
{*} - Course offering accessible, course links to and follows 2911 syllabus <
>
{o} - Course offering accessible, different syllabus used<
>
{X} - Course offering not available, link is broken -~
=== Overview ===
After completing COMP2911 you should:
* Understand the engineering design process
* Have an appreciation of the role of design in computing
* Work effectively in teams to design and implement solutions to large problems
* Select and/or design the appropriate algorithms/data structures/class hierarchies when developing software to solve non-trivial new and unfamiliar problems
=== Specific Skills ===
* Understand the fundamentals of Object Oriented (OO) programming.
* Design OO solutions for larger problems using abstraction and interfaces.
* Be able to appropriately reuse code using inheritance.
* Understand the issues involved in designing classes in an OO system.
* Distinguish between well-designed OO programs and poorly designed OO programs.
* Be aware of and make appropriate use of the most common design patterns in your class designs.
* Understand the most common algorithm design methodologies, and their strengths and weaknesses
* Appreciate when to select existing algorithms and when to design new ones.
* Be able to design reasonable algorithms to solve a range of problems.
* Be able to successfully develop large projects in teams using agile methods.
* Engage in effective pair programming.
* Follow a style guide and engage in effective code review.
* Understand and effectively use: program by contract, test driven development, and refactoring.
* Work effectively in a team.
* Use an IDE.
* Program in Java.
=== About the Course ===
* [[/SubjectInformation|Course Outline]]
* [[/AssumedKnowledge|Assumed Knowledge]]
* [[CoreCourses/Syllabus| Topic list]]
* [[JavaStyleGuide|Java Style Guide]]
* [[CoreCourses/StyleGuide|C Style Guide]]
=== Student Resources ===
* [[http://www.youtube.com/user/unswelearning#g/c/0F5ACFC767C1C4D9|lectures on YouTube]]
* [[/Schedule|Standard Teaching Schedule]]
* Final Exams: [[attachment:Exam-Sample-2911.pdf|specimen exam]] [[attachment:Exam2007s1-2911.pdf|2007s1 final exam]]
== Staff Resources ==
* [[/TeacherNotes|Notes on syllabus]]
||Postmortems and suggestions||~- [[/Postmortem/10s1|10s1]] -~||~- [[/Postmortem/09s2|09s2]] -~||~- [[/Postmortem/09s1|09s1]] -~||~- [[/Postmortem/08s2|08s2]] -~||~- [[/Postmortem/08s1|08s1]] -~||
* [[/comingSoon|Coming soon]]
----
~- CategoryCourseHomePage | <> page views -~