INF2050
Welcome to INF2050, Software development tools and practices
Learning goals
In this course you will learn how to adhere to modern software development guidelines that predict project success. You will learn how to set up and configure tools that ensure a clean and reliable codebase, and you will gain practical experience on how to develop with style in a software developer team.
Success
This is one of the most valuable courses to guarantee a smooth entry into the tech job market.
Requirements
You can only participate in this course if you attended and passed the following two courses:
- INF1070, Usage and administration of computer systems
- INF1070 covers basics of networking, security, software setup and network protocols, all of which are required for INF2050.
- INF1120, Programming I
- You will be programming in a team of students, your individual contribution and code quality will be a primary grading criteria. Basic proficiency with Java is required for INF2050.
Warning
It is not possible to acquire the preliminary requirements while you take INF2050. You will not have the time to recap the basics thouroughout this course. Unless you have already passed the preliminaries, you cannot take INF2050.
Useful, but not mandatory courses are:
- INF3135, Software construction and maintenance
- INF5151, Software Engineering: Analysis & modelling
- INF5153, Software Engineering: Conception
Commitment
This course requires weekly lab work and extracurricular contribution to a group project.
You will be required to:
- Attend all lectures
- Come prepared / do the homework
- Attend all lab units
- Consistently contribute to your team project
- Pass the exam
Learning
We can provide you with the best possible conditions to learn, but we cannot learn for you.
Group work
- Part of your grade will be your contribution to a continuous group project. Team size will be 3 students.
- You will be coding a simple turn based game in java, as a terminal interface application.
- There will be only minimal network functionality involved, and the interest of this course is not web-app development.
- There will be no graphical UI involved in this course, and the interest is not GUI programming.
- You will be evaluated by how well you applied the best-practices and tools presented in class and trained in lab units.
Lectures and notes
The lectures will be a mix of incomplete orientation slides and live programming demos.
Notes
It is your responsibility to take personal notes. No pencil, no career.
Software
You will need the following software to participate in lab work.
Warning
The official lab computers have all requirements installed, but it you want to use your own computer, it is your responsibility to ensure all software installed before attending lab units:
List:
- Java, JDK-22
- Test your VM installation with
java -version
. You must use version 22. - Test your compiler installation with
javac HelloWorld.java
.
- Test your VM installation with
- Maven
- Test your maven installation with
mvn -version
. It must show the maven home location.
- Test your maven installation with
- Git
- Test your git installation with
git init
.
- Test your git installation with
- IntelliJ Ultimate
- Request a free educational license, you must use the Ultimate version for this course.
Avoid Windows
If you're using a Windows computer, I strongly recommend to install Linux for this course. You'll be working a lot with UNIX commands, and the learning experience will be a lot easier on a UNIX like system (Mac OS / Linux).
Evaluation criteria
See course plan.
Late submission
No late submissions
Absolutely no late submissions will be accepted. Any late submission receives 0 points.
Exam absence
- Re-taking an exam due to absence is only allows in exception cases, and needs to be well justified.
- Acceptable reasons are for example: decease of a family member, hospitalization, accident, etc...)
- For more information, see department guidelines.
Other criteria
- The quality of french makes up for up to 10% of each submission
- I cannot grade what I do not understand
Passing
- You need to score at least 60% with the above evaluation criteria to pass.
- There is no other evaluation criteria, it is not possible to gain extra points after grading.
Teaching staff
Email policy
Before sending an email, please make sure that...
- ... you've searched the course material for a solution.
- ... you've earnestly tried to solve the corresponding lab unit.
- ... you've searched online using google and stackoverflow.
When composing an email, you commit to...
- ... not using generative AI to draft your message.
- ... not including screenshots or photos in your message.
- ... not using HTML email.
Email policy
No email will be answered within less than one work day.
No emails will be answered in the 48 hours preceeding a submission.
Mentoring
- The computer science department offers a free mentoring service, which is primarily intended for computer science
bachelor students.
- The mentoring program is mainly meant for early courses INF1070, INF1120, INF1132, INF2120 and INF2171.
- Depending on the mentors skills, support for other courses, including this one, might be available.
- For more information, visit https://info.uqam.ca/aide
Further references
PDF Version
This webpage is available as printable PDF version. Click here to download.Not available this semester.