TL;DR
- Very nice! 👍🏼 Very relevant material
- 7 hours per week
- Only 1 group project (which isn’t too bad)
What is Software Development?
Software development is basically just the process in which you build applications/websites/tools using code
Graded Course Material
- 6 Assignments (Individual)
- 1 Group Project
- 1 Individual project
Assignment 1: Team Matching Survey
This is just a quick survey about what times of the week you like to work on school projects, what experience you have developing, and any other information you would like the TAs to know about yourself before they match you up with 3 other classmates
Assignment 2: Git usage!
This one rocks:
- You actually clone a repository, and begin making changes to it as if you were working with others on a project
- This is SUPER relevant to today’s software engineering, as Git is basically the heart of all software engineering.
- You explore merging, committing and tagging
Assignment 3: Basic Java
- You make a simple Java application that “encrypts” messages
- You’ll also end-up re-using this code on later so take some time to do it well
- You also make some unit tests
Assignment 4: Android app
- Here you make an Android app, that is the frontend of what you coded in Assignment 3
- It does not need to be fancy
Assignment 5: Software Design
- Here you use UML to design a “Job search” application
- You’ll end up re-using this in the Group Project so actually think about it
Assignment 6: White-box testing
- You’ll solve these unit test “puzzles” related to:
- Statement coverage
- Branch coverage
- Modified Condition/ Decision Coverage
- It’s kind of tricky!
Group Project 😱
In this project, you are random paired with 3 other classmates to create a Job Comparison App:
- A user should be able to enter a job offer
- A user should be able to compar job offers
- A user should be able to change the job comparison algorithm weights
You do it over 5 weeks so it’s not too bad
Individual Project 🥷🏻 CLI tool
Here you’ll develop a command-line tool that alters text in a file:
- There are flags you can pass into the tool like
-d
(duplicate) or-k
(keep lines that match) as an example - You’re supposed to program the tool to actually do what the specs say, and test it well enough
- This is actually super relevant to what you do in industry
Hello, world!
txter -d 1 hello_world.txt
Hello, world! Hello, world!