We will study algorithm design and implementation, software development processes like abstraction and encapsulation, computer systems including programming languages and operating systems, and databases. The course aims to teach creative problem solving. Students will complete a final project demonstrating understanding of a course topic. The first lesson is available online and will be discussed in the upcoming lecture.