CSE 3140: Second Language Programming 2
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
Theory
Compare and contrast a new language with a previously learned language
-
consider the programming paradigms supported by each language including:
- list and describe the paradigms
- outline the advantages and disadvantages of the paradigms
-
consider the source code to machine code translation process used by each language including:
- identify and describe the process used by each language
- outline the advantages and disadvantages of translation processes in each language
-
consider the language characteristics including:
- language level; e.g., low, high, very high
- level of type; e.g., strongly typed, weakly typed
- nature of the source code; e.g., iconic, widgets, graphical
- difficulty to construct source code
- programming resources and aids
-
consider the modular characteristics of each language including:
- types of subprograms supported
- how modularity is supported
- level of module cohesion possible
- amount of module coupling required
- object-oriented features
-
Create a transitional strategy to accommodate personal changes and build personal values
- identify short-term and long-term goals
- identify steps to achieve goals
Practical
Demonstrate programming skills by writing algorithms for a second language that uses fundamental data structures
- use appropriate general design techniques for a specific programming environment
- analyze and decompose the problem into appropriate subsections using techniques appropriate for the chosen design approach
- 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
- identify, use or construct the appropriate data structure; e.g., array using appropriate variant or variants, where required
- identify and sequence the operations required to process the data to be contained in the data structure
- sequence the various subsections appropriately
- create more detailed algorithms for each module identifying the pre- and post-conditions and required program control of flow mechanisms
- test and modify the algorithm using appropriate “fail-on-paper” techniques
Demonstrate coding skills by translating algorithms that require fundamental data structures into a second language
- 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
- use appropriate types of subprograms to implement the various sections of the algorithm
- use of appropriate parameters for importing and exporting data to and from the subprograms
- use of local variables and nested subprograms to enhance cohesion
- analyze for, and maintain, an appropriate balance between the coupling or dependency and cohesion or focus of the subprograms
- create internal and external documentation
- 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
Compare the results of the program with the intent of the algorithm and modify, as required
Competencies and Skills
You will also be evaluated on your basic competencies such as your ability to:
- communicate
- manage information
- use numbers
- think and solve problems
- demonstrate positive attitudes and behaviours
- be responsible
- be adaptable
- learn continuously
- work safely
- work with others
- participate in projects and tasks