CIS* Programming

Similar documents
B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

AE Computer Programming for Aerospace Engineers

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone Address Office Hours

G. PULLAIAH COLLEGE OF ENGINEERING AND TECHNOLOGY Pasupula, Nandikotkur Road, Kurnool

Updated: 2/14/2017 Page 1 of 6

CS 241 Data Organization using C

CS 241 Data Organization. August 21, 2018

CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

IT-2670: C/C++ PROGRAMMING LANGUAGE

COMP 321: Introduction to Computer Systems

ITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

Computer Science (Informática)

ITE 205 Software Design and Programming I

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

COMP-202A: Introduction to Computing 1

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

Advanced Programming Concepts. CIS 15 : Spring 2007

The Linux Command Line: A Complete Introduction, 1 st ed., by William E. Shotts, Jr., No Starch Press, 2012.

CS503 Advanced Programming I CS305 Computer Algorithms I

Welcome to CS 241 Systems Programming at Illinois

Course Administration

INST Database Design and Modeling - Section 0101 Spring Tentative Syllabus

Cleveland State University

INF 315E Introduction to Databases School of Information Fall 2015

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

COMP-202A: Introduction to Computing 1

The University of Aizu School of Computer Science and Engineering Introduction to Programming. Course Syllabus (Special Track for Foreign Students)

Compilers for Modern Architectures Course Syllabus, Spring 2015

CSCI 3160: User Interface Design

SULTAN QABOOS UNIVERSITY COURSE OUTLINE PROGRAM: BSc. in Computer Science. Laboratory (Practical) Field or Work Placement

CSC 111 Introduction to Computer Science (Section C)

CS 0449 Intro to Systems Software Fall Term: 2181

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus

DEPARTMENT OF COMPUTER AND MATHEMATICAL SCIENCES UNIVERSITI TEKNOLOGI MARA CAWANGAN PULAU PINANG

COP4530 Data Structures, Algorithms and Generic Programming Recitation 3 Date: January 20 & 22, 2009

Computer Science 1321 Course Syllabus

Software Development Fundamentals (SDF)

CSCE 206: Structured Programming in C

COP 1220 Introduction to Programming in C++ Course Justification

During the first 2 weeks of class, all students in the course will take an in-lab programming exam. This is the Exam in Programming Proficiency.

Course and Unix Intro

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus Instruction Division. SECOND SEMESTER Course Handout Part II

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid

Practical Programming Methodology

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid. Fall 2018

Syllabus of ENPM 691: Secure Programming in C

ECE573 Introduction to Compilers & Translators

Operating Systems, Spring 2015 Course Syllabus

CS 113: Introduction to

Introduction to Computer Systems

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

CPSC 427: Object-Oriented Programming

Introduction to Programming System Design CSCI 455x (4 Units)

CS 1044: Introduction to Programming in C++

De La Salle University College of Computer Studies. Course Syllabus

CPSC 427: Object-Oriented Programming

CS120 Computer Science I. Instructor: Jia Song

The University of Jordan. Accreditation & Quality Assurance Center. COURSE Syllabus

ITSY Information Technology Security Course Syllabus Spring 2018

Your Instructor. CSE Content. Notes. Notes. Notes. Summer May 4, 2010

GET 433 Course Syllabus Spring 2017

Introduction to Computer Systems

Course Overview CSCE 312. Instructor: Daniel A. Jiménez. Bryant and O Hallaron, Computer Systems: A Programmer s Perspective, Third Edition

CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming. Summer 2009

CIS*1500 Introduction to Programming

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

MWF 9:00-9:50AM & 12:00-12:50PM (ET)

New Undergraduate Course Proposal Form

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

COLLEGE OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY COURSE SYLLABUS/SPECIFICATION

15-213/18-213/15-513, Fall 2017 C Programming Lab: Assessing Your C Programming Skills

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016

Ministry of Higher Education and Scientific Research

PESIT-BSC Department of Science & Humanities

Introduction to Computer Systems

Welcome to CS 241 Systems Programming at Illinois

Langara College Spring archived

CS11001/CS11002 Programming and Data Structures Autumn/Spring Semesters. Introduction

School of Computing and Information Sciences

EEL 4930/5934 Advanced Systems Programming - Spring 2017

Advanced Programming CMPS 109

Langara College Spring archived

Software Project. Lecturers: Ran Caneti, Gideon Dror Teaching assistants: Nathan Manor, Ben Riva

EECE.2160: ECE Application Programming Spring 2019

Sai Nath University. Assignment For MCA 2nd Sem.

Course Design Document: IS202 Data Management. Version 4.5

The University of Jordan

Central Washington University Department of Computer Science Course Syllabus

IS 331-Fall 2017 Database Design, Management and Applications

EECE.2160: ECE Application Programming Spring 2017

Course specification STAFFING OTHER REQUISITES RATIONALE SYNOPSIS. The University of Southern Queensland

CpSc 1111 Lab 9 2-D Arrays

file:///h:/de/course Production/DE Production/comp_1010_ol/_syllabus...

CPS1011. Program Structure {C};

Syllabus CS 301: Data Structures Spring 2015

Transition from One- to Two-Semester(s) of Fundamentals of Programming

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

Transcription:

CIS*1300 - Programming CALENDAR DESCRIPTION This course examines the applied and conceptual aspects of programming. Topics may include data and control structures, program design, problem solving and algorithm design, operating systems concepts, and fundamental programming skills. This course is intended for students who plan to take later CIS courses. If your degree does not require further CIS courses consider CIS*1500 Introduction to Programming. LEARNING OUTCOMES Upon successful completion of this course, students will be able to: Analyze problems and design algorithms. Demonstrate some of the basic principles of software development. Design and construct programs in a conventional procedural programming language. Apply consistent documentation and program style standards. Design, implement, test, and debug a program. Understand programming language constructs, e.g. conditional and iterative structures. Demonstrate knowledge of some standard algorithms and data structures. Write programs that use each of the following data structures: arrays, strings. Demonstrate working knowledge of dynamic memory allocation. Understand the Unix operating system, including the command line, and system tools used in programming. COURSE EVALUATION Assignments (3) 30 % Midterm Exam 20 % Lab Exam 20 % Final Exam 30 % LECTURE TOPICS INTRODUCTION TO OPERATING SYSTEMS Basics of Unix OS: architecture, editors & commands Unix shell script programming System tools for software: make, valgrind, gdb Introduction to command-line compiling PROBLEM SOLVING AND ALGORITHMS Basic problem solving skills. Methods of problem solving, e.g. brute force, divide and conquer. The role of algorithms in the problem solving process. The basics of software development: design techniques Algorithm design BASIC PROGRAMMING Brief overview of programming languages.

Program comprehension: Reading and understanding code Programming style: whitespacing, indenting, comments etc. BASIC LANGUAGE SYNTAX Basic elements of the C programming language Variables, data types, expressions and operators Basics of memory Simple I/O DEBUGGING AND TESTING Program debugging strategies. Defensive programming techniques. Elementary methods of program testing, creation of testing data. CONTROL STRUCTURES Conditional control structures: if and switch Repetitive control structures: for, while, do-while FUNCTIONS Structural decomposition. Function I/O, and parameter passing (including elementary pointers). ARRAYS AND STRINGS Introduction to array data structures. Function parameter passing of arrays. One and two dimensional arrays. Introduction to character arrays: strings. USABILITY Principles of basic program usability. Design of text-based messages in programs. ADVANCED STRING FUNCTIONS AND FILE I/O Introduction to advanced string functions File I/O ADVANCED C STRUCTURES Basic pointers and memory management Composite data types (typedef, struct, union) Introduction to data structures (stacks and linked lists), recursion ADVANCED PROGRAMMING Advanced C programming: forking a process, operating system libraries Programming efficiency and portability LABS There will be a strong emphasis on the lab component of this course. There will be a two-hour lab session for each student every week, these sessions will be staffed by TAs. Each week there

will be a specific problem set that must be achieved. REQUIRED TEXTBOOKS Kernighan, B.W., and Ritchie, D., The C Programming Language, (2nd ed.) Prentice Hall, 1988 SUGGESTED TEXTBOOKS van der Linden, P. Expert C Programming, Prentice Hall, 1994

LEARNING OUTCOMES (PER TOPIC UNIT): Upon successful completion of each topic unit, students will be able to: INTRODUCTION TO OPERATING SYSTEMS Discuss the relevance of various programming tools. Design and implement short shell scripts. Demonstrate a working understanding of the Unix OS. PROBLEM SOLVING AND ALGORITHMS Discuss the importance of algorithms in the problem-solving process. Identify the necessary properties of good algorithms. Create algorithms for solving problems. Identify different types of problem solving. BASIC PROGRAMMING Discuss the various types of programming languages. Analyze and comprehend programs. Describe the relevance of programming style. Apply consistent documentation and program style standards. BASIC LANGUAGE SYNTAX Analyze and explain the behavior of programs involving the fundamental programming constructs covered by this unit. Identify appropriate data types for algorithms. Translate mathematical expressions to language specific context. Demonstrate a basic understanding of memory.s DEBUGGING AND TESTING Describe strategies that are useful in debugging. Describe the types of bugs found in programs, e.g. compiler, logic etc. Design and implement defensive programming methods in programs. CONTROL STRUCTURES Design, implement, and modify programs that use standard conditional and repetitive control structures. Choose appropriate conditional and iteration constructs for a given programming task. FUNCTIONS Design, implement, and modify programs that use functions. Describe how modularization can improve the design of a program. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces. Describe the mechanics of parameter passing methods. ARRAYS AND STRINGS Design, implement, and modify programs that use arrays and strings. Identify data which could be represented by an array or string.

Implement passing of arrays to functions. USABILITY Identify problems with the usability of user prompts in a program. Describe the basic ideas behind program usability. ADVANCED STRING FUNCTIONS AND FILE I/O Design, implement, and modify programs that use string I/O functions. Design, implement, and modify programs that use file I/O. Identify different file types. ADVANCED C STRUCTURES Understand the basics of pointers and memory management. Understand composite data types. Design, and implement, programs that use elementary data structures and recursion. ADVANCED PROGRAMMING Describe the basics of using operating systems libraries in C. Identify program inefficiencies, and solutions. Academic Misconduct The University of Guelph is committed to upholding the highest standards of academic integrity and it is the responsibility of all members of the University community faculty, staff, and students to be aware of what constitutes academic misconduct and to do as much as possible to prevent academic offences from occurring. University of Guelph students have the responsibility of abiding by the University s policy on academic misconduct regardless of their location of study; faculty, staff and students have the responsibility of supporting an environment that discourages misconduct. Students need to remain aware that instructors have access to and the right to use electronic and other means of detection. Please note: Whether or not a student intended to commit academic misconduct is not relevant for a finding of guilt. Hurried or careless submission of assignments does not excuse students from responsibility for verifying the academic integrity of their work before submitting it. Students who are in any doubt as to whether an action on their part could be construed as an academic offence should consult with a faculty member. The Academic Misconduct Policy is detailed in the Undergraduate Calendar: http://www.uoguelph.ca/registrar/calendars/undergraduate/current/c08/c08- amisconduct.shtml