New Building Website

CSA 163 Introduction to Computer Concepts and Programming (3 credits)

Catalog description:

Introduction to computers in data processing, survey of various hardware and software concepts, and analysis and solution of problems by computer programming. Lecture/laboratory, project-oriented course to provide numerous opportunities to analyze problems, formulate alternative solutions, implement solutions, and assess their effectiveness. No prior knowledge of computer concepts or programming assumed.

Prerequisites: Algebra and trigonometry.

Miami Plan: CSA 163 is a Miami Plan Foundation (MPF) - Group V course. 

CSA 163 is a first-tier course in the CSA4 "Web and Game Applications" thematic sequence.

Given the prevalence of computing devices, it is important that we understand what computers do and how they do it. The web game applications thematic sequence is designed to provide students with an understanding of how computer software is created and designed and how it functions to make possible popular applications such as computer games and the World Wide Web. Courses in the sequence provide an introduction to fundamental programming concepts.  These concepts are applied to create computer games and web applications.

The CSA4 thematic sequence consists of one of the following introductory computer programming courses...

  • CSA 153, Introduction to C/C++ Programming
  • CSA 163, Introduction to Computer Concepts and Programming
  • CSA 174, Fundamentals of Programming and Problem Solving

Followed by both of the following courses...

  • CSA 251, Introduction to Game Programming
  • CSA 252, Web Application Programming

CSA 163 is a course in which you learn computer programming concepts that are fundamental in nearly any computer programming language.  These concepts can then be used in other courses to help you create computer applications that can be used to solve real-world problems.


Learning Outcomes:

Below are the learning outcomes for this course.  Miami Plan foundation courses and thematic sequence courses address some or all of the Four Principles of Liberal Education: Thinking Critically, Understanding Contexts, Engaging with Other Learners, and Reflecting and Acting.  These principles are not simply additional "topics" that are covered during the course.  Rather, they are perspectives and ways of reasoning that are essential to all the content of the course.  Learning outcomes that address these principles are indicated in the table.   Liberal Education Principals (LEP)Key: T=Thinking Critically, U=Understanding Contexts, E=Engaging with Other Learners, R=Reflecting and Acting

Learning Outcomes

LEP

CSA163.1: To be able to gain an understanding of fundamental concepts in programming
CSA163.1.1.          The student can describe fundamental computer hardware and software concepts
CSA163.1.2.          The student can differentiate among various data elements, and structures, and their associated data types.
CSA163.1.3.          The student can correlate program requirements with event-driven programming constructs, such as classes, objects, methods, and events.

U

CSA163.2: To be able to write programs in Visual Basic
CSA163.2.1.          The student can write programs in Visual Basic employing sequence, selection, and repetition structures
CSA163.2.2.          The student can implement modular design/decomposition in solving complex problems
CSA163.2.3.          The student can develop formulas and algorithms that are well structured, robust, reliable, and amenable to implementation in a Visual Basic computer program.
CSA163.2.4.          The student can demonstrate the use of String processing methods
CSA163.2.5.          The student can write sequential file processing programs
CSA163.2.6.          The student can select appropriate data types and structures to represent the real-world context of a programming problem
CSA163.2.7.          In designing a program, the student can implement design specifications including usability, scalability, speed, and efficiency issues

T,U

CSA163.3: To be able to be able to apply problem solving in programming
CSA163.3.1.          The student can use program design tools in problem solving
CSA163.3.2.          The student can identify and resolve syntax, logic, and run-time errors

T

CSA163.4: To be able to develop user-friendly programs
CSA163.4.1.          The student can write menu-driven programs
CSA163.4.2.          The student can implement multimedia features in a program


CSA163.5: To work cooperatively with other programmers
CSA163.5.1.   The student can work as part of a team to analyze a given problem, propose and compare potential software solutions to the problem, and implement the chosen solution

E

CSA163.6: To use and design computer programs in real-world contexts
CSA163.6.1.  The student can explain ways in which computer software is or may be used to solve a problem related to your major field of study.
CSA163.6.2.  The student can use feedback collected from users of a program to make improvements to that program.
CSA163.6.3.  The student can describe ethical standards associated with software development.
CSA163.6.4.  The student can write documentation that explains to others how to use a program.

U,R

Required topics (approximate weeks allocated):

  • Introduction (.5)
    • hardware and software
    • local computing environment
    • creating programs
    • machine language vs. high-level languages
  • Introduction to problem-solving (.5)
    • flowcharting
    • pseudocoding
  • Introduction to programs (2)
    • fundamental statements (input, assignment, print)
    • structure of a VB project
    • symbolic variables
    • types of variables and constants
    • scope and lifetime of variables
    • expressions in assignment statements
    • order of operations
    • precision
    • debugging
    • syntax errors, logic errors, runtime errors
    • program development life cycle
  • Designing the user interface (1)
  • Fundamental programming structures (4.5)
    • structured programming concepts
    • event-driven programming
    • exception handling
    • subroutines to implement modular structure
    • Iteration and decision structures
    • accumulating
    • counting and conditional counting
    • nested structures
    • debugging tools and processes
  • Arrays (1.5)
    • definition
    • creation
    • accessing
    • linear searching
    • simple sort
  • Sequential files (1)
  • Formatting output data (.5)
  • String processing (.5)
  • Graphics and sound (.5)
  • Fundamental computer concepts (discussions and quizzes, spread out over the entire semester) (2)
  • Exams/Review (1)