04-330   Fundamentals of Software Development & Problem Solving

Location: Africa

Units: 12

Semester Offered: Fall

Course description

This course explores the discipline of computer science through a hands-on focus on practical programming skills. Topics include algorithm development, problem solving (decomposition and synthesis), program design, data representation, arithmetic and logical expressions, input/output operations, basic user interfaces, and object-oriented programming and design, with an emphasis on developing good programming habits. Intensive programing assignments are required. The programming will involve understanding and analyzing a set of requirements for a problem, formulating a solution, and implementing that solution on the computer along with tests that show that the program achieves its goals. These programs can be intensive and fun, and are designed to provide the student with a clear understanding of principals needed to work with the computer in the future.

Learning objectives

The successful student will be able to:

  • Understand a basic Computer-Science approach to problem solving, including algorithm development and proper testing
  • Demonstrate proficiency in programming using a modern programming language
  • Apply these problem-solving techniques and programming skills to develop software solutions to solve a wide range of technical problems.


This course will lay the foundations for approaching problem-solving in a logical, well-designed approach and implementing solutions to a range of technical problems with well-written, high-quality, and extensible software using the basic “best-practices” used in the field of software engineering.

Content details

  • Analysis and Design
  • Decisions
  • Class Design and Implementation
  • Algorithm Development
  • Iteration
  • Objects
  • Testing
  • Recursion
  • Basic GUIs and Event-Driven Code
  • Common Algorithms and Patterns
  • Method Abstractions
  • Coding Standards
  • Language Syntax
  • File I/O
  • Source File Organization
  • Data Types and Operators
  • Arrays
  • Compiling and Running
  • Data Structures
  • Collections
  • Computer Language Comparison
  • Scope Rules
  • Debugging Methods
  • Basic Computer Graphics



Faculty: Cathy Bishop