"The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be." Frederick P. Brooks, Jr. in The Mythical Man-Month
The book called The Mythical Man-Month, written by Frederick P. Brooks, Jr., contains the observation that "the magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be." Wow, that makes programming sound really exciting! And, it really is as enervating as Frederick P. Brooks, Jr. makes it out to be. With that said, it can be overwhelming — and even counter-productive — for an emerging proactive programmer to start their journey by aiming to complete a major software project.
This site teaches proactive programming through three different types of programming projects, each of which is connected to two unique levels in Bloom's Taxonomy and therefore designed to develop your programming knowledge and skills in a systematic and scaffolded fashion.
Source Code Surveys connect to the remember and understanding levels of Bloom's taxonomy and invite learners to build a basic understanding of the building blocks of programs. Aimed at helping you to remember and understand how programming language constructs and a program's functions work, these projects ask you to run a program, observe its output, and describe its source source through technical writing.
Programming Projects connect to the applying and analyzing levels of Bloom's taxonomy and encourage learners to complete programming tasks designed to ensure that they can effectively build a program by comparing and contrasting different solutions and picking the best one for a given problem.
Engineering Efforts connect to the evaluating and creating levels of Bloom's taxonomy by asking learners to design, implement, test, and document programs that innovatively solve a problem. These projects help you to hone the skills of proposing, creating, assessing, and improving a complete software product.
Okay, sometimes the lines blur between these three types of assignments! With that said, it should be clear that a source code survey is very different than an engineering effort in that the former requires a learner to run a program and observe its output while the later asks a person to create and evaluate a complete program.
It's also worth noting that, for this purposes of this site's projects, a programming project normally involves the implementation and testing of fewer (and often less complex) source code lines than the program created as part of an engineering effort. Since projects in the engineering effort category focus on the creation and evaluation of programs, they also call for learners to complete technical writing tasks that are more thorough than those that are a part of either a programming project or a source code survey.
Still a little confused? Unconvinced that this focus on proactive learning is important? Don't give up until you complete some projects in fields like data abstraction and discrete structures! Also, don't forget: if you have some ideas for improving this content you can share them in the GitHub Issue Tracker or in the GitHub Discussions Forum.
Okay, now we can learn more about how these types of assignments will be assessed!