Career Space Skill Definition

Computer Programming 

Skills Definition

There is hardly a job in the IT industry that isn't either easier to do, or easier to be successful in, with an understanding of programming. For many Software Developers it is of course the core skill and comprises an understanding of the software development process including program design, coding and testing. Programming is a skill that must be used to be of value and practical experience of writing programs in languages such as C, C++, Fortran, ADA or Smalltalk will often be required and it is useful to know both a procedural language as well as Object Orientated Analysis and Design methods. For software development opportunities relating to Internet enabled applications and the development of Web sites HTML, XML, Lingo and Java are popular languages. In addition to the language itself there will be a range of tools designed to speed up the development process such as visual design tools and debuggers and knowledge of these would be useful. For example in Multimedia development these could be Frontpage, Visual tools or Illustrator.
 

Academic Pre-requisites
Usage of a computer and it's operating system with file system.
No pre-requisites in programming.
Basic discrete mathematics (can be studied in parallel)
 

Academic Content
(based on  material taken from ACM's and IEEE's Computing Curricula 2001, volume  II Computer Science)

Introductory level:
  • PR1 Programming Fundamentals: Fundamental programming constructs, algorithms and problem solving, fundamental data structures, recursion
  • PR2 Programming Languages; Overview of programming languages, introduction to formal languages, virtual  machines, interpretation and compilation
  • PR3 Programming in one or more languages; At least one object oriented language (C++, Java) and preferably other languages in other paradigms (imperative - C, ADA, functional - Lisp, Haskell) and new script oriented languages (Java-script, Pearl)
  • PR4 Concurrent programming; communication, synchronization
  • RR5 Programming Tools; using editors, debuggers, notation (UML) tools, documentation
  • PR6 Document description languages and Internet languages; XML, HTML
  • Intermediate level:
  • PR7 Algorithms and complexity; more advanced data structures and algorithms, algorithm analysis, distributed algorithms
  • PR8 Programming in new other languages and paradigms; broadens the perspective of programming , programming paradigms and language design
  • PR9 Object oriented methods and design; notation and tools (UML), design patterns
  • PR10 Software engineering ; requirements, specification, software design, testing and validation, project management
  • PR11 Software project, larger programming task, teamwork, specification, design, testing
  • Advanced level:
  • PR12 Program language design; type systems, models of execution control, memory management, compilers with formal languages, parsing, code optimization
  • PR13 Formal methods, verification, program semantics
  • PR14 Complexity analysis, P and NP, automata theory,

  •  

     

    Output Standard / Minimum Level of Achievement

    xxxxx

    Mapping Academic Content into courses in  D (Computer Science and Engineering)-programme  at Linköpings universitet, Sweden.

    X - covers relatively large part of contents
    x - covers smaller part of contents
     
    Courses D
    PR1
    PR2
    PR3
    PR4
    PR5
    PR6
    PR7
    PR8
    PR9
    PR10
    PR11
    PR12
    PR13
    PR14
    Computer  Programming
    X
    x
    X (Lisp, ADA)
     
    x
       
    x
       
    x
         
    Object Oriented Programming
    X
     
    X (Java)
     x
    x
     
     
    x
    x
     
    x
         
    Algorithms and Optimization
    X
             
    X
                 
    Concurrent Programming and Operating Systems
         
    X
                       
    Formal Languages and Automata Theory
     
     X
                     
     X
       
    Data and Program Structures
     
     X
             
     X

     
       
    x
       
    Compiler Technology
     
    x
         
    X
    Software Engineering Project
                   
     x
     X
     X
         
    Web Programming and Interactivity
    X
    Advanced Web Programming
       
     X
           
     x
     x
             
    Design and Analysis of Algorithms
    X
    Comments on coverage
    Good
    Could be better in intro courses Good Good Could be better Quite good Good Good WIll  be better Good Good Good Week Good