Nna, its a challenge always. Your question resonates with me. I was and still is at the same situation where I am looking for interesting projects for my coding students. You asked for online resources or books or a list. I will share general principles I came to of how to create interesting projects in my similar difficulties (more difficult because I work in a developing country where resources aren’t easily available, and internet service is expensive and sometimes erratic). I’ll share specific examples in some cases.
Before that note something: in view of the level of your students, they may not do great projects “they can reflect on …” and use later yet because of their limited knowledge and experience. However, for beginner what you should strive at is to give them work that will exercise, stretch and consolidate their coding muscles.
My suggestions may not work for you. If they don’t I hope they stimulate enough tangential thinking in you that gets you there. Amen.
Now some “thinkPoints;” for students’ coding projects:
On strategy for giving projects: For freshmen, generally don’t expect “big” projects, give baby projects that are either stand-alone or parts of a bigger project which the students have to tie together at the end of their second semester.
consider posing problems from subjects they take or which you or them can find material for them to understand the issues involved e.g.
For Maths: Algebra, Coordinate Geometry, Arithmetic and Numerical analysis, Matrices, solving cubic equations, simultaneous equations etc.
For Physics: areas of interest may be topics in Mechanics like program to resolves or compose for forces, a program that takes input of any combination of time, distance and velocity etc. and automatically selects and uses the appropriate equation of motion to compute the required value. Smaller projects may be calculating linear & cubic thermal expansivities, receiving gas process inputs and the program making a judgement whether the process is isothermal, isochoric, adiabatic etc.
If they take general studies courses like Economics or are majors of it, better. Give them to develop a program that takes as input prevailing interest rates, liquidity rates and other macro-economic variables (you deem necessary), analyse them and give a prescription of whether the economy is on course, overheating or about to go bust. A more micro project will be like asking them to develop a program that calculates elasticity of demand and advise whether the demand is elastic, inelastic, unitary elastic etc.
For medical people or even others, let them build a program that calculates Body Mass Index (BMI) given height and weight of a person, use the derived value to advice a patient if he/she is obese etc. and whether he/she is predisposed or not to hypertension and allied obesity diseases. The program should make a prescription of diet, drugs or life style change as is appropriate
Other subject matter, business or operational areas, Etc.
Where you or your students have no expertise in a subject matter in which you see an interesting project topic like the BMI example above, get a subject matter expert to prepare you a project background info paper that provides basic understanding. Take your students through and tell them to go read up more. That’s what every programmer does in subject matters areas (and there are many) of which we have no training or knowledge.
Set up academic type projects: E.g.
A menu-driven quiz that allows user choose a subject to take quiz from. The user picks any random number from a range of numbers of questions (“Enter any Question number you want to answer between 1 – 10”), is presented a question and allowed to choose an option or enter some text as answer. The score is announced and cumulated with previous scores and he/she chooses another question to answer till he/she decides to stop. At the end he/she is told his/her scores and congratulated or encouraged to try better next time.
A program that presents small amounts of materials as part of a lesson, allows student to branch of to find any further information. At certain points in the lesson, the user is given and graded on short quizzes before proceeding to next lesson.
Program to receive raw test/exam scores, convert them to letter grades (A, B, C etc.), and grade points (4.0, 3.5, 3.0 etc.), calculate G.P.A and C.G.P.A, highlights areas of students best performance and advises where the student can improve next term/semester then prints an e-mail to the student, faculty and his/her parents.
A synonym/vocabulary game where the system puts up a definition/usage or synonym and the student has to supply or choose from options, the correct word or synonym.
Take a problem you have in the operations or processes of the department or institution or personal life of the students and use as coding project. In these matters, involve the students. Ask their ideas, you may be surprised at the bountiful harvest of project topics.
For online resources, the easiest place to find good projects are the competitive coding sites like Codebyte, Project Euler, HackerRank, Codewars, CodeChef etc. However, as @Buffy has pointed out earlier, students could go to the sites too. & they could copy and paste code for you therefore doing nothing. So, always borrow project concepts from these sites and give it your own twist, complication and/or a local dimension that they can’t find easy online. & test google your final assignment concept to see if you too find anything thus verifying if they can easily “copy and paste” answers.
I hope even if you find nothing you can use here, your creative juices will have been stimulated to get you thinking of problems for students “baby” coding projects.