Software engineering is more than just programming. There exists a set of concepts, techniques and tools that every new software engineer needs to learn and practice, and their use becomes essential once the software engineer begins working with others in non-trivial software projects. This course provides an introduction to this set, and further courses with both use and build on the topics covered this semester.
The topics covered by this course will include:
• Linux command-line basics
• Multi-version software development
• Software documentation
• C programming language
• Python programming language
• Git version control system
• GDB debugging tool
• Build tools such as "make"
• Testing
• Software evolution and the software life cycle
Students successfully completing SENG 265 will be able to:
• Define elementary software-engineering terms.
• Describe elementary software-engineering concepts.
• Construct solutions for small- to medium-sized problems using Python and C.
• Organize development work using software-configuration management tools such as git, make, and others.
• Explain the purpose of a software-development process.
• Investigate the dynamic behavior of C programs using a debugger.
• Employ the bash-shell and the Linux operating system in the work of developing software.
• Identify and outline the test cases needed to give confidence in the correctness of a software-development artifact.