Study Abroad and Exchanges

Modules

Modules

CSC1022 : Programming II

Semesters
Semester 2 Credit Value: 20
ECTS Credits: 10.0

Aims

To give students a deeper understanding of OO design issues and data structure implementation and use.
To illustrate these ideas using examples taken from standard Java libraries.
To provide a deeper insight into fundamental programming concepts.

This module will cover a variety of abstractions and representations (e.g. lists, stacks, queues, trees) making use of the Java Collections framework (a sophisticated Java library). It will introduce event-driven programming, event handling in Java, GUI programming with AWT/Swing, case studies taken from Java libraries (e.g. java.util, javax.swing).

Outline Of Syllabus

Programming Fundamentals – problem solving
•       Debugging strategies
•       The concept and properties of algorithms
Programming Fundamentals – data structures
•       Runtime storage management
•       Linked structures
•       Implementation strategies for stacks, queues, and hash tables
•       Implementation strategies for trees
•       Strategies for choosing the right data structure
Programming fundamentals – recursion
•       The concept of recursion
•       Recursive mathematical functions
•       Simple recursive functions
•       Divide-and-conquer strategies
Programming fundamentals – event driven programming
•       Exception handling
Programming fundamentals – object oriented programming
•       Object-oriented design
•       Encapsulation and information-hiding
•       Separation of behaviour and implementation
•       Classes and subclasses
•       Inheritance (overriding, dynamic dispatch)
•       Polymorphism (subtype polymorphism vs. inheritance)
Programming Languages – declarations and types
•       The conception of types as a set of values with together with a set of operations
•       Declaration models (binding, visibility, scope, and lifetime)
•       Garbage collection
Programming Languages – abstraction mechanisms
•       Procedures, functions, and iterators as abstraction mechanisms
•       Type parameters and parameterized types
Programming Languages – object oriented programming
•       Object-oriented design
•       Encapsulation and information-hiding
•       Separation of behaviour and implementation
•       Classes and subclasses
•       Inheritance (overriding, dynamic dispatch)
•       Polymorphism (subtype polymorphism vs. inheritance)
•       Class hierarchies
•       Collection classes and iteration protocols

Teaching Methods

Teaching Activities
Category Activity Number Length Student Hours Comment
Guided Independent StudyAssessment preparation and completion441:0044:00Lecture follow-up
Scheduled Learning And Teaching ActivitiesLecture441:0044:00Lectures
Guided Independent StudyAssessment preparation and completion440:3022:00Revision for end of semester exam
Scheduled Learning And Teaching ActivitiesPractical221:0022:00Practicals
Guided Independent StudyProject work221:0022:00Coursework
Guided Independent StudyIndependent study232:0046:00Background reading
Total200:00
Teaching Rationale And Relationship

Lectures will be used to introduce the learning material and for demonstrating the key concepts by example. Students are expected to follow-up lectures within a few days by re-reading and annotating lecture notes to aid deep learning.

This is a very practical subject, and it is important that the learning materials are supported by hands-on opportunities provided by practical classes. Students are expected to spend time on coursework outside timetabled practical classes.

Students aiming for 1st class marks are expected to widen their knowledge beyond the content of lecture notes through background reading.

Students should set aside sufficient time to revise for the end of semester exam.

Assessment Methods

The format of resits will be determined by the Board of Examiners

Exams
Description Length Semester When Set Percentage Comment
PC Examination902A60Blackboard OLA - open book
Other Assessment
Description Semester When Set Percentage Comment
Prob solv exercises2M12About 10 weekly exercises (1 hour each)
Practical/lab report2M28Programming project (up to 30 hours)
Assessment Rationale And Relationship

The examination will consist of a number of "short-answer" questions to test the students' broad knowledge of programming and a section requiring the students to show greater depth of understanding of a number of key concepts introduced. The heavy weighting of coursework (40%) in this module reflects the importance of practical aspects of this module.

N.B. This module has both “Exam Assessment” and “Other Assessment” (e.g. coursework). If the total mark for either assessment falls below 35%, the maximum mark returned for the module will normally be 35%.

Reading Lists

Timetable