Postgraduate Diploma in Computer Science - Subjects

A LIST OF SUBJECTS COMPLETED FOR MY COMPUTER SCIENCE DIPLOMA

SUBJECT LIST

  • C++
  • Computer Architecture
  • Data Structures
  • Informations Systems
  • Social Implications
  • Writing Formal & Natural
  • Database Management
  • Networks
  • Neural Networks
  • Object Oriented Programming with Java
  • Operating Systems
  • Software Engineering
  • XML

 

BREAKDOWN

C++

  • Elements of C++: program structure, #includes, variables, strings, assignments, input and output, arithmetic and type conversion.
  • Use of objects member functions.
  • Strings. Output formatting.
  • Conditional statements, boolean operators, boolean variables, conditional operator, the switch statement.
  • Loops - while, for, and do loops. Handling filestreams for input and output, stringstreams.
  • Procedures and functions, parameter passing, scope and lifetimes.
  • Vectors
  • Strings as vectors of char, 2-D vectors, arrays, C strings as arrays of char, character-level I/O, some number problems.
  • Creating a Date class, overloading operators and friends, a double-ended vector that does bounds checking.
  • Dynamic data structures - pointers and linked lists, inserting and deleting nodes
  • Implementing a queue class with a linked list.
  • Recursion and binary trees, building a binary search tree, the Towers of Hanoi recursion in language.
  • Objects containing pointers.
  • Inheritance and polymorphism.
  • Templates header files and preprocessor commands the STL.
  • Function overload resolution and exception handling.

 

Computer Architecture

  • Number systems and logic, including binary conversion and arithmetic two's compliment fractions, floating point numbers, roundoff errors, memory addresses, logical and bitwise operators, truth tables Boolean identities.
  • CPU instructions and assembler programming, including inline assembler with C, while and for loops, arrays, subroutines, stacks, stack frames and pointers addressing, flags.
  • Recursive programming in assembler for the Pentium 4.
  • Intel Pentium memory configuration, including virtual memory, interrupts, memory hardware.
  • Digital logic components, including adders, latches, decoders, multiplexers, microsequencing.
  • CPU architecture, including microprogramming, pipelines.

 

Data Structures

  • Various data structures in psuedocode notation, including linear lists, doubly linked lists, circular lists, queues, dequeues, threaded and unthreaded binanry trees, representation of trees, binary search trees, sequential, random and indexed file organisation, dynamic hashing, b-trees.

 

Information Systems

  • Information systems overview, the design cycle, requirements and fesibility, logical data modelling, relational databases and normalisation, data flow diagrams, designing applications, interface design, rapid application development, software testing, and maintenance project lifecycle software, metrics.

 

Social Implications

  • Human rights, intellectual property, data protection act, patents and copyright.

 

Writing Formal & Natural

  • Set theory: functions, relations, restrictions, projections, and the  English language.

 

Database Management

  • The relational model
  • Relational Algebra
  • SQL data manipulation
  • Host language support for embedded SQL
  • Transaction management
  • Normalisation
  • Data definition
  • Integrity constraints
  • Oracle storage structures
  • Oracle architecture
  • Query optimisation
  • PL-SQL
  • Triggers
  • ObjectDBMS
  • Distributed databases and architecture

 

Networks

  • Physical layer: Transmission media, asynchronous communication.
  • Data-link layer: Packets, frames, hardware addressing, LAN and WAN technology.
  • Network Layer: Internetworking, IP and fragmentation, ARP, ICMP.
  • Transport Layer: UDP, TCP, NAT
  • Application Layer: Client-server interaction, DHCP, DNS, electronic mail, FTP web browsing and programming.
  • Network Security: Cryptography, encryption, digital signatures, firewalls, VPNs.
  • The next generation: Physical layer, network layer and IP6, application layer, and voice-over-ip.

 

Neural Networks

  • Supervised, unsupervised, and reinforced learning networks
  • McCulloch & Pitts model, mathematical formulation of the MCP neuron model
  • Perceptrons and learning algorithms, the sigmoid function, multilayer networks, derivation of back-propogation, multilayer perceptrons and algorithms, examples and applications of neural networks
  • Kohonen self organising maps and algorithms, speech recognition
  • Time delay neural networks

 

Object Oriented Programming with Java

  • Java 1.4 and 5 differences
  • Objects and Classes
  • Design by Contract
  • Multiple inheritance
  • Inner classes
  • Unit testing
  • Patterns and software
  • Reflection
  • Java Generics
  • Java Swing
  • Model-View-Controller pattern
  • Aspect-oriented programming
  • C#
  • Contract reinforcement with AOP
  • OOP with Ruby
  • Design-by-contract with Eiffel

 

Operating Systems

  • Processes and Threads: Creation and termination states, usage implementations
  • Interprocess communication: Race conditions, critical regions, semaphores, mutexes, monitors, dining philosophers, sleeping barber.
  • Scheduling: Batch interactive and real-time scheduling, policies and mechanisms.
  • Deadlock: Resource allocation graphs, deadlock conditions, Ostrich algorithm, deadlock prevention, recovery and avoidance, Bankers algorithm, two-phase locking.
  • Memory management: Basic memory management, swapping, virtual memory page replacement algorithms, design issues for paging systems, implementation issues, segmentation.
  • Input/Output: Principles, device controllers, DMA, interrupts, handlers, device drivers, disk hardware and arm scheduling algorithms, error handling, clocks and timers.
  • File Systems: Naming, access structure, implementation, allocation, directories, shared files, disk management, reliability, DOS, Unix, and Windows 2000 filesystems.
  • Security: The security environment, user authentication, attacks from inside the system, attacks from outside the system, protection mechanisms, trusted systems.

 

Software Engineering

  • OOA/D and the UP (Unified Process)
  • UML: Domain model use case diagrams system sequence diagrams (SSD) interaction diagrams collaboration diagrams design class diagrams (DCD)
  • Use-Case model: write requirements
  • Domain model: identify conceptual classes
  • Design model: design objects and their interactions
  • Design model (cont): the GRASP patterns
  • Design examples and Implementation model
  • GRASP and GoF patterns
  • Design examples using GRASP and GoF patterns
  • Architectural analysis

 

XML

  • HTML and the Web
  • Extensible markup language (XML)
  • Document type definitions (DTDs)
  • Namespaces
  • XML schemas
  • XML path language (XPath)
  • Extensible style language (XSL)
  • Querying XML

 

Posted by Russell Carter 27 April 2008