CS401 | sw engineering
  • outline
  • projects
  • syllabus
  • links

Course Objectives

 

  Overall Goal: For you to become a self-actualized software developer that creates impactful real-world software systems using agile techniques for rapid team-based development.

 How?:  By Doing. Through development of a team-proposed project meeting stipulated SW requirements that involves all stages of SW Development from Brainstorming, Design, Implementation, Testing, Documentation using Agile based techniques.  

 

Some Itemized Objectives

  • Iintroduces students to team-based development of large, complex software systems.

  • Topics include clean code, requirement analysis, design, implementation, testing, project management and teamwork.

  • Students learn tools to support Best Practices for the Porject development process while completing a semester-long development project to prepare them for work in industry, research, or open-source teams.

  • The tools that may be used include:

    • IntelliJ IDEA, [IDE]

    • Git [ Version control]

    • GitHub, [remote repository + for Version control]

    • Trello, [Kanban boards]

    • Slack, [ alternative to email in teams, - support in GItHub? and BitBucket]

    • Android Studio [IDE] + Android Framework,

    • Travis Ci [hosted continuous integration service used to build and test software projects hosted at GitHub] --- this will do build tests automatically every time you push to github....so you don't have to "remember to do testing with these cases" and will not push the changes to github if they fail the tests. GOod thing is everyone doing development on the same shared tests regardless of their IDE/personal development tools

      • https://www.vogella.com/tutorials/TravisCi/article.html

      • Travis yml file verification online tool

  • if time allow may try out

    • Zenhub [project management integrates into GitHub web interface --issue tracking, plan sprints(scrum) , Release Reports, Velocity Tracking, and Burndowns ],

    • Code Climate.[metrics like cycle time and visualizations of pulls etc from version control]

 

 

You are going to

  • Gain a lot of experience
  • Experience version control (git in particular
  • Unit test
  • Use build tools
  • Release early and often - continuous integration
  • Build an app of much higher complexity than you thought you could
  • Work with a database in your application
  • Learn Java
  • Have real experience with Frameworks
  • Read Uncle Bob’s Clean Code book
  • Watch a few Uncle Bob videos
  • Use modern Best Practices following Industry Recommendations
  • Increase your coding expertise by leaps and bounds
  • Participate in standups ---TEAM WORK
  • Learn what agile development really is
  • Use Project Management software
  • Help each other cheerfully
  • Congratulate each other
  • Write useful documentation
  • Journal your experiences on a wiki
  • deploy work to opensource public github repository, to impress your friends and potential employers
  • Present your work

 

cs401:sw engineering

  • home
  • outline
  • projects
  • syllabus
  • links