The course is an advanced version of the Bachelor of Computer Science, designed for high-achieving students who wish to study computing in depth with a strong research component through the four years of study. Computer science is the theory and practice of applying computers and software to problem solving. Its practical applications span all disciplines including science, engineering, business and commerce, creative and performing arts and the humanities. You will learn how to think like a computer scientist about processes and their descriptions. This will enable you to design algorithms (instructions for computers) and data structures (ways to store information). You will also acquire practical programming skills to implement these in efficient software that solves real-world problems, as well as strong foundations in the theory of computation and its connection to mathematics.
This advanced course will prepare you for either postgraduate study or employment requiring research and advanced computer science skills. You will do a research project unit in your second year, supported by a research skills unit. In your third year, you will undertake either a 22-week industry-based learning (IBL) placement supported by a generous scholarship, or a 22-week placement in a research group or work unit of a participating organisation, or an advanced computer science research project and approved elective.
Through the IBL or research placement, you will apply and further develop your skills and knowledge in a professional organisation. The advanced research project will provide practical experience in designing, developing and testing a non-trivial computer science project. Your studies will conclude with a full-year honours-level research project in a specialist area of advanced computer science. You will graduate with strong research, analysis, problem solving, communication and teamwork skills, deep knowledge of the field of computer science, and hands-on experience in IT research.
These course outcomes are aligned with the Australian Qualifications Framework level 8 and Monash Graduate AttributesAustralian Qualifications Framework level 8 and Monash Graduate Attributes (http://www.monash.edu.au/pubs/handbooks/alignmentofoutcomes.html).
Upon successful completion of the Bachelor of Computer Science Advanced (Honours) it is expected that you will be able to:
- demonstrate an advanced knowledge of the role of computer science and computational methods, and recognise the importance of theoretical underpinning for practical work
- demonstrate understanding of ethical issues in professional and research practice and its historical, contemporary and likely future scientific, industrial and social context
- critically analyse problems, design algorithms to solve them, program efficient software solutions and demonstrate the ability to transform and apply computational solutions to new context
- apply problem-solving strategies to design, implement and critically evaluate substantial pieces of software using a range of programming paradigms, advanced data structures and algorithms
- communicate and coordinate proficiently by: listening, speaking, reading and writing English and utilising diagrams, graphics and interactive visualisations in a professional and research context; working as an effective member or leader of teams; and using basic tools and practices of formal project management
- plan and execute projects with some independence and take responsibility for your own learning and practice; manage your own time and processes effectively by prioritising competing demands to achieve personal and team goals, with regular review of personal performance as a primary means of managing continuing professional development; behave in an ethical and professional manner, and be able to adapt readily to changing technologies
- critically evaluate IT research; be able to apply appropriate research methodologies to conduct significant independent research.
This course is accredited by the Australian Computer Society as meeting the standard of knowledge for professional level membership.
The course develops through the themes of computer science foundation study, specialist discipline knowledge, research skills, and professional skills, which come together in applied practice.
Part A. Foundational computer science study
This study will develop your understanding of the role and theoretical basis of computer science and computational methods.
Part B. Professional skills
This study develops professional skills by providing an understanding and appreciation of the ethical and professional guidelines applicable to computer science practice and research; developing the ability to work as an effective team member and to communicate proficiently and appropriately in professional and research contexts.
Part C. Specialist discipline knowledge
This study will develop deep knowledge and advanced skills in advanced computer science.
Part D. Research skills
This study develops the ability to critically evaluate IT research and to apply appropriate methodologies to conduct independent research in computer science. It develops strong problem-solving skills and the ability to apply analytical thinking.
Part E. Applied practice
The above knowledge and skills are integrated and consolidated in applied practice as demonstrated in a computer or data science project, and in some cases in an industry-based learning placement.
Part F. Free elective study
These elective units will enable you to broaden and deepen your knowledge of computer science, or to select units from across the University in which you are eligible to enrol.
This course comprises 192 points, of which 144 points must be from computer science study and 48 points are used to provide additional depth or breadth through elective study.
This course develops through theme studies in: Part A. Foundational computer science (48 points); Part B. Professional skills (12 points), Part C. Specialist discipline knowledge (42 points) and Part D. Research skills (24 points); and Part E. Applied practice (18 points) ; and Part F. Free elective study (48 points).
Elective units may be at any level, however, no more than ten units (60 points) can be credited to the computer science advanced course at level 1 and a minimum of 36 points must be completed in computer science at each of level 3 and 4 (or higher).
To remain in the program you are required to maintain at least a distinction average (70%) throughout your degree. If you do not meet this standard you will be required to transfer to C2001 Bachelor of Computer Science or C2000 Bachelor of Information Technology.
The course progression mapcourse progression map (http://www.monash.edu.au/pubs/2019handbooks/maps/map-c3001.pdf) provides guidance on unit enrolment for each semester of study.
Units are 6 credit points unless otherwise stated.
Part A. Foundational computer science study (48 points)
You must complete:
- FIT1053 Algorithms and programming in python (advanced)
- FIT1054 Computer science (advanced)
- FIT1047 Introduction to computer systems, networks and security
- FIT1049 IT professional practice
- FIT2004 Algorithms and data structures
- FIT2014 Theory of computation
- MAT1830 Discrete mathematics for computer science*
- MAT1841 Continuous mathematics for computer science*
Part C. Specialist discipline knowledge (42 points)
You must complete:
a. The following five units (30 points):
b. Two level 4 or 5 elective units (12 points) as approved by the course director.
Parts B. Professional skills (12 points) and Part D. Research skills (24 points)
You must complete:
a. Two research development units (12 points):
- FIT2083 Innovation and research in computer science
- FIT2082 Computer science research project
b. An honours thesis (24 points):
Part E. Applied practice (18 points)
You must complete one of the following:
- FIT3153 Research-based learning (18 points)
- FIT3045 Industry-based learning (18 points)
- FIT3144 Advanced computer science research project (12 points) plus one level 3 computer science-approved elective (6 points) from the following list*:
- FIT3031 Network security
- FIT3077 Software engineering: Architecture and design
- FIT3080 Intelligent systems
- FIT3081 Image processing
- FIT3088Not offered in 2019 Computer graphics
- FIT3094 Artificial life, artificial intelligence and virtual environments
- FIT3139 Computational science
- FIT3142 Distributed computing
- FIT3146 Emergent technologies and interfaces
- FIT3152 Data analytics
- FIT3154 Advanced data analysis
- FIT3159 Computer architecture
- FIT3165 Computer networks
- FIT3173 Software security
- FIT3175 Usability
- FIT3181 Deep learning
- MTH3170 Network mathematics
Part F. Free elective study (48 points)
Elective units may be chosen from the list in Part E above, from units in the data science specialisation of the C2001 Bachelor of Computer Science, the C2000 Bachelor of Information Technology or the software engineering specialisationsoftware engineering specialisation (http://www.%20monash.%20edu.%20au/pubs/handbooks/aos/software-engineering/ug-specialisation-eng-software-engineering.%20html) in the Bachelor of Engineering (Honours), or from across the University as long as you have the prerequisites and there are no restrictions on enrolment in the units. In addition, you may choose to complete a major or minor from other courses, so long as you have the prerequisites and there are no restrictions on admission to the units.
Free electives can be identified using the browse unitsbrowse units (http://www.monash.edu.au/pubs/handbooks/units/search) tool and indexes of unitsindexes of units (http://www.monash.edu.au/pubs/handbooks/units/) in the current edition of the Handbook. MajorsMajors (http://www.monash.edu.au/pubs/handbooks/aos/index-bydomain_type-major.html) and minorsminors (http://www.monash.edu.au/pubs/handbooks/aos/index-bydomain_type-minor.html) can also be identified using the Handbook indexes. The level of the unit is indicated by the first number in the unit code; undergraduate units are those that commence with the numbers 1-3. You may need permission from the owning faculty to enrol in some units taught by other faculties.