My friend is at the same college as me and is taking an intro-to-CS class. I offer help to him when he needs it, and looking at these projects, I can see why.
1:
https://drive.google.com/file/d/0B6gYqBQuTG-9ZFczYUlsU0l5bjg/view?usp=sharing
2:
https://drive.google.com/file/d/0B6gYqBQuTG-9czVUbXh0aDdFV2c/view?usp=sharing
3:
https://drive.google.com/file/d/0B6gYqBQuTG-9OUFCUFRVdDdxeU0/view?usp=sharing
4:
https://drive.google.com/file/d/0B6gYqBQuTG-9c1dUZzBILTdfLUU/view?usp=sharing
The project specifications are pretty poorly worded and vague or ambiguous at best. Even worse is what the projects are requiring the students to do.
Project 1: Converting between arabic (decimal) numbers and roman numerals - not so bad, except that the input file is also the output file. Not only that, read the hint:
Project 1 wrote: |
---|
Hint: seekg(), seekp(), tellg() and tellp() will be your friends for this project. Don’t be afraid to use them.
Given the unknown nature to the number of lines in the file, arrays will not be useful here. |
The professor is suggesting to use binary seeking. For text files. Which will be opened in text mode. My solution to this project does not involve any of these functions and instead I use formatted input. My friend got around the we-haven't-been-taught-vectors-yet problem by writing to a temporary file and then replacing the original via C's
remove() and
rename().
Project 2: Expands on Project 1 by adding an interactive console-base interface to let the user sort/search with two different algorithms each. My main issue with this assignment is that the class has still yet to teach how to actually write code, and is instead focusing on the algorithms. My friend understood the workings of the algorithms very well but struggled with writing the code needed to implement them. Additionally, the assignment asks the students to duplicate output to both the console and to a log file. It can't seem to make up its mind on what it wants and so asks for everything however unrelated.
Project 3: Evaluate the results of (very limited) mathematical expressions. Not so bad, except for one problem: the assignment
requires use of dynamic memory in the form of manually managing dynamically allocated arrays. I should point out that my friend says they were not taught how to do this until after submitting Project 2. To this day they still have not even heard mention of vectors.
Project 4: Builds upon project 2 by adding a couple new options to the console-based interface. The main thing is adds, however, is a
requirement to use signly-linked lists. And to only support binary search (which means deleting the existing linear-search code). Not to mention more ambiguity and vagueness.
When it comes to the algorithms and data structures being taught, my friend has a pretty good idea about what's going on. Until I ask him to show me the code he would write for it. "Umm, they didn't teach us that yet." is his usual response. And I believe him. Just to make things clear, the class claims to teach C++.
In case it isn't obvious, I am very unhappy with the way the class is being taught
just by looking at the projects. Maybe my friend isn't paying good attention in class, but the project PDFs are real and unmodified.