Computer Science 340-Software Engineering

Undergraduate Course, UTK, Computer Science, 2018

Teaching Assistant for software engineering course focusing on team oriented, iterative, software development projects.

Course Syllabus

The course will provide basic software engineering approaches with a focus on intense practice.

  1. Version control and issue tracking
  2. Basic software project management
  3. Build (cmake)
  4. Test
  5. Deploy to the cloud
  6. Participate in open source projects

Upon completion, students will be able to work in teams, break work into iterations, write tests, deploy their software to the cloud, and participate in open source projects.

You will work in teams to propose, design, implement, and present a semester-long software project. Your project work must be done in groups of 4 (or 3 if a fourth member cannot be found). This work accounts for a major portion of your course grade (50%), so choose your teammates wisely. The course project consists of a series of presentations and deliverables that will be assigned throughout the semester.

Each student in the group should have a role and be able to explain their individual contribution to the project. We will take into account student feedback on the project and on their teammates at the end of the semester, but for the most part, teammates will receive the same project grades.

As a programmer you will never write anything from scratch, but will reuse code, frameworks, or ideas. You are encouraged to learn from the work of your peers. However, if you don’t try to do it yourself, you will not learn. Deliberate practice (activities designed for the sole purpose of effectively improving specific aspects of an individual’s performance) is the only way to reach perfection.

Please respect the terms of use and/or license of any code you find, and if you re-implement or duplicate an algorithm or code from elsewhere, credit the original source with an inline comment.

Teaching Assistant Responsibilities

  1. All coursework and grading outside of Team Project.
  2. Management and evaluation of Team Project throughout the semester.
  3. Grading of all assignments and projects submitted through Github