🎯 Course Learning Objectives
By the end of CSW 8, students will have discussed, applied, and praciced working with the following course goals.
- Foundational programming concepts:
- Memory concepts: variables, name, type, value, assignment statements, scope of variables, primitive vs. reference variables
 - Primitive types: 
int,float,str,bool - Basic data structures: lists, tuples, dictionaries, namedtutples, sets
 - Control structures: 
if/else/elif,forandwhileloops, nested loops - Operations on Lists and Other Data Structures in Python: index vs. value, finding sum, min, max, average, count of elements matching some condition, making a new structure of elements containing only those that match some condition.
 - Functions: function call vs. function definition, formal vs. actual parameters (arguments), recursive functions
 - Input/output concepts: Writing to the terminal, reading from the keyboard, reading and writing to files, neatly formatting output
 
 - Problem solving strategies and code design:
- breaking down a problem into a sequence of steps
 - abstracting specific problems into general ones, and
 - finding general solutions
 
 - Debugging programs by:
- predicting the output of programs or parts of code
 - generating test inputs and expected outputs based on the specification of a program, and writing test code
 - using print statements to localize program bugs
 
 - Use an IDE to write and execute code.
 - Write code that other people can read and understand.
 - Explore the relevance of programming through real-world examples.