Skip to content

CS340-21/news

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 

Repository files navigation

Date of when the final project report is due

  • April 30
  • Final report content/rubric
  • Three key things to have for the final presentation
    • Demo (working or not)
    • Time for each project participant to speek (prepare a subset of slides)
    • Reflection (what worked what did not)
    • Also what you can include from the remaining items in the final report

Class Apr 27

  • MegaJ, VoiceRecognitionExt, MathMajorsUnited, Book Recommendations, MergeSortMusic
  • After class: EasyRec

Class Apr 22

  • Tagger, FantasyStockMarket, WebSecurity, PaperintheWind, Fitness app, ResumeGenerator

Class Apr 20

  • TeamGME, GameGUI, SentimentAnalysis

Class Apr 20, 22, 27

Class Apr 6-15

  • Work on final projects/OSS
  • Questions

Class Apr 1

  • Work on final projects/OSS
  • Questions

Class March 30

  • Work on final projects
  • Questions

Class March 25

  • Work on final projects
  • Questions

Class March 23

  • Work on final projects
  • Questions

Class March 18

  • Work on final projects
  • Questions

Class March 16

  • Finish validation and verification lecture
  • Questions on OSS assignment

Class March 11

Class March 9

  • No lecture today: work on final projects

Class 13

  • Questions related to Google Compute Platform
  • Starting validation and verification lecture

Class 12

  • Google Compute Platform

Class 11

  • Finish Architecture
  • No issue for SP2: BuddySwan adam-mcdaniel amaryans jmoor147 kerble nmize1 psherrill24 shwang6

Class 10

  • Every project needs to have
    • Milestone "finalize proposal" due Feb 18
    • Milestone "Sprint 1" due March 4
    • At least one issue assigned to each one of the team members for Sprint 1

Class 9

  • Remaining preliminary proposal presentations
  • Final proposals due

Class 8

Class 7

  • Project Proposals Presented Today, Due Feb 18
  • Sprints
  • Rubric for preliminary task "Due Jan 26: Github Milestone, open an issue, and assign it to yourself. The milestone should be for the repo cs340-21/test and named netid_git, with a deadline for February 1st."
    • Is there a milestone
    • Is there an issue
    • Is issue assigned to the milestone and to yourself?

Class 6

  • Please add the members of your team to the group, for example, for stockfantasymarket @andrew go to your team and add the remaining team members
  • Software process lecture

Class 5

Project timeline

date activity
2/4 Form teams, pick a project topic
2/11 Write and present preliminary project proposal
2/18 Revise project proposal
3/4 Design and implement a minimal viable system. Submit iteration 1 status report
3/18 Iteratively improve minimal viable system. Submit iteration 2 status report
4/1 Iteratively test and refine solution. Submit iteration 3 status report
4/15 Complete project implementation. Write project report and present finished project

Class 4

  • Present teasers
    • Each teaser will be briefly presented, if anyone want to join, please speak out
    • After each teaser is presented I will ask anyone without the project team to speak out
    • I will create a gh team for each project and assign the first listed participant to add the remaining team members

Class 3

Class 2

Class 1 (Jan 21)

Lecture recordings/Zoom

Syllabus for "Software Engineering"

  • Course: [COSCS-340]
  • ** TuTh 04:30PM-05:45PM Online Zoom bridge 276-644-8345 **
  • Instructor: Audris Mockus, [email protected] office hours - on request
  • TAs: David Reid
  • 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. Upon successfull completion of this course you will be able to:

  • Do version control and issue tracking
  • Paticipate in teams and do basic software project management
  • Do basic software testing
  • Deploy software to the cloud
  • Contribute to 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 (or its component) 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 3 and 4: (5% of total course grade)
    • OSS Sprint 5 and 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 markup format - details to follow). 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 (15% of total course grade)
  2. Final Project (Report + Demo) (35% 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.

Presentation skills

Teamwork

How to tell if you work well in a team

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