CSC1001: Fundamentals of Computing/Software Development
Outcomes
On successful completion of this course, the student will be able to:
- Draft software implementation requirements from non-technical descriptions.
- Decompose problems into a sequence of logical steps, identifying patterns such as iteration, conditional logic, and state management.
- Select and use appropriate data types to effectively model and manipulate real-world information.
- Evaluate complex expressions using arithmetic, relational, and Boolean operators to control program flow.
- Collaboratively design and articulate algorithmic solutions using high-level planning tools, including pseudocode, flowcharts, and state diagrams.
- Trace the execution of algorithms, manually tracking variables and control flow to predict output and identify mismatches between desired and predicted output.
- Evaluate modular software solutions in Python using fundamental programming constructs, including variables, control structures (conditionals and loops), and functions.
- Apply systematic testing and debugging strategies to identify and resolve errors in code.
- Design functions and procedures that use parameters and return values to modularize code, improve reusability, and manage complexity.
- Process data from files and create interactive and scriptable tools.
- Synthesize course concepts to design, implement, and test a complete software solution as part of a collaborative team, breaking the project into manageable tasks.
Homework
Homework for this class is smaller pieces of work that are designed to help you work on the material you’ll need for labs and exams.
Exercises
The exercises are designed to help you figure out how you best learn and teach you some potential skills for being successful in the college environment.
Quizzes
Most weeks in lab you’ll take a short quiz to ensure you are prepared for the lab and you’re understanding the material we’ve covered in the past week.
You’ll also have weekly reading quizzes to ensure you’re doing the reading that is associated with what we’re discussing in class.
Labs
Labs will require you to do some programming and work with others. The labs are mostly designed to be completed during the lab period. In addition to your code you will turn in the answers to some reflection questions to let you reflect on your process and experience of doing the lab.
Exams
The two midterms will test your knowledge and understanding of the material presented so far in class. The comprehensive final exam will assess your knowledge and understanding of all the material in the class.