Vancouver Island University
The VIU community acknowledges and thanks the Snuneymuxw, Quw'utsun, Tla'amin, Snaw-naw-as and Qualicum First Nations on whose traditional lands we teach, learn, live and share knowledge.
CSCI 159: Introduction to Computer Science I
Course Outline
Fall 2024
Calendar Description
CSCI 159 (4) Introduction to Computer Science I
A first year course in computer science.
Topics include structured programming, top-down program design, procedures, recursion,
and an introduction to dynamic data structrues. (3:0:2)
Prerequsites: Pre-calculus 12 or Math 152 or equivalent.
Contact Information
- Lecturer: Gara Pruesse
- Office: Building 315 Room 218
- Email: Gara dot Pruesse at viu dot ca
- Course web site: csci.viu.ca/~gpruesse/teaching/159
- Office Hours:
Instruction Time and Place
-
Lab N05: Bldg 315 Room 102 Tuesdays 2:30-4:30
Lab N06: Bldg 315 Room 102 Wednesdays 11:30-1:30
-
Lecture: Bldg 470 Room 111 Tue Thu 10:00-11:30
Assessment
-
Labs exercises 36%
-
Lab quizzes: 25%
-
Final Exam -- 39%
- To pass the course you must pass the final exam.
Topics:
-
Introduction to Program Design
-
Computer Basics
-
Variables, Constants and Expressions
-
Data and Data types
-
Input and Output
- Conditions and Conditional Statements
- Boolean Expressions
if
statements
switch ...case
statements
- Nested Conditionals
- Iterated (Loop) Statements
While
statements
For
statements
do ... while
statements
- Nested loops
- Functions
-
Library functions
-
Invoking (calling) a function
-
Declaring a function -- function prototypes
-
Writing a function
-
Return a value
-
Variable scope (local vs global)
-
Parameters
-
Pass-by-value parameters
-
Pass-by-reference parameters
-
Recursion
-
Introduction to Arrays
-
One-dimensional arrays
-
Indexing into an array
-
Range of index values
-
Multi-dimensional arrays
-
Array as parameters or arguments
-
Sorted vs Unsorted arrays
-
Array applications
-
Characters and Character Strings
-
Basic File Operations
-
struct
structures
-
struct
fields and their access
-
struct
variables as arguments
struct
s as return types
Pointers
- Addresses
- Indirect Access Operations
-
Linked Lists
-
Basic node structures
-
Types of linked lists
-
Linked list operations:
-
Linked list applications
Learning Outcomes
-
Analyze and explain the behaviour of simple programs involving the fundatmental programming constructs
including variables, expressions, assignments, I/O, control constructs, functions, parameter passing, and recursion.
-
Identify and describe uses of primitive data types.
- Write programs that use primitive data types.
- Modify and expand short programs that use standard conditional and iterative control structures
and functions.
-
Design, implement, test, and debug a program that uses each of the following
fundamental programming constructs:
basic computation, simple I/O, standard conditional and iterative structures,
function definition and call, parameter passing, constants and enumerated types.
-
Utilize recursion effectively in a program.
-
Write programs that use the following data types: arrays, structs, strings.
-
Write programs that use ointers for dynamic memory allocation and release.
-
Apply consistent docuemtation and program style standards that constribute to the
readability and mainatainability of software.
-
Describe the concept of wild and dangling pointers and the risks associated ith them.
-
Describe the condept of dynamic data structures and their use.
Labs
You must be enrolled in and attend your weekly lab session, during which you will work on
applying the concepts discussed in the lectures.
Each lab session will include a programming component to be
completed and submitted the following week.
Details on lab requirements, submission rocess, and late penalties will be discussed
in the labs and outlined on the course website.
Computer accounts
To work on your tutorials and assignments, you will
be given accounts for the computing science labs.
There is a user id and password associated with each account
(to prevent others from reading your mail).
The appropriate use of these accounts will be discussed in your
first tutorial.
Appeals of Grades:
Any exercise or examination grade may be appealed. However, the
appeal must be made to the instructor, in writing and attached to the
work in question, and within 7 days of the graded work being returned or available.
The instructor reserves the right to re-grade
the entire piece of work submitted on appeal, not necessarily
just the component that the student believes is in error.
Grade Conversion:
The following scale will
be used.
90-100 |
85-<90 |
80-<85 |
76-<80 |
72-<76 |
68-<72 |
64-<68 |
60-<64 |
55-<60 |
50-<55 |
<50 |
A+ |
A |
A- |
B+ |
B |
B- |
C+ |
C |
C- |
D |
F |
Guidelines Concerning Fraud
Students are encouraged to refer to Policy 96.01 regarding fraud.
Standards of academic integrity include, but are not limited to:
- Independently producing work submitted under one's own name;
- Properly and appropriately referencing all work;
- identifying all collaborators in work;
- Completing examinations without offering or receiving assistance, excepting those students
requiring assistance due to a documented disability;
- Respecting the integrity of examination materials and/or the examination process;
- Respecting the integrity of technological systems, software copyrights, and file
privacy of others.
Standards of fraud and/or academic integrety are violated when:
- a student presents another's work as
his or her own, or allows another to do so.
As fraud invalidates the evaluation of a student's progress,
it is the duty of instructors
assistants to take measures
to prevent fraud and to be vigilant towards symptoms of fraud.
Students are nonetheless encouraged to discuss the material of the course together.
Students may discuss assignments but no written material or record of any kind
shall leave such discussions with any party.
This includes emails and texts -- by their nature, they leave a written record, so are not permitted.
All submitted work in this course is to be executed individually.
You must understand your submitted work; if you don't, it cannot
be considered your work, and you grade on the work can be
changed accordingly.
[Confused? You can always talk to your instructor if you are
in doubt about whether academic integrity has been upheld. I recognize
that sometimes our best learning happens when we interact with others.
The general rule is: talk with others, write on the board together
to exchange ideas, but then erase/throw away all jointly generated
materials -- leave the interaction ONLY with a changed brain. Do
not look at or refer to any jointly generated materials.]
As in all academic endeavour, due credit must be given to
all reference material. Students should consult the
course instructor if they are not certain which
outside material is appropriate for use in a course.
- In case fraud is detected, credit is withheld
from the work affected. The students involved are
reported to the department chair and Dean of Science and Technology,
who may take additional
disciplinary action commensurate with the severity of the
fraud and the past records of the students.