Course Title: Programming Studio 1

Part A: Course Overview

Course Title: Programming Studio 1

Credit Points: 24.00

Terms

Course Code

Campus

Career

School

Learning Mode

Teaching Period(s)

COSC3056

RMIT University Vietnam

Undergraduate

175H Computing Technologies

Face-to-Face

Viet3 2023,
Viet1 2024

COSC3057

RMIT Vietnam Hanoi Campus

Undergraduate

175H Computing Technologies

Face-to-Face

Viet3 2023,
Viet1 2024

Flexible Terms

Course Code

Campus

Career

School

Learning Mode

Teaching Period(s)

COSC2803

City Campus

Undergraduate

171H School of Science

Face-to-Face

UGRDFlex21 (PBC1),

UGRDFlex21 (ZZZZ)

COSC2803

City Campus

Undergraduate

175H Computing Technologies

Face-to-Face

UGRDFlex22 (F2S1),

UGRDFlex22 (F4S1)

COSC2803

City Campus

Undergraduate

175H Computing Technologies

Face-to-Face

UGRDFlex23 (F2S1),

UGRDFlex23 (F4S1)

COSC2803

City Campus

Undergraduate

175H Computing Technologies

Face-to-Face

UGRDFlex24 (STEM)

Course Coordinator: Halil Ali

Course Coordinator Phone: -

Course Coordinator Email: halil.ali@rmit.edu.au

Course Coordinator Location: -

Course Coordinator Availability: by appointment


Pre-requisite Courses and Assumed Knowledge and Capabilities

Required Concurrent Study
You should undertake COSC2801 - Programming Bootcamp 1 at the same time as this course as it contains areas of knowledge and skills which are implemented together in practice.

Alternatively, you may be able to demonstrate the required skills and knowledge before you start this course.

Contact your course coordinator if you think you may be eligible for recognition of prior learning.

Assumed Knowledge
Successful completion of Programming Studio 1 requires that students have a proficiency in the Java Programming language as gained before the commencement of this course, or as gained in the co-requisite course. This proficiency includes the following skills and concepts:

  • Foundations of programming:
    • Basic control structures: sequence, selection, and iteration
    • Common data types: integer, floating-point, string, etc.
    • Basic data structures: arrays
    • Methods and Functions
  • Foundations of Object Orientated programming: 
    • Classes
    • Objects


Course Description

Programming Studio 1 is a studio-based course that focuses on the acquisition and development of fundamental technical and professional skills for computing. The studio-based approach provides an authentic problem setting. Theory and practice are blended in the application of learning centred on development.

In Programming Studio 1 students explore how to build software, through learning how to build a simple fully functional data-driven website. Students learn about fundamental concepts in User-Centred Design (UX/UI) and Database System that explore the front-end-to-back-end of software development. Students integrate theory and practice across these concepts together in the Studio Project. In a studio-long project, students put into practice the theoretical concepts through your programming skills to make a fully functional website.

This course includes a work integrated learning experience in which your knowledge and skills will be applied and assessed in a real or simulated workplace context and where feedback from industry and/ or community is integral to your experience. 


Objectives/Learning Outcomes/Capability Development

This course contributes to Program Learning Outcomes (PLOs) for the following programs:

BP094 Bachelor of Computer Science
BP096 Bachelor of Software Engineering
BP162 Bachelor of Information Technology
BP340 Bachelor of Data Science

For more information on the program learning outcomes for your program, please see the program guide.  


Upon successful completion of this course, you will be able to:

  1. Apply pre-requisite and co-requisite knowledge of foundational skills in object oriented programming to (1) design and develop small-to-medium-scale software programs in the Java programming language; (2) design and develop small-to-medium-scale websites using simple web technologies; and (3) integrate the software programs with technologies for practical applications for other course learning outcomes;
  2. Apply core principles of design thinking and user-centred design to: (1) understand and apply concepts in innovative product design; (2) analyse users’ needs, usability goals and user experience goals; (3) understand the components of a design plan and apply user-centred design process from requirement gathering to user studies and evaluation; and (4) critically analyse and evaluate the  usability of sample interfaces and identify key features that make an outstanding user-centred interface;
  3. Transform and Apply and core principles of design thinking and user-centred design into practice to (1) create a ‘usability checklist’ that enhances the usability of an application, to summarize and explain usability concepts, relevant alternatives, and decision recommendations to peers and IT specialists; (2) apply software and paper prototyping tools to design user interfaces that take into account human capabilities and constraints, users’ needs, usability goals and user experience goals; and (3) synthesize the design and evaluation of various components of a user interface into a functional product using web technologies and the Java programming language;
  4. Apply core principles of database systems to (1) describe the underlying theoretical basis of the relational database model; (2) explain the main concepts for data modelling and characteristics of database systems; and (3) develop a sound database design using conceptual modelling mechanisms such as entity-relationship diagrams;
  5. Transform and Apply and core principles of database system theories into practice to (1) develop databases based on a sound database design; (2) apply SQL as a programming language to define database schemas, update database contents and to extract data from databases for specific users’ information needs; and (3) develop an interface for a database in the Java programming language;
  6. Demonstrate effective team participation, management and communication through relevant industry tools and practices, such as version control system;
  7. Identify and use strategies, including reflective frameworks and peer feedback to fill knowledge gaps;
  8. Demonstrate adherence to appropriate standards and professional practice.


Overview of Learning Activities

You will explore the course material through a sequence of hands-on workshops each week. Workshops are delivered in a blended mode featuring online interactive resources, practical exercises, activities, and discussions. The workshops depend on preparation material including written text, video content, and preparation exercises which you are expected to read and complete before attending the workshops. The workshops are supplemented by personal feedback opportunities and a weekly online Q&A live event.

You will need to spend significant time on learner-directed study and activities. This includes time spent completing the preparation material, completing the studio project and assessments, participating in the online course discussion channels, and conducting individual review, study, and reflection of the course content. Your learner-directed study will be designed by the instructors to reinforce concepts and develop practical skills across a variety of problem types.


Overview of Learning Resources

You will make extensive use of computer laboratories and relevant software provided by the School. RMIT will provide you with resources and tools for learning in this course through myRMIT Studies Course.

There are services available to support your learning through the University Library. The Library provides guides on academic referencing and subject specialist help as well as a range of study support services. For further information, please visit the Library page on the RMIT University website and the myRMIT student portal.


Overview of Assessment

The assessment for the programming studio places an emphasis on the workshop studio-model of the course. Through the assessments you will explore the front-end to back-end concepts of software development. You will apply the skills gained from the Programming Bootcamp in developing an application over the duration of the studio through the team based competitive review and studio project. You will individually demonstrate through the other assessment tasks, which will provide regular feedback on your individual progression.

This course has no hurdle requirements.

Assessment Task 1: Competitive Review. Initial Design of small to medium sized application (teamwork).
Weighting: 10% 
Investigate existing websites and mobile application that address a “social challenge". Conduct an informed survey to study the user perspective and identify shortcomings of the existing services from the user perspective.
This task supports CLOs: 2, 6, and 7.

Assessment Task 2: 50% Studio Project. Small to medium sized software application (teamwork).
Weighting: 50%
Studio Project: Design, prototype and build a small to medium sized application in teams. The project is divided into multiple milestones that cover: (1) the development of the end-to-end web application. (2) review and redevelopment of the studio project from user feedback and survey.
This task supports CLOs: 1 - 8.

Assessment Task 3: Studio Portfolio.
Weighting: 20%
An individual compilation of weekly studio activities including completed workshop exercises, results from studio discussions, and answers to set questions.
This task supports CLOs: 2 - 5, and 7.

Assessment Task 4: (20%) Programming and User Centred Design Challenge.
Individual formative knowledge and programming skills challenge of concepts in user-centred design and database systems held as a timed assessment during workshops or as scheduled.
This task supports CLOs: 2 - 5.

If you have a long-term medical condition and/or disability it may be possible to negotiate to vary aspects of the learning or assessment methods. You can contact the program coordinator or Equitable Learning Services if you would like to find out more.