COMPGC01 - Introductory Programming

This database contains 2016-17 versions of the syllabuses. For current versions please see here.

YearMSc Computer Science 
Taught ByGhita Kouadri Mostefaoui (100%)

This course introduces imperative and object-oriented programming using pure Java. The module uses Java to give a grounding in key object-oriented concepts such as class design, inheritance, dynamic binding and interfaces. Material focuses on practicing object oriented programming to be better prepared for future courses including COMPGC02 Apps Design and COMPGC05 Algorithmics. This is an intensely practical module and full student engagement outside of lectures and in lab classes is critical to successful completion of the module.

Learning Outcomes

After completing the module attendees will:   


  • Be able to design and implement object-oriented programs in Java, using a large sub-set of the language effectively.
  • Have knowledge of key object-oriented principles and design strategies.
  • Be able to use programming tools such as an integrated development environment (IDE), debugger, and code repository
  • Implement simple graphical user interfaces.


Topics covered in lectures or via online material:


Introduction to Imperative Programming
What is imperative programming? Introduction to Java. Variables. Conditions and loops. Types and type checking. Operators and expressions. 


Classes and Objects
Java class libraries. Creating and using objects. Object references. 


Declaring methods and using method parameters. Scope and lifetime. 


Packages and interfaces

Exception handling


Stream API and Lambda expressions 

Graphical user interfaces

Using an IDE and SDKs

Method of Instruction:

Lecture presentations, online materials, lab-classes and tutorial sessions. Self-directed learning, problem based learning. 


The course has the following assessment components:


  • In-class tests x 2 (60%)
  • Coursework - programming exercises (40%)

The Java coursework project for COMPGC01 is an individual project putting in practice the skills learned during the lectures/labs. Several weekly exercises are required to be completed and checked in labs.


To pass this course, students must:


  • Obtain an overall pass mark of 50% for all sections combined.






A UCL Library reading list can be found on Moodle. 

The recommended Java programming text is: Beginning Java 8 fundamentals : language syntax, arrays, data types, objects, and regular expressions / Kishori Sharan. Apress 2014, ISBN 9781430266525; ISBN 143026652X *Accessible online from the UCL library


Note: The module is based on the latest version of Java (Version 8).