Skip to content

COSCS340/news

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 

Repository files navigation

Course evaluations are open

I have no plans to remove or modify this repository, so you can continue working on it if you chose to do so. I create a separate github organization for each class I teach, so nothing will be changed or overwritten (by me) and your ownership of the repo will remain. It the code produced might be of wider use, I'd recommend you add a suitable license to it (e.g., gpl, apache, or mozilla) to clarify the terms of use.

Furthermore, I'd like to make these projects public (if you have not made them public yet), but this can only be done if everyone on your team agrees to do so for your project. You can keep it private, copy it to another organization (after the end of semester) if you wish, however. I enabled administrative privileges on your repo for all team members, so you can make it private/public add/remove team members, etc.

Longer term, the projects will stay here as long as GitHub keeps them, and I'll try to find alternative home if GitHub decides to end its hosting.

Class 44: April 27

  • PhoneGames
  • Quantum Stock Optimization
  • Unity Simple Role Playing Game
  • Crypto-Currency-Sentiment-Analysis

Class 43: April 25

  • GiftLink
  • WaitList
  • Growlist

Class 42: April 23

  • QuantifyingCorruption
  • MitosisSimulation
  • Select-A-Spot

Class 41: April 20

  • work on finishig the remaining presentations

Class 40: April 18

  • DnD_Town_Generator
  • Arc&Arcana
  • OoT_Randomiser

Class 39: April 16

  • Work on final project

Class 3[78]: April 1[13]

  • If you want to change presentation times talk to another team that might be willing to switch
  • If all else fails, it is possible to fall back to the final exam time slot
  • Final Project Report is due May 1!
  • A part of the Final Project Report will be your individual reflections about the final project. It is an assignment on Canvas, separate from the FINAL_REPORT.md that should be in your teams repository. Both are due May 1, 2018.

Class 36: April 9

  • OSS "Sprint 6: Make and document your contribution" is due

Class 3[45]: April [46]

  • Work on final project

Class 33: April 2

  • OSS "Sprint 5: Select the first task" is due

Class 32: March 30

  • Spring Recess

Class 31: March 28

  • Minimum viable system demo/Project Status due
  • Please use TA office hours or class time or schedule (at least 15min) separately with TA
  • Project numbers
    1. Archery_and_arcana.md
    2. Cryptocurrency_Sentiment_Analysis
    3. DnD_Town_Generator
    4. Gift_Planner.md
    5. Growlist App - Team TBA
    6. Mitosis_In_Unity
    7. OoT_Randomizer
    8. PhoneGames
    9. Quantifying_Corruption
    10. Quantum Stock Optimization
    11. Select-A-Spot
    12. Unity Simple Role Playing Game
    13. Waitlist_AppIntroduction (10 points)
  • Grading rubrik for status report (in your projectrepo/STATUS.md)
    • Customer Value (5 points)
    • Technology (15 points)
    • Team (10 points)
    • Project Management (10 points)
    • Reflection (10 points)
    • Tone, Grammar,Formatting, Readability (10 points)
    • Demo (30 points)
      • Demo has to match requirements on what is to be implemented in the status report
    • Total (out of 100 points)

Class 30: March 26

  • ACM Webinar: Risky File Analysis
    • The event will be online
    • It will start at 12:00 PM Eastern Daylight Time
    • Register, listen, and, for extra credit, submit a question

Class 29: March 23

  • Work on final project
  • Present a demo

Class 28: March 21

  • Software Patterns: continued
  • Work on final project
  • Present a demo

Class 27: March 19

  • OSS "Sprint 4: Develop a plan for contribution" is due
  • Minimum viable system demo/Project Status introduced
  • Software Patterns

Class 26: March 9

  • Work on final project

Class 25: March 7

  • Validation and verification (continued)

Class 24: March 5

  • Validation and verification (continued)

Class 23: March 2

  • Validation and verification (continued)

Class 22: Feb 28

  • Validation and verification
  • Finish OSS Sprint 2: make sure all sources are specified and (if not available) explained.

Class 21: Feb 26

  • Finish OSS Sprint 2: guidlines on scoring sprint 1 and 2
  • Please have an issue assigned to you for your course project
  • Work on Final Project and OSS contribution

Class 20: Feb 23

  • Benjamin Klein will run a workshop on Git Workflows
  • Work on Final Project and OSS contribution

Class 19: Feb 21

  • Work on Final Project and OSS contribution
  • Final OSS projects selected and submitted in (by editing the same oss/yournetid.md file)

Class 18: Feb 19

Class 17: Feb 16

  • Work on Final Project Sprint 1 due
  • Work on selecting OSS project
  • Clarification on how to use issues assigned to you (OSS):
    • Pay attention to the due date
    • Add 'ready to review' label when the changes are done: then somone else will close the issue
  • Each final project needs a milestone for each sprint and a backlog
  • Issues that are worked currently belong to current sprint
  • Each person needs to be assigned to at least one issue from the current sprint
  • Each issue can not have more than one person assigned to it.
  • When the sprint ends and the issues's story is implemented and tested issue gets label 'ready to review'
  • Another person from the project then clrevies and, if satisfied, closes
  • If the story is incomplete, the issue is moved to the next sprint

Class 16: Feb 14

  • ** Only criteria for project selection are needed *** Actual projects are due next week for options see Section A. The instructions on how to submit are here
  • An issue for each one of you has been created regarding this assignment
  • I will create another issue for the project selection
  • Continue lecture on software architecture
  • Please make sure you have only one person assigned to an issue at one time, I will not count additional assignees as working on the issue. Also, assign only to issues that are in the ** current ** sprint with a due date. Current report

Class 15: Feb 12

  • Will decide upon criteria to be used for OSS project selection

  • Final opportunity to finish Assignment 1: [see details: thanks @robobenklein]https://github.com/COSCS340/How-to-Gcloud/blob/master/README.md) or original instructions

  • Ensure all projects have milestones and all members are assigned an issue (for the current sprint milestone)

    1. Create a milestone "Backlog" (or whatever name) with no due date : it will be your backlog
    2. Create a milestone per Sprint with a due date
    3. Create issues in milestone "Backlog"
    4. Create two labels "Ready to review" and "In Progress"
    5. Add an estimate of effort [x] in points in the issue title, for example: "Restructure data [3]" (use 1 2 or 3)
    6. Create Pull Request in sprint milestone with tag "Ready to review"
    7. If you'd like you can use zenhub
  • Will start lecture on Architecture

Class 14: Feb 9

  • Chose an Open Source project to contribute to
  • Will work on finishing Assignment1: Create a docker container, deploy to GC, provide IP adress of the machine so that I can check if the web service is running: see recent status (as of last commit) in results.md Thank you @bobzap66 for the presentation in class
  • Please take a look at your team status, milestones and assignees are still missing.

Class 13: Feb 7

  • Software Process
  • Contributing to an Open Source Project

Class 12: Feb 5

Class 11: Feb 2

  • Finalize sprint implementation as issues for your project
    see QC Project as an example
  • Software Process
  • GC assignment: create a docker container automatically built by dockerhub, deploy to GC, provide IP adress of the machine so that I can check if the web service

Class 10: Jan 31

  • Continuous build (dockerhub)
  • Google cloud

Class 9: Jan 29

Class 7: Jan 26

Class 6: Jan 24

Class 5: Jan 22

  • Version Control (continued)
  • Introduction to Software Engineering
  • Not all project ideas are submitted to https://github.com/COSCS340/students
    • Please submit if you have not done so
    • Please chose one of the projects if you have not done so (many are looking for participants)

Class 4: Jan 19

  • Discuss project proposals (as opposed to ideas)

Class 3: Jan 17

  • Please accept the invitation to github organization for the class (you got invite in the email, but, if you misplaced it, you can accept invite at https://github.com/COSCS340 there will be a line at the top suggectin to accept the invite)
  • Project options
  • Please submit project idea as a pull request to students repository (in an A_prjname.md file, please prepend A_ to project name to differentiate from netid.md files)
    • Title
    • Basic idea
    • Technology used
    • Members (and if additional members are needed to get up to four)

Class 2: Jan 12

Class 1: Jan 10

  • Introductions

Syllabus for "Software Engineering"

  • Course: [COSCS-340]
  • ** MK404 MWF 12:20PM-01:10PM (Min Kao 404) **
  • Instructor: Audris Mockus, audris@utk.edu office hours MK613 - on request
  • TA: Andrew Valesky, avalesky@vols.utk.edu office hours MK204 Mon&Wed: 1:15 to 2:15
  • TA: Walton Macey, wmacey@vols.utk.edu office hours MK618 Tu&Th 9:30 to 11:00
  • Need help?

Simple rules:

  1. There are no stupid questions. However, it may be worth going over the following steps:
  2. Think of what the right answer may be.
  3. Search online: stack overflow, etc.
  4. Look through issues
  5. Post the question as an issue.
  6. Ask instructor: email for 1-on-1 help, or to set up a time to meet

Objectives

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

  • Version control and issue tracking
  • Basic software project management
  • Build (cmake)
  • Test
  • Deploy to the cloud
  • Participate in open source projects

Expected Outcomes

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.

Course Description

All the assignments and projects for this class will use github - no exceptions.

The work will have to be described via issues on github that will be used to define and track progress.

The resulting program will be deployed via docker container to google cloud.

Each student will submit at least one contribution to an open source project.

Prerequisites

While we have strived to make the programming component of this course straightforward, we will not devote much time to teaching programming. You should feel comfortable with:

  1. How to look up syntax on Google and StackOverflow.
  2. Basic programming concepts like functions, loops, arrays, dictionaries, strings, and if statements.
  3. How to learn new libraries by reading documentation and reusing examples
  4. Asking questions on StackOverflow or as a GitHub issue.

Requirements and tips

These apply to real life, as well.

  • Must apply "good programming style" learned in class
    • Optimize for readability
  • There is no required programming language or framework: the project should choose the most relevant technology for its objective (i.e., the technology that would require least effort to implement the desired system). For example, it could be analytics/deep learning application on top of gensis/tensorflow/caffe, a mobile app, a web service, an algorithm library, ....
  • There is no specific domain the project should focus on, but it has to solve a real or perceived problem. In other words, its important to motivate the project. There is no need to choose from a list of example topics, such as this or this.
  • Best results are typically achieved if you work on a problem that you deeply care about. I would recommend, therefore, to choose a problem primarily based on your interests.

Teaming Tips

  • Agree on an editor and environment that you're comfortable with
  • The person who's less experienced/comfortable should have more keyboard time
  • Switch who's "driving" regularly
  • Make sure to save the code and send it to others on the team

Evaluation

  • Class Participation – 25%: students are expected to read all material covered in a week and come to class prepared to take part in the classroom discussions. Responding to other student questions (issues) counts as classroom participation. Class time will be also used for teamwork on the course project.

  • Assignments - 25%: Each assignment will involve writing (or modifying a template of) a small Python program or a documentation of an open source contribution.

    • Deploying to Cloud: (5% of total course grade)
    • OSS Sprint 1 and 2: (5% of total course grade)
    • OSS Sprint 2 and 3: (5% of total course grade)
    • OSS Sprint 4 and 5: (5% of total course grade)
    • OSS Sprint 6: (5% of total course grade)
  • Project - 50%: one original project a group of 4 students. The project will explore one or more of the themes covered in the course that students find particularly compelling. The group needs to submit a project proposal (2 pages IEEE format). The proposal should provide a brief motivation of the project, detailed discussion of the data that will be obtained or used in the project, along with a time-line of milestones, and expected outcome.

Course Project: 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. The grade breakdown is shown below:

  1. Project Proposal (10% of total course grade)
  2. Status Report (around Sprint 3) (15% of total course grade)
  3. Final Project (Report + Demo) (25% of total course grade)

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.

Other considerations

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.

Resources

Project ideas

http://www.ece.rutgers.edu/~marsic/books/SE/projects/

http://nevonprojects.com/web-based-project-ideas-topics/

Textbook

** There is no required textbook for the course ** several optional textbooks/online materials are listed.

  • Bash

  • Regular expressions

  • Databases

  • IEEE's "Software Engineering Body of Knowledge (SWEBOK)" version 3.0.

GitHub

[Academic Dishonesty / Plagiarism]

Cheating and plagiarism are serious offenses and are grounds for dismissal from the course and an automatic F grade. Please read UT's honor statement. for more information on what constitutes plagiarism and what actions may be taken if the honor statement is violated. I have written a helpful guide to avoiding plagiarism. The guide is from my COSC102 course, but it is still relevant.

Any plagiarism/cheating on an exam will be an automatic F for the course and a referral. Any plagiarism/cheating on homework will result in a 0 for that homework or assignment.

Any repeat offenses in plagiarism/cheating will be an automatic F for the course.

Bottom line: It isn't worth it.....PLEASE don't do it!

Any cheating, plagiarism, etc. will be punished in accordance with the current version of Hilltopics. For more information see http://studentconduct.utk.edu/students/current-students/

[Grading]

See above

[MiniTasks]

Good quality commit messages

Issues that describe what is needed in a sprint

How to get a contribution accepted in an oss project

How to find project to learn from

The project quality index

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published