MODULE SPECIFICATION UNDERGRADUATE PROGRAMMES KEY FACTS

Similar documents
- Information about why the general insurance industry emerged and the benefits of insurance to society at large;

Chapter 3.2 C++, Java, and Scripting Languages. The major programming languages used in game development.

William Paterson University of New Jersey Department of Computer Science College of Science and Health Course Outline

Internet Technologies Programming: XHTML, CSS, XML, Ajax/jQuery, Javascript, PHP, ASP.Net, MySQL, MS SQL Server.

The aims of this module are to teach you how design and create graphics to represent data. In particular, to:

Programming Languages

School of Health Sciences Department or equivalent Division of Health Services Research and Management UK credits 15 ECTS 15 Level 7

C++ INTERVIEW QUESTIONS

BCS2B02: OOP Concepts and Data Structures Using C++

CMSC Fundamentals of Computer Programming II (C++)

Welcome to Computer Science 2604 Data Structures and File Management

Department of Electrical and Computer Engineering. EEL 3160 Embedded C++ and Data Structures. Tuesday & Thursday 3:00 5:00 pm

Introduction to Programming System Design. CSCI 455x (4 Units)

CSE 452: Programming Languages. Acknowledgements. Contents. Java and its Evolution

Syllabus Introduction to C++ Programming and Numerical Analysis Spring 2016

CEC225 COURSE COMPACT

C Programming Review & Productivity Tools

How To Program A Computer

Course MS10975A Introduction to Programming. Length: 5 Days

Analysis Programming

Computing Concepts with Java Essentials

Fundamentals of Java Programming

Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria

Management and Leadership in Healthcare

ERIKA Enterprise pre-built Virtual Machine

Java SE 8 Programming

6.088 Intro to C/C++ Day 4: Object-oriented programming in C++ Eunsuk Kang and Jean Yang

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Introduction to Research Methods and Applied Data Analysis

How To Teach C++ Data Structure Programming

Building Applications Using Micro Focus COBOL

Contents. Java - An Introduction. Java Milestones. Java and its Evolution

3 SOFTWARE AND PROGRAMMING LANGUAGES

The C Programming Language course syllabus associate level

Mathematics, Computer Science and Engineering Department or equivalent Computer Science

Introduction to Research Methods and Applied Data Analysis Online module

Programming II. Cecotti, H. Seminars Tutorials. Independent study (including assessment)

Chapter 1 Fundamentals of Java Programming

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

Research Data Management CODING

WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER

CSC230 Getting Starting in C. Tyler Bletsch

DIABLO VALLEY COLLEGE CATALOG

1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Experiences with Online Programming Examinations

Module Profile (refer to guidance notes to aid completion)

For UCAS tariff points please refer to our website (

School of Computer Science

HPC Wales Skills Academy Course Catalogue 2015

A deeper look at Inline functions

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Programme Specification and Curriculum Map for MSc Electronic Security and Digital Forensics

1/20/2016 INTRODUCTION

El Dorado Union High School District Educational Services

Evolution of the Major Programming Languages

Konzepte objektorientierter Programmierung

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

AC : A PROCESSOR DESIGN PROJECT FOR A FIRST COURSE IN COMPUTER ORGANIZATION

School of Informatics Department or equivalent Department of Computer Science Programme code

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011

6.S096 Lecture 1 Introduction to C

Programme Specification (Postgraduate) Date amended: 25 th March 2015

Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding

CSE 307: Principles of Programming Languages

PROGRAMME SPECIFICATION UNDERGRADUATE PROGRAMMES. Cass Business School Department or equivalent UG Programme (Cass Business School) UCAS Code

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

PROGRAMME SPECIFICATION POSTGRADUATE PROGRAMMES

School of Health Sciences Department or equivalent Division of Midwifery and Radiography UK credits 15 ECTS 7.5 Level 7

Monitoring, Tracing, Debugging (Under Construction)

Soft processors for microcontroller programming education

PROGRAMME SPECIFICATION UNDERGRADUATE PROGRAMMES KEY FACTS. School of Arts and Social Sciences Department or equivalent Department of Psychology

Software Design and Implementation - or, how to be a hacker

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

The Use of Hardware Abstraction Layers in Automated Calibration Software

FOUNDATION DEGREE - BUSINESS MANAGEMENT PROGRAMME SPECIFICATION

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Refractive Surgery. School of Health Sciences Department or equivalent Division of Optometry and Visual Science UK credits 15 ECTS 7.

Course Title: Software Development

COMPUTER SCIENCE, BACHELOR OF SCIENCE (B.S.)

CS A250 (CRN ) C++ Programming Language 2. Syllabus Fall 2015

Health Sciences Department or equivalent Division of Health Services Research and Management UK credits 15 ECTS 7.5 Level 7

Course Descriptions. CS 101 Intro to Computer Science

Programme Specification and Curriculum Map for MSc Business Information Systems Management

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

CS10110 Introduction to personal computer equipment

PROGRAMME SPECIFICATION UNDERGRADUATE PROGRAMMES KEY FACTS. School of Arts and Social Sciences Department or equivalent Department of Psychology

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Syllabus for CS 134 Java Programming

Cass Business School Department or equivalent MSc Programme (Cass Business School)

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

Programme name Civil Engineering, Civil Engineering with Industrial Placement

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C

Chapter 14. Programming and Languages. McGraw-Hill/Irwin. Copyright 2008 by The McGraw-Hill Companies, Inc. All rights reserved.

Programme Specification: MSc Electronic Commerce

Real-time Debugging using GDB Tracepoints and other Eclipse features

Development. G450 Multimedia Computing Science. Part time: COM5014

Transcription:

MODULE SPECIFICATION UNDERGRADUATE PROGRAMMES KEY FACTS Module name Programming in C++ Module code IN2029 School Mathematics, Computer Science and Engineering Department or equivalent Department of Computing UK credits 15 ECTS 7.5 Level 5 Delivery location (partnership programmes only) MODULE SUMMARY Module outline and aims The C++ language is one of the most widely used in industry, for a wide variety of applications; home consumer (PC application) usage, finance sector, and government systems, database and scientific driven applications, internet and entertainment solutions (such as games, music players, home media devices) and the majority of the world s mobile and embedded technologies. When learning C++, it is helpful to remember that it is four languages in one: A better C, i.e., a procedural language but more type-safe than C. That is why, for example, the Linux kernel is compiled with a C++ compiler, although it is plain C code; C++ s stronger type-safety helps catch more bugs at compile time. A language for data abstraction. A language for object-orientation. A language for generic programming (using templates, as in the STL library). It is also helpful to remember that, unlike Java, C++ was meant to be as close as possible to C and as fast as possible. The latter means that one has access to low-level mechanisms and that the language provides more than one ways of doing things. Programmers choose among the alternatives based on how abstract (or how fast) they want their code to be. So, C++ can be used both for writing programs which follow all the principles of well structured object-oriented / generic-programming / data-abstraction programs and for writing programs which break almost all of the rules to get maximum speed. C++ s complexity stems from these two points: its 4-in-1 nature and the fact that it gives you absolute control of the machine, without attempting to safeguard you from a number of unsafe mechanisms, as these are usually the ones needed for low-level systems programming. This is in contrast to Java that places safety first and was partly developed to make programming safer for non-expert programmers. The complexity and power of C++ makes it difficult to write large programs without a careful introduction to some of its

base aspects; the early draft of the forthcoming C++ language standard (N2800=08-0310) is 1314 pages long. The module focuses on introducing some basic aspects of the C++ language in a gradual manner so as to allow students to use it with confidence in follow-up modules (e.g., Games Development) and in their professional career. We follow a comparative approach, contrasting the features of C++ and their behaviour with those of Java, with which students are already familiar, so as to make the differences and their importance easier to understand and appreciate. The module covers the following topics (not necessarily in this order): Content outline Introduction to C++ for Java programmers. Parameter passing by value and reference. Classes in C++. Polymorphism: Method and Operator Overloading. More on I/O in C++. Polymorphism: Generic Programming. Introducing the standard template library (STL) Containers. Access to Memory: Pointers and Arrays; Container Iterators in the STL. Polymorphism: Class (Single) Inheritance and Dynamic Binding in C++. Genericity, pointers and inheritance. Multiple Inheritance. Memory management: static, stack, dynamic. Construction and destruction of objects. Implementing a container class. Program structure, separate compilation, header files. Resource management and exceptions. Pre-requisite Modules IN1007 Programming in Java Students with a mark lower than 60-65% in IN1007 may find the module to be challenging. WHAT WILL I BE EXPECTED TO ACHIEVE? On successful completion of this module, you will be expected to be able to: Knowledge and understanding: Demonstrate a good working knowledge of the core features of C++. Explain the uses and pitfalls of multiple inheritance in object-oriented languages. Choose between different memory management techniques, balancing efficiency against maintainability. Identify common design patterns appropriate to the solution of specific programming problems Explain generic typing systems.

Skills: Read and modify substantial well-written C++ programs. Create classes and small programs in C++ that are correct, robust and capable of being understood, reused and modified by others. Make use of various object-oriented features, including inheritance, multiple inheritance and genericity, to enhance software quality. Appreciate C++ libraries and make use of them in solving tasks. Values and attitudes: NOT STATED HOW WILL I LEARN? Teaching pattern: Teaching component Teaching type Contact Selfdirected study Placement Lectures Lecture 20 50 0 70 Lab-based Tutorials Practical classes and workshops 10 70 0 80 Totals 30 120 0 150 Total student learning WHAT TYPES OF ASSESSMENT AND FEEDBACK CAN I EXPECT? Assessments Assessment pattern: Assessment component C++ Programming Exercises Examination Assessment type Written assignment, Programming Written exam (unseen) Weighting Minimum qualifying mark Pass/Fail? 30 N/A N/A 70 N/A N/A

Assessment criteria Assessment Criteria and Grade-Related Criteria for module assessments will be made available to students prior to an assessment taking place. More information will be made available from the module leader. Feedback on assessment Following an assessment, students will be given their marks and feedback in line with the Assessment Regulations and Policy. More information on the timing and type of feedback that will be provided for each assessment will be available from the module leader. Assessment Regulations The Pass mark for the module is 40%. Any minimum qualifying marks for specific assessments are listed in the table above. The weighting of the different components can also be found above. The Programme Specification contains information on what happens if you fail an assessment component or the module. INDICATIVE READING LIST Walter Savitch: Absolute C++, Addison Wesley, 2002. Bjarne Stroustrup: The C++ Programming Language, 3 rd ed, Addison Wesley, 1997. Cay Horstmann: Computing Concepts with C++ Essentials, 3 rd ed, Wiley, 2003. Walter Savitch: Problem Solving with C++, 4 th ed, Addison Wesley, 2003. Bruce Eckel: Thinking in C++, 2 nd ed. also available on-line at the author s website: http://www.mindview.net/books/ticpp/thinkingincpp2e.html/ The most authoritative book is Stroustrup s, since he is the author of the C++ language. For example, in the Further reading section of Absolute C++, Savitch states that if you should buy a single book on C++, Stroustrup should be your choice. Savitch also refers the reader to other, more advanced, books at certain occasions. However note that you may find Stroustrup s book difficult to understand, as it was written for professional programmers. So consult first these books in the library or a bookstore, comparing a chapter or two, to see which one you feel more comfortable with. Tools you will need for this module: g++ (C++ compiler) cpp (part of g++ - the C Pre-Processor) ld (part of g++ - the Link editor, used for producing executables and libraries) nm (extracts symbol names from a binary file, so that you can inspect its contents) c++filt (pretty-prints C++ symbol names extracted by nm) make (used for automating the compilation of programs)

gdb (a debugger) emacs (a very powerful editor for programmers) cvs / svn / git (programs for keeping different versions of your source code) More information about these tools can be obtained by consulting their respective manual pages and info pages - here is how you can learn more on how to use these: man man info info If you are using MS Windows, try cygwin.com for a set of Unix tools (better install the full thing, to make sure you did not miss something). A better alternative is to install Linux (e.g., Ubuntu) on a new partition of your hard drive or as a virtual machine. Exposure to Linux (and other operating systems) is paramount if you wish to become a professional programmer. Version: 2.0 Version date: September 2014 For use from: 2014-15 Appendix: see http://www.hesa.ac.uk/content/view/1805/296/ for the full list of JACS codes and descriptions CODES HESA Code Description Price Group 121 IT, Systems Sciences and Computer Software Engineering C JACS Code Description Percentage (%) I320 Concerned with the conversion of designs into computer instruction sets in order to satisfy the requirements of specific operational problems. 100