SE 2XA3 Software Engineering Practice and Experience: Software Development Skills Franya Franek January 26, 2015 1 What the students should know and be able to do 1. Students should know and understand (a) the basic ideas of functioning of LINUX operating system (b) the fundamental LINUX line commands (c) the make utility and makefiles (d) the basics of LINUX shells (e) the basics of BASH shell (f) the fundamental BASH shell programming (g) the basic principles of hardware architecture (h) the basic principles of assembly programming (i) the basics of NASM (j) stack, calling conventions, process control in NASM 2. Students should be able to (a) remotely connect to LINUX server (b) transfer files between local and remote machines (c) manipulate and manage LINUX files and directories (d) design, create, and execute makefiles (e) design, create, and execute simple BASH scripts (f) design, create, link, and execute simple to intermediate NASM programs in labs setting (g) design, create, link, and execute a substantial intermediate NASM program as a final project 1 2 Mapping to Attributes with their Indicators A01 Knowledge Competence in Specialized Engineering Knowledge. 1a–1j, 2a-2g A03 Investigation Ability to decompose and organize a problem into manageable subprob- 1f, 1h, 1j, 2d–2g lems. Assess the accuracy and precision of results and recognize limitations 1f, 1h, 1j, 2d–2g of the approach A04 Design Recognizes and follows engineering design principles Properly documents and communicates processes and outcomes 2 2d–2g 2d–2g Measurements: Basics of remote access Lab projects 1-4 Basic LINUX commands Lab projects 1-4 Make utility and its use, makefiles Lab projects 2, 3 BASH scripting Lab projects 1-3 Simple NASM programming Lab projects 3, 4 Intermediate NASM programming Lab projects 4, final project 3 4 does not understand file system and command line approach cannot design or create appropriate simple makefile Make utility and its use, makefiles 1c,2d Below cannot connect to remote host, cannot transfer files Basic LINUX commands 1b,2c Basics of remote access 2a,2b Topic can create and use appropriate simple makefile, but not design it some basic understanding of file system and command line approach Marginal can connect, cannot transfer file shows full understanding of file system and command line approach, can manage files and directories shows full understanding design, creation, and use of simple makefiles Meets can connect, can transfer file as is Table 1: Rubric: (4) Competence in Specialized Engineering Knowledge Student work used: 3 Lab projects, final project. shows full understanding design, creation, and use of makefiles with macros Exceeds can connect, can transfer files in all directions preserving or changing names and formats can fully manage files and directories via command line approach 5 Below cannot design or create a simple BASH script does not understand simple NASM program does not understand intermediate NASM program Topic BASH scripting 1e,1f,2e Simple NASM programming 1i,2f Intermediate NASM programming 1j,2f,2g understands intermediate NASM programs, can fix simple errors understands simple NASM programs, can fix simple errors Marginal can design, create, and execute a simple BASH script can design, create, assemble, and execute simple NASM programs can design, create, assemble, and execute intermediate NASM programs Meets can design, create, and execute an intermediate BASH script Table 2: Previous table continued Exceeds can design, create, and execute an intermediate NASH script with full file, directory control, including error processing can design, create, assemble, and execute simple NASM programs with I/O can design, create, assemble, and execute intermediate NASM programs with I/O and simple data structures 6 Below cannot connect cannot reliably transfer files in both directions cannot rename, delete, or move files or directories Topic Remotely connect to LINUX server 2a Transfer files between local and remote machines 2b Manipulate and manage LINUX files and directories 2c can rename, delete, or move files and directories can reliably transfer file to remote machine Marginal can connect, but cannot log on can rename, delete, or move files and directories, can check or change format can reliably transfer files in both directions Meets can connect, can log on Table 3: Rubric: What students should be able to do Student work used: 3 Lab projects, final project. can fully manage LINUX file system Exceeds can connect, can log on, can perform basic operations in the account can reliably transfer files in both directions depending on their format 7 does not understand how simple NASM program works does not understand how BASH script works Design, create, and execute simple BASH scripts 2e Design, create, link, and execute simple to intermediate NASM programs in labs setting 2f Below does not understand how make works Topic Design, create, and execute makefiles 2d understand how simple NASM program works understand how BASH script works Marginal understand how make works can design, create, assemble, and execute simple NASM programs can design, create, and execute simple BASH scripts Meets can design, create, and execute appropriate makefiles Table 4: Previous table continued can design, create, assemble, and execute intermediate NASM programs can design, create, and execute intermediate BASH scripts Exceeds can design, create, and execute makefiles with macros 8 l Topic Design, create, link, and execute a substantial intermediate NASM program as a final project 2g Below did not submit a project that could be assembled and executed Marginal submitted a project that could be assembled but not properly executed Meets submitted a project that could be assembled and executed with small errors Table 5: Previous table continued Exceeds submitted a project that could be assembled and executed without errors