$45
Lab 05: Software Engineering
Overview
The objective of this lab is to understand the purpose and usefulness of debugging and version control. Debugging is an essential skill needed to be a successful developer. We will use PyCharm’s built-in debugger. We will also practice functions of version control systems to develop familiarity in them.
Specification
Debugging
1) Open your IDE (PyCharm by default)
2) Open your previous solution (or another lab/project if you didn’t complete the previous lab)
Git Practice / Setup
1) Complete these exercises: https://try.github.io/levels/1/challenges/1
2) Create a GitHub educational account: https://education.github.com/pack/join
3) Install Git for your OS if necessary. (You can download Git here: https://git-scm.com/downloads)
Optionally, you may also want to install a GUI client for Git and a windowed merge tool. You can get SourceTree (https://www.sourcetreeapp.com/) and Meld (https://meldmerge.org/) for free. (Directions for using Meld with SourceTree: https://jaehoo.wordpress.com/2018/05/21/source-tree-resolve-conflicts-with-an-external-tool/)
Git Tasks
1) Create an empty repository on GitHub and add a README.md (markdown) file. Each student should clone.
2) Individually convert your Java solution from the previous lab (analyzer.py) into C++ (analyzer.cpp).
3) Add and commit your converted solution to the GitHub repository. Each student should attempt to push.
4) The second push should create a merge conflict. You should work together to resolve this, then push.
When you convert to C++, you can use the std::chrono::system_clock::now() function to measure times.
If you are unfamiliar with the command line and would like to learn it, this guide will help (for Mac, Linux, and Git-Bash on Windows): http://www.ee.surrey.ac.uk/Teaching/Unix/
Submissions