CIS120 - Introduction to Computer Programming

3 Credit hours - 2 Lecture, 2 Lab

Prerequisite(s): CIS101 must be taken before or together

Course Rationale:

This course provides students an introduction to the information technology industry which will help them make informed decisions about their career choices and provide students with a programming foundation to prepare them for later courses.

Catalog Description:

This course teaches introductory skills in computer programming using a high-level computer programming language. There is an emphasis on both the principles and practice of computer programming topics such as basic principles, object-oriented programming, algorithms, and software development methods. Emphasis in both synthesis and analysis of computer programs.

Course Objectives

Upon successful completion of this course, the student should be able to:

  1. Understand the basic terminology used in computer programming

  2. Identify and utilize resources and documentation about computer programming languages.  

  3. Analyze and solve problems involving sequence, selection, and repetition, and create the appropriate algorithms using pseudocode and flowcharts to document the solution.

  4. Develop an executable programming solution to a typical problem using correct syntax, data types, and programming standards.

  5. Describe the concepts of class objects and object-oriented programming. 

  6. Understand how to compile, debug, and run programs in an Integrated Development Environment

All course assignments and exams are closely aligned to, and assess the student's mastery of these core objectives.

Core Outcomes

In this course, students are introduced to key concepts of computer programming and problem solving concepts needed for approaching software problems. Course assumes no prior knowledge in computer programming. Language used is dependent on the instructor’s choice.

Students completing this course should be able to perform the following:

  • Demonstrate problem-solving skills such as flow-charting

  • Design algorithms for entry-level software problems using pseudocode

  • Demonstrate industry standards for documenting and structuring code

    • Document code segments using comments and documentation strings - use indentation, white space, comments, and documentation strings; generate documentation

    • Construct and analyze code segments that include function definitions - call signatures; default values; return; def; pass

  • Understand fundamentals of programming such as variables, conditional, and iterative execution.

    • Determine the sequence of execution based on operator precedence - assignment; comparison; logical; arithmetic; identity (is); containment (in)

    • Select the appropriate operator to achieve the intended result - assignment; comparison; logical; arithmetic; identity (is); containment (in)

  • Explain and use data types in their target language

    • Perform data and data type operations - convert from one data type to another type; construct data structures; perform indexing and slicing operations

  • Explain and use logical structures, control structures, and loops in programs

    • Construct and analyze code segments that use branching statements - if; elif; else; nested and compound conditional expressions

    • Construct and analyze code segments that perform iteration - while; for; break; continue; pass; nested loops and loops that include compound conditional expressions

  • Understand the concept of arrays

    • Demonstrate the use of arrays in their target language

  • Perform input and output operations

    • Construct and analyze code segments that perform file input and output operations - open; close; read; write; append; check existence; delete; with statement

    • Construct and analyze code segments that perform console input and output operations - read input from console; print formatted text; use of command line arguments

  • Demonstrate the use of a programming IDE in the target language

  • Understand entry-level debugging terminology and steps in their programming IDE

    • Analyze, detect, and fix code segments that have errors - syntax errors; logic errors; runtime errors

    • Analyze and construct code segments that handle exceptions - try; except; else; finally; raise

  • Explain and use the concept of data validation.

  • Create entry-level software programs in their target language

  • Explain the reason source control is used in software development and demonstrate the ability to use source control systems such as Azure DevOps Server (formerly TFS) to create repositories, check code into repositories, and retrieve code from source control.

Test Out Requirements

Students who wish to demonstrate proficiency in this course will need to complete a Departmental proficiency exam or pass a certification exam from the list below. Students who wish to complete the certification route will be responsible for the cost of the exam in addition to the college’s test out fees.

Departmental proficiency examinations are created by appropriate college faculty to allow students to demonstrate their mastery of course content in designated subjects. These examinations will be equivalent to the cumulative final assessment used in the course. Faculty will determine the minimum score required to earn credit by exam for these courses.

The college’s test out policy is outlined in policy 2.12 - Credit by Exam (Test Out)

Exams and Certification Equivalent:

  • AP Computer Science Principles

  • PLTW Computer Science Principles

Last updated