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

Size: px
Start display at page:

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

Transcription

1 The Role of Programming in Informatics Curricula A. J. Cowling Department of Computer Science University of Sheffield Structure of Presentation Introduction The problem, and the key concepts. Dimensions to Programming Programming technology and artefacts; Programming activities: layers of abstraction and description; Dependencies and programming. Teaching Programming Knowledge and skills; Groups of topics; Disciplines within informatics. Summary and Conclusions Concepts of Informatics 1 The Core of Informatics Traditionally, this was the role of programming; Arguably, the core is actually software development; So, what is the role of programming? apart from being one part of software development. Fundamental Concepts Information, and how it is structured; Computation, or how information is processed. Implementing These Concepts Information is processed by systems: which carry out the computations; Systems must be constructed: which involves hardware and software technologies. Concepts of Informatics 2 Studying Technologies A range of aspects, from practical to theoretical: applications of the technologies, the technologies themselves, and the theories that underpin the technologies. Programming is a Key Software Technology So all three aspects of it must be covered. Applications of Programming Technology These can be equated to programming paradigms: imperative, functional, object-oriented, etc; Developing a system involves choosing a paradigm: this forms part of the topic of software architecture. Programming Technology 1 The Structures Mirror Those of Informatics Programming has a products dimension: concerned with programs as artefacts; Programming has a processes dimension: concerned with the activities of programming; Programming has a people dimension: which is related to both products and processes; People have requirements for software systems: what they must do, and how well they should do it; People perform the activities of programming: studied as the psychology of programming. Programming Technology 2 Linking Computation and Information Programming is not just about computation: even if most code describes control structures; Programming is also about information: data structures are equally important, they define the information to be processed. Algebraic Theories of Abstract Data Types Data structures are defined by the elementary operations; These are also the primitives used in the control structures. Maintaining the Link is Essential To link control structures with data structures; and To link computation with information. 1

2 Programs as Artefacts 1 Layers of Abstraction of Artefacts Layer Units Open applications Systems of systems Closed applications Systems Programs as Artefacts 2 Elementary Programs A key layer for introductory courses; Covers basic structuring mechanisms (control and data); Focuses on the ability to develop program fragments: which may typically be simple programs; Emphasises the forms of these fragments, rather than their utility. Components Program modules Elementary programs System libraries Assembly language Microcode APIs Classes, objects Program fragments System functions Routines Instructions Program Modules Focuses on packaging fragments to provide useful but limited functions; Covers different structuring mechanisms; Is also a key layer for introductory courses; The issue of which of these layers should come first will be ignored. Programs as Artefacts 3 Components Abstractions that provide useful functionality; This is described in terms of APIs. Closed Applications Systems that just have limited interfaces for other systems; Only designed to interact with a few other systems. Open Applications Systems where the interfaces for others are key features; Provide defined interfaces that are open to any other systems; Allow systems of systems to be constructed. Programs as Artefacts 4 System Libraries The key layer below program fragments; Focus on making hardware facilities easier to use. Assembly Language Reflects the underlying hardware structure; Usually viewed in terms of program fragments: correspond to standard control and data structures, focus on making efficient use of the hardware. Microcode Highly specialised form of programming; Implements hardware instructions in terms of register transfers. The Activities of Programming 1 Layers of Specialisation of Concepts Orthogonal to the artefact structures; Progress from general theories to specific structures. Layer Programs Languages Paradigms Models Foundation Computational Concepts Features of the selected language Defined by the selected paradigm Selected model features Functions, recursions, state transitions, etc Storage and transformation of information The Activities of Programming 2 Foundation Layer Information systems as a branch of general systems theory; Systems that process information by carrying out computation: where at least some of this processing is automated; Hence, systems that capture, store and transform information. Fundamental Models Mathematical models of information system structures: algebras to model components of information, functions and relations to model data structuring, functions to model primitive computations; Different approaches to constructing models, eg: single or multiple assignments to variables, recursive functions or iterative state machines. 2

3 The Activities of Programming 3 Programming Paradigms Standard combinations of modelling choices: which have evolved to achieve internal consistency; The features of each paradigm affect the activities: how to think about creating programs, how to trace the behaviour of programs. Languages Concrete expressions of the choices in a paradigm; Determine how programmers can express computations: what constructions are available, what syntax must be used for them; Determine how computations behave: as constrained by the language semantics. The Activities of Programming 4 Programs Specific artefacts created in a particular language; They could be at any of the levels of abstraction of the artefacts: from microcode to open applications; They will depend on all of the lower levels of artefact: but the aim is to hide these dependencies as far as possible. Layers and Descriptions Here, the lower layers define what computations are; The upper layers are concerned with how computations are described: by defining and using syntax and semantics, which applies to all of the layers of artefacts, but is done differently for programs and for systems. Describing Structures 1 Layers of Description of Structures Similar to layers of specialisation of concepts; But, with the most specific as the base layer. Layer Meta-grammar Grammar Artifact Execution Programs Meta-language Programming language Program Values of variables Systems Meta-metamodel Modeling language System model States of objects Describing Structures 2 Describing the Execution of Artefacts Here, artefacts are specific programs or systems of objects; Describing execution involves specifying changes: for programs, to the values of variables, for systems, to the states of objects, or to associations between objects. Artefacts Describe Execution Paths Programs describe how they will be executed; System models (eg in UML) describe: system structures (in terms of diagrams), and how they should behave (eg OCL annotations). Describing Structures 3 Grammars and Languages The syntax of a programming language is defined by its grammar; The meanings of constructions should also be defined: by denotational semantics, by operational semantics, or using less formal structures; System modelling languages also have grammars: largely graphical, define the symbols that may be used, and how they may be arranged; These assume a core of standard constructions: eg classes, objects, attributes, associations, inheritance, aggregation, etc. Describing Structures 4 Defining Grammars Requires appropriate meta-languages; These need to be able to describe themselves; For programming languages, we use forms of extended BNF; For system modelling languages, the equivalent is the MetaObject Facility (MOF). Aligning Specialisation and Description Meta-grammars and paradigms relate to classes of languages; Grammars describe languages; Artefacts are instances of the programs or systems; Execution describes how programs or systems behave. 3

4 Dependencies and Programming 1 The Role of Dependencies An 8 x 5 topic space has been defined; Dependencies can help to cluster these topics. Information and Computation All of informatics depends on these concepts; This applies particularly within the layers of specialisation: models, paradigms, languages & programs; Topics outside this space also depend on these concepts. Dependencies and Programming 2 Applications of Information Systems Properties of different classes of information systems affect: how these systems are used in business, and the natures and structures of the business organisations, eg centralised data warehouses versus distributed databases; These properties identify application domains; These properties may involve large-scale models for information structures: eg relational databases versus semi-structured ones; They are effectively independent of programming technology. Dependencies and Programming 3 Applications of Programming Technology Includes many knowledge areas within informatics: including computer networking, parallel and distributed systems, database systems, operating systems, computer graphics, computer vision, natural language processing, robotics, other sub-fields of artificial intelligence, etc; These will require study of example programs or fragments: which may cover all of the layers of specialisation, and several adjacent layers of artefacts, but which layers will depend on the topic. Dependencies and Programming 4 Programming and Software Development Programming is an important activity in software development: often called the construction phase; In principle, other activities could therefore depend on it; In practice, only the ones immediately before and after it do; Software design involves choices that depend on it, for: the structures of program modules, components and applications, and which programming languages will be the most suitable; Installing developed systems may also depend on how their code is structured and organised. Dependencies and Programming 5 Computational Thinking Focuses on applying computational concepts to other areas: not necessarily within informatics, but informatics applications are important; Combines mathematical and engineering ways of viewing problems; Is based on fundamental principles: of systems engineering, and of applying mathematical models; Emphasises spanning multiple layers of abstractions; Is applicable to all the layers of artefact abstractions: as in the recurring concepts of Curriculum 91; Depends on the foundation and models layers of specialisation: not on paradigms or languages. Knowledge and Skills 1 The Significance of Dependencies Topics in the 8 x 5 space define both knowledge and skills; If one topic depends on another, then Either of these for it may depend on either of them for the other. Knowledge Depending on Knowledge Applies to dependencies on the foundation or knowledge layers: undergraduates use models of computation, they are not expected to create new ones. Skills Depending on Knowledge Creating programs in a language depends on knowledge of its paradigm; And transitively on knowledge of the underlying models. 4

5 Knowledge and Skills 2 Skills Depending on Skills Creating program modules depends on the skill of creating program fragments; And transitively on the skill of using library components. Knowledge Depending on Skills Commonly seems to arise as part of building up experience: eg, knowledge about managing versions of software requires some experience of actually creating it; But the actual dependency is on the underlying knowledge: eg of the properties of software components, and how these change during development; Hence, virtually no dependencies come in this class. Knowledge and Skills 3 Grouping the Topics Apply these classes to the previous kinds of dependencies; Will start to indicate clusters of topics. Dependence on Information and Computation Applies to programming paradigms, languages and programs; They depend on the concepts of information, computation and models; Includes skills depending on knowledge: eg creating and tracing programs will depend on concepts and models of information and computation; And knowledge depending on knowledge: eg knowledge of programming paradigms will also depend on these. Knowledge and Skills 4 Applications of Programming Technology And also dependencies for applications of systems; Are on the details of the technology; Include skills depending on knowledge: eg as in studying sample programs or fragments; And include knowledge depending on knowledge: eg knowledge of the properties of the different kinds of systems; And include skills depending on skills: eg when analysing application systems; And might appear to include knowledge depending on skills: but, studying sample programs is part of the learning process, not a learning outcome, so these are not real dependencies of the topics. Knowledge and Skills 5 Software Development and Programming Software development focuses on achieving skills; These may depend on programming concepts; eg on knowledge of particular language structures; Or on programming skills: eg in software design; And knowledge of software development concepts may depend on programming concepts. Computational Thinking Is a skill that depends on the knowledge of these concepts. Partitioning the Topics 1 Partition the Dimension of Specialisation A partition for the foundation and models layers: is concerned just with knowledge, topics outside this space also depend on it; A partition for programming paradigms: again, concerned just with knowledge; A partition for languages and programs: concerned primarily with skills, depends on the other two partitions. Partitioning the Topics 2 Partition the Dimension of Artefact Abstractions Does not affect the fundamental concepts; Partly applies to the paradigms; Applies completely to the languages and programs. Combining Layers of Artefact Abstractions Hardware structures each apply to one layer: register and bus structures to the microcode layer, addressable registers to the assembly language layer; Language and program structures may apply to several layers: system libraries to component implementations; And similarly architectural structures: component structures to applications. 5

6 Partitioning the Topics 3 The Structure of Partitions A r t e f a c t s Fundamentals Paradigms Languages & programs Architecture Programming Assembly Language Microprogramming Disciplines Within Informatics 1 The Partition for Fundamentals Contains material that is core to Computer Science; This is spread across several knowledge areas in CS2001: Discrete Structures, Programming Languages, Programming Fundamentals; But, there is not much emphasis on the mathematical models; These topics should not really be classed as programming: they underpin it, but they also underpin everything else as well. Specialization Disciplines Within Informatics 2 The Partition for Microprogramming A highly specialised form of programming; Core material for Computer Engineering; Part of an equally specialised form of software development; Hence the main focus is on skills, rather than knowledge. The Partition for Assembly Language Also core material for Computer Engineering; Again, the focus there is on skills; It also underpins some Computer Science: eg operating systems, compilers, etc; Here, the focus may be more on knowledge: of why particular structures are needed. Disciplines Within Informatics 3 The Partition for Architecture Concerned with high-level system structures; Core material for Software Engineering and Information Systems; Highly relevant to Information Technology; Concerned with a form of programming: at one time called programming in the large, now called software architecture ; Concerned with quality as well as functions; Closely linked with other activities within software development. The Partition for Programming Important in all of the disciplines: knowledge of it underpins other areas of informatics; For all disciplines, the focus is on skills: the applications of these vary across the disciplines; These skills are part of the wider set of software development skills. Summary Foundational Topics The nature of information and computation; Mathematical models of them; Underpin the whole of informatics; Underpin computational thinking; Not just part of programming. Aspects of Programming Apply at different levels of artefact abstractions; Different levels are core to different disciplines; Each level has paradigms, languages and programs/systems. Conclusions Role of Programming At all the levels of artefacts: knowledge of the concepts is important, but the focus is on developing skills; These are part of the wider set of software development skills. Dependencies in Curriculum Models Dependencies between topics are well understood: and are mainly on knowledge of concepts; Dependencies within the educational process: may include dependencies on skills, still need further analysis. 6

7 The End Thanks for your attention!! Any Questions? 7

Datavetenskapligt Program (kandidat) Computer Science Programme (master)

Datavetenskapligt Program (kandidat) Computer Science Programme (master) Datavetenskapligt Program (kandidat) Computer Science Programme (master) Wolfgang Ahrendt Director Datavetenskap (BSc), Computer Science (MSc) D&IT Göteborg University, 30/01/2009 Part I D&IT: Computer

More information

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science Program Schedule CTech Computer Science Credits CS101 Computer Science I 3 MATH100 Foundations of Mathematics and

More information

Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1)

Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1) Stages in Teaching Formal Methods A. J. Cowling Structure of Presentation Introduction to Issues Motivation for this work. Analysis of the Role of Formal Methods Define their scope; Review their treatment

More information

Page 1 of 5. (Modules, Subjects) SENG DSYS PSYS KMS ADB INS IAT

Page 1 of 5. (Modules, Subjects) SENG DSYS PSYS KMS ADB INS IAT Page 1 of 5 A. Advanced Mathematics for CS A1. Line and surface integrals 2 2 A2. Scalar and vector potentials 2 2 A3. Orthogonal curvilinear coordinates 2 2 A4. Partial differential equations 2 2 4 A5.

More information

Bachelor of Bachelor of Computer Science

Bachelor of Bachelor of Computer Science Bachelor of Bachelor of Computer Science Detailed Course Requirements The 2016 Monash University Handbook will be available from October 2015. This document contains interim 2016 course requirements information.

More information

James B. Fenwick, Jr., Program Director and Associate Professor Ph.D., The University of Delaware FenwickJB@appstate.edu

James B. Fenwick, Jr., Program Director and Associate Professor Ph.D., The University of Delaware FenwickJB@appstate.edu 118 Master of Science in Computer Science Department of Computer Science College of Arts and Sciences James T. Wilkes, Chair and Professor Ph.D., Duke University WilkesJT@appstate.edu http://www.cs.appstate.edu/

More information

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming

More information

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008 Professional Organization Checklist for the Computer Science Curriculum Updates Association of Computing Machinery Computing Curricula 2008 The curriculum guidelines can be found in Appendix C of the report

More information

COURSE TITLE COURSE DESCRIPTION

COURSE TITLE COURSE DESCRIPTION COURSE TITLE COURSE DESCRIPTION CS-00X COMPUTING EXIT INTERVIEW All graduating students are required to meet with their department chairperson/program director to finalize requirements for degree completion.

More information

UNDERGRADUATE DEGREE PROGRAMME IN COMPUTER SCIENCE ENGINEERING SCHOOL OF COMPUTER SCIENCE ENGINEERING, ALBACETE

UNDERGRADUATE DEGREE PROGRAMME IN COMPUTER SCIENCE ENGINEERING SCHOOL OF COMPUTER SCIENCE ENGINEERING, ALBACETE UNDERGRADUATE DEGREE PROGRAMME IN COMPUTER SCIENCE ENGINEERING SCHOOL OF COMPUTER SCIENCE ENGINEERING, ALBACETE SCHOOL OF COMPUTER SCIENCE, CIUDAD REAL Core Subjects (CS) Compulsory Subjects (CPS) Optional

More information

What is a programming language?

What is a programming language? Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? Artificial language" Computers" Programs" Syntax" Semantics" What is a programming language?...there

More information

School of Computer Science

School of Computer Science School of Computer Science Head of School Professor S Linton Taught Programmes M.Sc. Advanced Computer Science Artificial Intelligence Computing and Information Technology Information Technology Human

More information

Reasons for need for Computer Engineering program From Computer Engineering Program proposal

Reasons for need for Computer Engineering program From Computer Engineering Program proposal Reasons for need for Computer Engineering program From Computer Engineering Program proposal Department of Computer Science School of Electrical Engineering & Computer Science circa 1988 Dedicated to David

More information

Bachelor Degree in Informatics Engineering Master courses

Bachelor Degree in Informatics Engineering Master courses Bachelor Degree in Informatics Engineering Master courses Donostia School of Informatics The University of the Basque Country, UPV/EHU For more information: Universidad del País Vasco / Euskal Herriko

More information

Software Engineering Transfer Degree

Software Engineering Transfer Degree www.capspace.org (01/17/2015) Software Engineering Transfer Degree This program of study is designed for associate-degree students intending to transfer into baccalaureate programs awarding software engineering

More information

The Role of Modelling in Teaching Formal Methods for Software Engineering

The Role of Modelling in Teaching Formal Methods for Software Engineering The Role of Modelling in Teaching Formal Methods for Software Engineering A. J. Cowling Department of Computer Science University of Sheffield Sheffield, England A.Cowling@dcs.shef.ac.uk Abstract. This

More information

Instructional Design Framework CSE: Unit 1 Lesson 1

Instructional Design Framework CSE: Unit 1 Lesson 1 Instructional Design Framework Stage 1 Stage 2 Stage 3 If the desired end result is for learners to then you need evidence of the learners ability to then the learning events need to. Stage 1 Desired Results

More information

Fundamental Computer Science Concepts Sequence TCSU CSCI SEQ A

Fundamental Computer Science Concepts Sequence TCSU CSCI SEQ A Fundamental Computer Science Concepts Sequence TCSU CSCI SEQ A A. Description Introduction to the discipline of computer science; covers the material traditionally found in courses that introduce problem

More information

POSTGRADUATE PROGRAMME SPECIFICATION

POSTGRADUATE PROGRAMME SPECIFICATION POSTGRADUATE PROGRAMME SPECIFICATION Programme Title: Awarding Body: Teaching Institution: Masters Computing Degrees Scheme Staffordshire University Faculty of Computing, Engineering and Sciences at Staffordshire

More information

School of Computer Science

School of Computer Science School of Computer Science Computer Science - Honours Level - 2014/15 October 2014 General degree students wishing to enter 3000- level modules and non- graduating students wishing to enter 3000- level

More information

Division of Mathematical Sciences

Division of Mathematical Sciences Division of Mathematical Sciences Chair: Mohammad Ladan, Ph.D. The Division of Mathematical Sciences at Haigazian University includes Computer Science and Mathematics. The Bachelor of Science (B.S.) degree

More information

Poznan University of Technology Faculty of Electrical Engineering

Poznan University of Technology Faculty of Electrical Engineering Poznan University of Technology Faculty of Electrical Engineering Contact Person: Pawel Kolwicz Vice-Dean Faculty of Electrical Engineering pawel.kolwicz@put.poznan.pl List of Modules Academic Year: 2015/16

More information

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

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent

More information

Master of Science in Computer Science

Master of Science in Computer Science Master of Science in Computer Science Background/Rationale The MSCS program aims to provide both breadth and depth of knowledge in the concepts and techniques related to the theory, design, implementation,

More information

PRACTICE BOOK COMPUTER SCIENCE TEST. Graduate Record Examinations. This practice book contains. Become familiar with. Visit GRE Online at www.gre.

PRACTICE BOOK COMPUTER SCIENCE TEST. Graduate Record Examinations. This practice book contains. Become familiar with. Visit GRE Online at www.gre. This book is provided FREE with test registration by the Graduate Record Examinations Board. Graduate Record Examinations This practice book contains one actual full-length GRE Computer Science Test test-taking

More information

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

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs

More information

Computer Science/Software Engineering

Computer Science/Software Engineering 292 School of Science and Engineering Computer Science/Software Engineering Everald E. Mills, PhD, Chair Objectives The computer science program seeks to prepare students for careers that require sophisticated

More information

Draft dpt for MEng Electronics and Computer Science

Draft dpt for MEng Electronics and Computer Science Draft dpt for MEng Electronics and Computer Science Year 1 INFR08012 Informatics 1 - Computation and Logic INFR08013 Informatics 1 - Functional Programming INFR08014 Informatics 1 - Object- Oriented Programming

More information

Diploma Of Computing

Diploma Of Computing Diploma Of Computing Course Outline Campus Intake CRICOS Course Duration Teaching Methods Assessment Course Structure Units Melbourne Burwood Campus / Jakarta Campus, Indonesia March, June, October 022638B

More information

MEng, BSc Computer Science with Artificial Intelligence

MEng, BSc Computer Science with Artificial Intelligence School of Computing FACULTY OF ENGINEERING MEng, BSc Computer Science with Artificial Intelligence Year 1 COMP1212 Computer Processor Effective programming depends on understanding not only how to give

More information

Computer Science Curriculum Revision

Computer Science Curriculum Revision Computer Science Curriculum Revision Background Undergraduate programs in computing-related disciplines began to emerge in the 1960s. At that time there were only three kinds of computing-related programs:

More information

LONG BEACH CITY COLLEGE MEMORANDUM

LONG BEACH CITY COLLEGE MEMORANDUM LONG BEACH CITY COLLEGE MEMORANDUM DATE: May 5, 2000 TO: Academic Senate Equivalency Committee FROM: John Hugunin Department Head for CBIS SUBJECT: Equivalency statement for Computer Science Instructor

More information

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) VERSION 2.1 SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS 1 TABLE OF CONTENTS INTRODUCTION... 3 About The Service-Oriented Modeling Framework

More information

MEng, BSc Applied Computer Science

MEng, BSc Applied Computer Science School of Computing FACULTY OF ENGINEERING MEng, BSc Applied Computer Science Year 1 COMP1212 Computer Processor Effective programming depends on understanding not only how to give a machine instructions

More information

Course Descriptions - Computer Science and Software Engineering

Course Descriptions - Computer Science and Software Engineering One of the nation's top undergraduate engineering, science, and mathematics colleges Course Descriptions - Computer Science and Software Engineering Professors Anderson, Boutell, Chenoweth, Chidanandan,

More information

CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014)

CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014) CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014) CSTA Website Oracle Website Oracle Contact http://csta.acm.org/curriculum/sub/k12standards.html https://academy.oracle.com/oa-web-introcs-curriculum.html

More information

Doctor of Philosophy in Computer Science

Doctor of Philosophy in Computer Science Doctor of Philosophy in Computer Science Background/Rationale The program aims to develop computer scientists who are armed with methods, tools and techniques from both theoretical and systems aspects

More information

Master Degree Program in Computer Science (CS)

Master Degree Program in Computer Science (CS) Master Degree Program in Computer Science (CS) Students holding Bachelor s degree in Computer Science are accepted as graduate students, after meeting the general requirements stated below. Applicants

More information

DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING

DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING Fall 2000 The instructions contained in this packet are to be used as a guide in preparing the Departmental Computer Science Degree Plan Form for the Bachelor's

More information

Architectural Design

Architectural Design Software Engineering Architectural Design 1 Software architecture The design process for identifying the sub-systems making up a system and the framework for sub-system control and communication is architectural

More information

01219211 Software Development Training Camp 1 (0-3) Prerequisite : 01204214 Program development skill enhancement camp, at least 48 person-hours.

01219211 Software Development Training Camp 1 (0-3) Prerequisite : 01204214 Program development skill enhancement camp, at least 48 person-hours. (International Program) 01219141 Object-Oriented Modeling and Programming 3 (3-0) Object concepts, object-oriented design and analysis, object-oriented analysis relating to developing conceptual models

More information

Computer Science. Master of Science

Computer Science. Master of Science Computer Science Master of Science The Master of Science in Computer Science program at UALR reflects current trends in the computer science discipline and provides students with a solid theoretical and

More information

Advisor Counsel. Computer basics and Programming. Introduction to Engineering Design. C Programming Project. Digital Engineering

Advisor Counsel. Computer basics and Programming. Introduction to Engineering Design. C Programming Project. Digital Engineering Course Description ( 전체개설교과목개요 ) Advisor Counsel Yr. : Sem. : Course Code: CD0001 Advisor in the department which programs engineering education guides certificate program educational objectives, learning

More information

Master of Science in Software Engineering

Master of Science in Software Engineering Master of Science in Software Engineering The MSc in Software Engineering provides a thorough grounding in how to apply rigorous engineering principles to deliver elegant, effective software solutions

More information

Schoo\ of Computing. Middlesbrough. Teesside University. 22 June 2015. To whom it may concern

Schoo\ of Computing. Middlesbrough. Teesside University. 22 June 2015. To whom it may concern Dr Simon Stobart Dean School of Compuling Teesside University Middlesbrough Tees Val\ey TS l 3BA Ul< T: 44 (0) 1642 342631 F: 44 (0) 1642 230527 tees.ac.uk Teesside University 22 June 2015 To whom it may

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information

Study Program Handbook Computer Science

Study Program Handbook Computer Science Study Program Handbook Computer Science Bachelor of Science Jacobs University Undergraduate Handbook CS - Matriculation Fall 2015 Page: ii Contents 1 The Computer Science (CS) Study Program 1 1.1 Concept......................................

More information

Professional Organization Checklist for the Computer Information Systems Curriculum

Professional Organization Checklist for the Computer Information Systems Curriculum Professional Organization Checklist f the Computer Infmation Systems Curriculum Association of Computing Machinery and Association of Infmation Systems IS 2002 Model Curriculum and Guidelines f Undergraduate

More information

PROGRAMME SPECIFICATION POSTGRADUATE PROGRAMME

PROGRAMME SPECIFICATION POSTGRADUATE PROGRAMME PROGRAMME SPECIFICATION POSTGRADUATE PROGRAMME KEY FACTS Programme name Advanced Computer Science Award MSc School Mathematics, Computer Science and Engineering Department or equivalent Department of Computing

More information

Fall 2012 Q530. Programming for Cognitive Science

Fall 2012 Q530. Programming for Cognitive Science Fall 2012 Q530 Programming for Cognitive Science Aimed at little or no programming experience. Improve your confidence and skills at: Writing code. Reading code. Understand the abilities and limitations

More information

model-driven development

model-driven development focus model-driven development What Models Mean Ed Seidewitz, InteliData Technologies If today s software developers use models at all, they use them mostly as simple sketches of design ideas, often discarding

More information

Challenges and Opportunities for formal specifications in Service Oriented Architectures

Challenges and Opportunities for formal specifications in Service Oriented Architectures ACSD ATPN Xi an China June 2008 Challenges and Opportunities for formal specifications in Service Oriented Architectures Gustavo Alonso Systems Group Department of Computer Science Swiss Federal Institute

More information

Texas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N130.0993. Video Game Design

Texas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N130.0993. Video Game Design Texas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N130.0993. Video Game Design STANDARD CORRELATING PAGES Standard (1) The student demonstrates knowledge and appropriate

More information

Undergraduate Major in Computer Science and Engineering

Undergraduate Major in Computer Science and Engineering University of California, Irvine 2015-2016 1 Undergraduate Major in Computer Science and Engineering On This Page: Overview Admissions Requirements for the B.S. in Computer Science and Engineering Sample

More information

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c 2004 2011

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c 2004 2011 Sequence Diagrams Massimo Felici What are Sequence Diagrams? Sequence Diagrams are interaction diagrams that detail how operations are carried out Interaction diagrams model important runtime interactions

More information

Core Curriculum to the Course:

Core Curriculum to the Course: Core Curriculum to the Course: Environmental Science Law Economy for Engineering Accounting for Engineering Production System Planning and Analysis Electric Circuits Logic Circuits Methods for Electric

More information

Course Descriptions - Computer Science and Software Engineering

Course Descriptions - Computer Science and Software Engineering 2005-2006 Undergraduate Bulletin Course Descriptions - Computer Science and Software Engineering Professors Anderson, Ardis, Bagert, Boutell, Chenoweth, Chidanandan, Clifton, Kaczmarczyk, Laxer, Mellor,

More information

SL-110: Fundamentals of Java Revision 15 October Sun Educational Services Instructor-Led Course Description

SL-110: Fundamentals of Java Revision 15 October Sun Educational Services Instructor-Led Course Description Sun Educational Services Instructor-Led Course Description Fundamentals of Java SL-110 The Fundamentals of the Java course provides students, with little or no programming experience, with the basics of

More information

MDD approach for the C programming language

MDD approach for the C programming language MDD approach for the C programming language Saravnan.Natarajan, Project Leader, iwave Systems Abstract Model Driven Development (MDD) addresses the challenges faced by the Embedded system software developers.

More information

College of Science, Engineering and Technology. School of Computing. college of science, engineering and technology. Learn without limits.

College of Science, Engineering and Technology. School of Computing. college of science, engineering and technology. Learn without limits. College of Science, Engineering and Technology School of Computing Learn without limits. college of science, engineering and technology WELCOME TO THE SCHOOL OF COMPUTING The vision of the school is to

More information

McGraw-Hill The McGraw-Hill Companies, Inc., 20 1. 01 0

McGraw-Hill The McGraw-Hill Companies, Inc., 20 1. 01 0 1.1 McGraw-Hill The McGraw-Hill Companies, Inc., 2000 Objectives: To describe the evolution of programming languages from machine language to high-level languages. To understand how a program in a high-level

More information

Bachelor of Information Technology

Bachelor of Information Technology Bachelor of Information Technology Detailed Course Requirements The 2016 Monash University Handbook will be available from October 2015. This document contains interim 2016 course requirements information.

More information

A Multi-layered Domain-specific Language for Stencil Computations

A Multi-layered Domain-specific Language for Stencil Computations A Multi-layered Domain-specific Language for Stencil Computations Christian Schmitt, Frank Hannig, Jürgen Teich Hardware/Software Co-Design, University of Erlangen-Nuremberg Workshop ExaStencils 2014,

More information

REGULATIONS FOR THE DEGREE OF BACHELOR OF SCIENCE IN BIOINFORMATICS (BSc[BioInf])

REGULATIONS FOR THE DEGREE OF BACHELOR OF SCIENCE IN BIOINFORMATICS (BSc[BioInf]) 820 REGULATIONS FOR THE DEGREE OF BACHELOR OF SCIENCE IN BIOINFORMATICS (BSc[BioInf]) (See also General Regulations) BMS1 Admission to the Degree To be eligible for admission to the degree of Bachelor

More information

Guide to the MSCS Program Sheet

Guide to the MSCS Program Sheet Guide to the MSCS Program Sheet Eric Roberts September 2004 Welcome to the Stanford Computer Science Department! This guide is designed to help you understand the requirements for the Master of Science

More information

Chap 1. Introduction to Software Architecture

Chap 1. Introduction to Software Architecture Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)

More information

School of Computing and Technology

School of Computing and Technology School of Computing and Technology We offer employmentfocused education and research in computing, the built environment and engineering, giving our students industry-relevant skills and knowledge. Applied

More information

LEARNING STATEMENT... 1 RATIONALE... 2 COURSE SIZE AND COMPLEXITY... 3 LEARNING OUTCOMES... 3 COURSE DESCRIPTION... 3 COURSE CONTENT...

LEARNING STATEMENT... 1 RATIONALE... 2 COURSE SIZE AND COMPLEXITY... 3 LEARNING OUTCOMES... 3 COURSE DESCRIPTION... 3 COURSE CONTENT... T A S M A N I A N Q U A L I F I C A T I O N S A U T H O R I T Y ITC315113 - TQA Level 3, 15 size value. THE COURSE DOCUMENT This document contains the following sections: LEARNING STATEMENT... 1 RATIONALE...

More information

M.S. Computer Science Program

M.S. Computer Science Program M.S. Computer Science Program Pre-requisite Courses The following courses may be challenged by sitting for the placement examination. CSC 500: Discrete Structures (3 credits) Mathematics needed for Computer

More information

Information and Communications Technology Courses at a Glance

Information and Communications Technology Courses at a Glance Information and Communications Technology Courses at a Glance Level 1 Courses ICT121 Introduction to Computer Systems Architecture This is an introductory course on the architecture of modern computer

More information

Lecture 1: Introduction

Lecture 1: Introduction Programming Languages Lecture 1: Introduction Benjamin J. Keller Department of Computer Science, Virginia Tech Programming Languages Lecture 1 Introduction 2 Lecture Outline Preview History of Programming

More information

Computer Science Information Sheet for entry in 2016. What is Computer Science?

Computer Science Information Sheet for entry in 2016. What is Computer Science? Computer Science Information Sheet for entry in 2016 What is Computer Science? Computer Science is about understanding computer systems and networks at a deep level. Computers and the programs they run

More information

PROGRAMMES OFFERED BY DEPARTMENT OF COMPUTER SCIENCE SYSTEMS (Note: This document is for polytechnic students admitted in AY2004-5)

PROGRAMMES OFFERED BY DEPARTMENT OF COMPUTER SCIENCE SYSTEMS (Note: This document is for polytechnic students admitted in AY2004-5) SCHOOL OF COMPUTING PROGRAMMES OFFERED BY DEPARTMENT OF COMPUTER SCIENCE SYSTEMS (Note: This document is for polytechnic students admitted in AY2004-5) Bachelor of Computing in Communications and Media

More information

Engineering Process Software Qualities Software Architectural Design

Engineering Process Software Qualities Software Architectural Design Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical

More information

Programming Languages

Programming Languages Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:

More information

Program Introduction Course Curriculum Individual Course Descriptions Core Courses... 7

Program Introduction Course Curriculum Individual Course Descriptions Core Courses... 7 Contents Program Introduction... 3 Course Curriculum... 4 Individual Course s... 7 Core Courses... 7 BCS Specialization Courses Database Development... 14 BCS Specialization Courses Software Engineering...

More information

HPC Wales Skills Academy Course Catalogue 2015

HPC Wales Skills Academy Course Catalogue 2015 HPC Wales Skills Academy Course Catalogue 2015 Overview The HPC Wales Skills Academy provides a variety of courses and workshops aimed at building skills in High Performance Computing (HPC). Our courses

More information

Object-Oriented Software Specification in Programming Language Design and Implementation

Object-Oriented Software Specification in Programming Language Design and Implementation Object-Oriented Software Specification in Programming Language Design and Implementation Barrett R. Bryant and Viswanathan Vaidyanathan Department of Computer and Information Sciences University of Alabama

More information

UNDERGRADUATE DEGREE PROGRAMME IN INDUSTRIAL ELECTRONICS AND AUTOMATION ENGINEERING SCHOOL OF INDUSTRIAL ENGINEERING. ALBACETE

UNDERGRADUATE DEGREE PROGRAMME IN INDUSTRIAL ELECTRONICS AND AUTOMATION ENGINEERING SCHOOL OF INDUSTRIAL ENGINEERING. ALBACETE UNDERGRADUATE DEGREE PROGRAMME IN INDUSTRIAL ELECTRONICS AND AUTOMATION ENGINEERING SCHOOL OF INDUSTRIAL ENGINEERING. ALBACETE HIGHER TECHNICAL SCHOOL OF INDUSTRIAL ENGINEERING. CIUDAD REAL SCHOOL OF TECHNICAL

More information

The value of modeling

The value of modeling The value of modeling Level: Introductory Gary Cernosek, Marketing Manager, IBM Rational Eric Naiburg, Group Market Manager Desktop Products, IBM Rational 15 Nov 2004 from The Rational Edge: This article

More information

Statistical Analysis on Curriculum of the National Model School of Software Engineering

Statistical Analysis on Curriculum of the National Model School of Software Engineering I.J. Education and Management Engineering 2012, 8, 6-12 Published Online August 2012 in MECS (http://www.mecs-press.net) DOI: 10.5815/ijeme.2012.08.02 Available online at http://www.mecs-press.net/ijeme

More information

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

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as

More information

Computer Science Introduction

Computer Science Introduction Computer Science Introduction Computer science (CS) is the scientific and practical approach to computation and its applications. CS is a fast-moving field that brings together many disciplines, including

More information

Degrees Major in Computer Science Minor in Computer Science Major in Software Engineering

Degrees Major in Computer Science Minor in Computer Science Major in Software Engineering LT400, Independent Study: Directed reading registering. (U)(1). LT401, Independent Study: Directed reading registering. (U)(2). LT402, Independent Study: Directed reading registering. (U)(3). LT499, Honors

More information

Curriculum Reform. Department of Computer Sciences University of Texas at Austin 7/10/08 UTCS

Curriculum Reform. Department of Computer Sciences University of Texas at Austin 7/10/08 UTCS Curriculum Reform Department of Computer Sciences University of Texas at Austin 7/10/08 1 CS Degrees BA with a major in CS BS, Option I: Computer Sciences BS, Option II: Turing Scholars Honors BS, Option

More information

Value equivalent. ECTS equivalent. Value 120 60 N/A

Value equivalent. ECTS equivalent. Value 120 60 N/A PROGRAMME APPROVAL FORM SECTION 1 THE PROGRAMME SPECIFICATION 1. Programme title and designation Computer Science Single honours Joint Major/minor 2. Final award Award Title Credit ECTS Any special criteria

More information

Computer/Information Science Course Descriptions

Computer/Information Science Course Descriptions Computer/Information Science Course Descriptions COMS 1003: Introduction to Computer Based Systems Provides students with both computer concepts and hands-on applications. Although little or no prior computer

More information

Program translation.

Program translation. Program translation. ffl On the very earliest computers programs were written and entered in binary form. ffl Some computers required the program to be entered one binary word at a time, using swithes

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented

More information

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Design with Reuse Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Objectives To explain the benefits of software reuse and some reuse

More information

CSE4213 Lecture Notes

CSE4213 Lecture Notes CSE4213 Lecture Notes Introduction to B Tools Computer Science and Software Engineering Monash University 20070226 / Lecture 1 ajh 1/15 1 Outline 2 3 4 5 ajh 2/15 In this course we will be introducing

More information

Masters in Information Technology

Masters in Information Technology Computer - Information Technology MSc & MPhil - 2015/6 - July 2015 Masters in Information Technology Programme Requirements Taught Element, and PG Diploma in Information Technology: 120 credits: IS5101

More information

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm

More information

Muslah Systems Agile Development Process

Muslah Systems Agile Development Process Muslah Systems, Inc. Agile Development Process 1 Muslah Systems Agile Development Process Iterative Development Cycles Doug Lahti December 7, 2009 October 5, 2010 In consideration of controllable systems

More information

MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES FIELD 050: COMPUTER SCIENCE

MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES FIELD 050: COMPUTER SCIENCE MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES Subarea Educational Computing and Technology Literacy Computer Systems, Data, and Algorithms Program Design and Verification Programming Language

More information

Component visualization methods for large legacy software in C/C++

Component visualization methods for large legacy software in C/C++ Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University mcserep@caesar.elte.hu

More information

Structure of Postgraduate Programs (2005)

Structure of Postgraduate Programs (2005) Computing and Information Technology Structure of Postgraduate Programs (2005) Entry Point 1: Program 7342 Graduate Certificate in Computing (NEW) GradCert 24 units of credit 24uc (4 courses) over 1 or

More information

4. Multiagent Sys stems Design. Part 2: The PROMETHEUS methodology.

4. Multiagent Sys stems Design. Part 2: The PROMETHEUS methodology. 4. Multiagent Systems Design Part 2: Multiagent Syste ems (SMA-UPC) https://kemlg.upc.edu The PROMETHEUS methodology. Javier Vázquez-Salceda SMA-UPC Methodological Extensions to Object-Oriented Approaches

More information

Embedded Software Development with MPS

Embedded Software Development with MPS Embedded Software Development with MPS Markus Voelter independent/itemis The Limitations of C and Modeling Tools Embedded software is usually implemented in C. The language is relatively close to the hardware,

More information

Budapest University of Technology and Economics Department of Measurement and Information Systems. Business Process Modeling

Budapest University of Technology and Economics Department of Measurement and Information Systems. Business Process Modeling Budapest University of Technology and Economics Department of Measurement and Information Systems Business Process Modeling Process, business process Workflow: sequence of given steps executed in order

More information