0% found this document useful (0 votes)
87 views

CS F111 Spring 2022 Handout (BITS Goa)

This document provides details for the CS F111 Computer Programming course offered in Spring 2022. It introduces the instructors and lab co-instructors. The course will cover basic computer modeling, problem solving techniques, programming constructs like expressions, conditionals, loops, functions, and data types. The laboratory component involves programming exercises using various data structures. Upon completing the course, students will be able to write computer programs, analyze problems, use data structures, test programs, and understand programming languages. The document outlines evaluation criteria, submission policies, academic conduct policies, and a tentative course schedule.

Uploaded by

Vehaan Handa
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views

CS F111 Spring 2022 Handout (BITS Goa)

This document provides details for the CS F111 Computer Programming course offered in Spring 2022. It introduces the instructors and lab co-instructors. The course will cover basic computer modeling, problem solving techniques, programming constructs like expressions, conditionals, loops, functions, and data types. The laboratory component involves programming exercises using various data structures. Upon completing the course, students will be able to write computer programs, analyze problems, use data structures, test programs, and understand programming languages. The document outlines evaluation criteria, submission policies, academic conduct policies, and a tentative course schedule.

Uploaded by

Vehaan Handa
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

CS F111: Computer Programming

Course Handout (Part-II) — Spring 2022


In addition to Part I (General Handout for all courses appended to the timetable), this portion
gives further specific details regarding the course.

Course information
● Instructor-in-charge: Anup B Mathew ([email protected])
● Co-instructor: Arnab K. Paul ([email protected])
● Lab co-instructors: Sanjay K. Sahay ([email protected])
Biju K. Raveendran ([email protected])

Introduction
General topics of this course are as follows:
Basic Model of a Computer; Problem Solving-Basic Computing Steps and Flow Charting
(Assignment, Sequencing, Conditionals, Iteration). Programming Constructs – Expressions,
Statements, Conditionals, Iterators/Loops, Functions/Procedures; Data Types – Primitive Types,
Tuples, Choices (Unions or Enumerations), Lists/Arrays, Pointers, and Dynamically Allocated
Data. Input-output and Files.

Laboratory Component: Programming Exercises involving development and testing of iterative


and procedural programs using bounded and unbounded iterations, function composition,
random access lists, sequential access lists, dynamically allocated lists, and file access.

Learning outcomes
After completing the course, students will be able to
● Use basic coding features provided by high-level imperative programming languages
● Write computer programs given simple algorithms
● Analyze simple real-life problems and choose appropriate algorithms to solve them
algorithmically
● Use simple data structures like arrays and lists in simple programs
● Reason about simple programs
● Develop a viable notional machine for a high-level imperative programming language
● Test simple programs the students have implemented
Electronic resources
● We will use slack as the primary communication channel. Students are required to check
slack regularly.
● All the course materials, slides, lecture recordings etc. will be made available in a
shared folder and their links will be shared on slack.

Office hours
We are available outside of scheduled class time and office hours by appointment.

For Anup, please send a plain email asking for an appointment.

For Arnab, Tuesday and Thursday, 10:30 am - 11:15 am.

Text
● J.R. Hanly and E.B. Koffman, “Problem Solving and Program Design in C”, Pearson
Education, Fifth Edition 2007.

Reference books
● B. Stroustrup, “The C++ Programming Language”, 3rd ed., Pearson, 2004.
● R.G. Dromey, “How to Solve it by Computer”, Pearson, 2006.
Evaluation
A tentative distribution of the evaluative components:
● 15% In-class activities (15+ pop quizzes)

● 12% Programming Assignments (about 6-8)

● 8% Programming Labs (about 4)

● 65% Exams (30 midterm + 35 finals)

Late submission policy


● In-class activities: No late submission or make-up is allowed.
● Programming Assignments: 20% penalty for the first 24 hours after the deadline, 40%
for the next 24 hours. Submission will not be accepted after 48 hours of the deadline.
● Late submission is not accepted on any other components.

Make-up policy
● Make-up is allowed only with the IC’s prior approval.
● Make-up will be granted at the IC’s discretion.

Academic misconduct
The fundamental principle that determines the scope of acceptable collaboration is that it is
never permissible to pass off as your own the work of someone else. If you have doubts about
what is appropriate, ask your instructor for a ruling in advance. Violations are surprisingly easy
to detect and they are dealt with according to the institute rules on academic misconduct. All
students are expected to complete the work while observing the institute’s standards for
academic integrity. The term “academic misconduct” includes all forms of student academic
misconduct wherever committed; illustrated by, but not limited to, cases of plagiarism and
dishonest practices in connection with examinations.

A rule of thumb can be: you should be able to fully explain every part of the answer (including
but not limited to a piece of text or code) you have provided for any evaluative component.
Failing this, it will be considered academic misconduct, and the student will be reported.
Any student or a group of students suspected of academic misconduct will be reported to the
Disciplinary Committee.
Course plan
The schedule below is tentative and is subject to change. However, we will cover these topics in
some form or the other.

Lectures Topics References*


1-3 Basics of a Computer - Hardware and Software Notes
Outline of C Syntax, Intuitive notion of a function
4-6 Variables, Datatypes, Operators and Expressions. Notes; T 2
7-11 Control Flow - Conditionals and Loops, Scopes Notes; T 3
12-14 Arrays, Multi-dimensional arrays, Type aliasing Notes
15-18 Functions and Recursion Notes; T 4
19-21 Data Representation Notes; T 5, 9
22-23 User-defined data types - Structures Notes; T 11
24-27 Pointers Notes; T 10
28-29 Dynamic memory allocation Notes; T 14
30-32 File Handling Notes; T 12
32-34 Writing Libraries Notes; T 8
* Notes = class notes. T = textbook; numbers denote chapters in the textbook.

You might also like