CTSPlanner
Sign-in not configured
Computing Science

CSE3140 Second Language Programming 2

Advanced · 1 credit · BIT - Business, Admin, Finance and IT

Description
Designed for students who have mastered procedural programming and static data structures in a more accessible programming environment, this course gives students the opportunity to develop a similar skill set in a more demanding language.
Prerequisite
CSE2120: Data Structures 1
Parameters
Access to appropriate computer equipment, software, the Internet and support materials. Access to a programming environment that allows structured and modular programming.
Supporting courses
CSE3010: Computer Science 3 CSE3110: Iterative Algorithms or any Advanced project course involving structured and modular programming

Outcomes The student will:

  • 1 compare and contrast a new language with a previously learned language

    • 1.1 consider the programming paradigms supported by each language including:

      • 1.1.1 list and describe the paradigms

      • 1.1.2 outline the advantages and disadvantages of the paradigms

    • 1.2 consider the source code to machine code translation process used by each language including:

      • 1.2.1 identify and describe the process used by each language

      • 1.2.2 outline the advantages and disadvantages of translation processes in each language

    • 1.3 consider the language characteristics including:

      • 1.3.1 language level; e.g., low, high, very high

      • 1.3.2 level of type; e.g., strongly typed, weakly typed

      • 1.3.3 nature of the source code; e.g., iconic, widgets, graphical

      • 1.3.4 difficulty to construct source code

      • 1.3.5 programming resources and aids

    • 1.4 consider the modular characteristics of each language including:

      • 1.4.1 types of subprograms supported

      • 1.4.2 how modularity is supported

      • 1.4.3 level of module cohesion possible

      • 1.4.4 amount of module coupling required

      • 1.4.5 object-oriented features

    • 1.5 other pertinent characteristics

  • 2 demonstrate programming skills by writing algorithms for a second language that uses fundamental data structures

    • 2.1 use appropriate general design techniques for a specific programming environment

    • 2.2 analyze and decompose the problem into appropriate subsections using techniques appropriate for the chosen design approach

    • 2.3 evaluate subsections and identify any that may require some type of fundamental data structure, based on the nature of the data to be processed and the type of processing operations

    • 2.4 identify, use or construct the appropriate data structure; e.g., array using appropriate variant or variants, where required

    • 2.5 identify and sequence the operations required to process the data to be contained in the data structure

    • 2.6 sequence the various subsections appropriately

    • 2.7 create more detailed algorithms for each module identifying the pre- and post-conditions and required program control of flow mechanisms

    • 2.8 test and modify the algorithm using appropriate “fail-on-paper” techniques

  • 3 demonstrate coding skills by translating algorithms that require fundamental data structures into a second language

    • 3.1 convert an algorithm into a program of linked subprograms with a main or client module calling other modules in a manner that reflects the structure of the algorithm

    • 3.2 use appropriate types of subprograms to implement the various sections of the algorithm

    • 3.3 analyze and determine, in a second language, the type of scope required to protect and/or hide data and keep implementation decoupled from the calling modules and to avoid unwanted side effects with consideration of the:

      • 3.3.1 use of appropriate parameters for importing and exporting data to and from the subprograms

      • 3.3.2 use of local variables and nested subprograms to enhance cohesion

    • 3.4 analyze for, and maintain, an appropriate balance between the coupling or dependency and cohesion or focus of the subprograms

    • 3.5 create internal and external documentation

    • 3.6 analyze the program and eliminate syntax, run-time and logic errors by using appropriate test data for each programming task at each stage of development

  • 4 compare the results of the program with the intent of the algorithm and modify, as required

  • 5 demonstrate basic competencies

    • 5.1 demonstrate fundamental skills to:

      • 5.1.1 communicate

      • 5.1.2 manage information

      • 5.1.3 use numbers

      • 5.1.4 think and solve problems

    • 5.2 demonstrate personal management skills to:

      • 5.2.1 demonstrate positive attitudes and behaviours

      • 5.2.2 be responsible

      • 5.2.3 be adaptable

      • 5.2.4 learn continuously

      • 5.2.5 work safely

    • 5.3 demonstrate teamwork skills to:

      • 5.3.1 work with others

      • 5.3.2 participate in projects and tasks

  • 6 create a transitional strategy to accommodate personal changes and build personal values

    • 6.1 identify short-term and long-term goals

    • 6.2 identify steps to achieve goals

Program of Studies 2009. Source document, © Alberta Education.