Course:INFO108 - Foundations of Software
On Campus Offering:Fall (day), Winter (day), Spring (day)
Online Offering:None
Faculty:Smith, Thomas J.
Extended Course Description:

Catalog Course Description:
Provides students with fundamental concepts for designing, coding, testing, and deploying computer software. Introduces programming concepts  and activities by demonstration, example, and exercise.

Pre-requisites and Co-requisites:
High school algebra
Familiarity with basic concepts for using a personal computer

Curriculum Role:
Introduces the programming process through learning a programming language (currently Python)

Course Rationale:
Provides an introductory background in computer software design, programming, testing, and maintenance.

Course Outcomes:
Upon successful completion of this course, a student will be able to:
• Describe the concept of an algorithm and provide several examples.
• Explain and contrast the basic operations of a compiler, and an interpreter.
• Contrast machine language, assembler, procedural, and object-oriented computer languages.
• Demonstrate an understanding of the syntax and semantics of a high-level computer language by designing, coding, documenting and testing a computer program to solve a specified problem.
• Describe and demonstrate an understanding of data types, declarations, blocks, variables, scope, control structures, and operator precedence.                                    
• Explain and apply a few simple techniques for identifying and removing defects in computer programs
• Discuss some of the general problems that arise in the development of complex software systems

 Contribution to Program Educational Outcomes:
This course contributes to the program educational outcomes as follows:
Outcome                Contribution
(a)                            Students design, implement, and examine programs
(b)                            Students design and implement computer programs.
(c)                             Introductory program design & implementation
(d), (f)                       Programming projects are done in pairs or small teams 
                                 helping students practice working together and 
                                 communicating about problems

Course Content:
Principal topics and the approximate number of weeks devoted to each are:
• Computer Language fundamentals – algorithms, compilers, interpreters (1)
• Computer Program design fundamentals (1)
• Learning to program in a high-level programming language (currently Python). (6)
• Basic coding skills
• Working with numbers and strings
• Working with data types, variables, and scope.
• Simple console input and output
• Working with Control Statements
• User Interface development
• File and database I/O
• Program Testing (1)
• Program Maintenance (1)

Presentation:
Note: Presentation method may vary somewhat from section to section.
Course material will be presented through lecture, class exercises, and labs. Students will be given programming and other assignments to enable them to gain proficiency in the concepts and practice of software development.

Assessment:
Note: Assessment method may vary somewhat from section to section.
A mid-term and a final examination will be given.

Previous | Course List | Course Offerings | Next
Email this page Print this page
Course Details
Dotted Underline