Introduction to Computer Science for Math Students  

Introduction to Computer Science for Math Students 2002-2003

Contents:



 

Communications:



Syllabus (material to be covered, not necessarily in this order):

 
Unit Material
unit 1 introduction
unit 2 Basic JAVA concepts: syntax, variables, assignment
unit 3 Flow of control: conditional statements (if-then-else, switch), loops (while, do, for)
units 4,4II Objects and classes: class definition, object references and aliases, instance variables, encapsulation and visibility modifiers, method definition, constructors, passing parameters
unit 5 Arrays and vectors: declaration and use, arrays of objects, multi-dimensional arrays, the Vector class
unit 6 Enhancing classes: visibility modifiers, static methods and variables, method overloading, nested classes
unit 7 Recursion
unit 8 Inheritance and polymorphism: Interface, widening and narrowing, method overriding, protected and final modifiers
unit 9 Enhanced class desing: abstract classes, packages
unit 10 Error handling: run-time errors, exceptions -- throwing, handling, declaring
unit 11 Data structures: abstract data types, queues, stacks, dynamic structures, linked lists
unit 11a Data structures and complexity: trees, binary search trees, hashing functions, quicksort, mergesort
unit 12 Theory of computation: algorithm design - some problems are unsolvable, algorithm efficiency - by factor and by order of magnitude, intractable problems
unit 13 Input/Output streams
unit 14 Computer architecture: hardware building blocks, boolean logic, computer organization, data representation, historical overview
unit 15 Component programming and Graphical User Interface (GUI)

Units cover 3 subjects: basic programming concepts - units 1,2,3,5, object-oriented programming - units 4,6,8,9,10,13,15, and topics in computer science (introduction) - units 7,11,12,14.


 

Lecture Slides:

week
lecture 1 lecture 2
1
unit 0 unit 1
2
unit 2 ---c---
3
unit 3 ---c---
4
unit 4 ---c---
5
unit 4II unit 5
6
unit12 ---c---
7
unit 6 unit 7
8
unit 8 ---c---
9
---c--- unit 9
10
unit 11 unit 11a
11
unit 10 ---c---
12
unit 13 ---c---
13
unit 15 ---c---
14
unit 14 ---c---

Tirgul Slides:

 
Tirgul number
Tirgul Material
Tirgul Description
1 Tirgul 1 Getting to know the environment, course site, email etc.
2 Tirgul 2 reading input from the user, if-else statements, logical operators
3 Tirgul 3 Loops, basics of defining classes
4 Tirgul 4 Defining Classes, documentation in java, memory structure of a program
5 Tirgul 5 Memory - references and aliasing, Complex class example, arrays, command line arguments
6 Tirgul 6 Constructor overview, Two dimensional arrays, multidimensional arrays, the BubbleSort algorithm
7 Tirgul 7 Searching and Sorting complexity analysis: binary search, insertionSort revisited, shell's sort. Matrix operations and the Gram-Schmidt Orthonormaliztion algorithm
8 Tirgul 8 Recursion: fibonacci, backtracking recursions: N-queens, Knight-moves
9 Tirgul 9 Inheritance - the basics: keywords, constructor invocation, overriding, examples.
10 Tirgul 10 Polymorphism, Abstract classes, the java API
11 Tirgul 11 Wrapper Classes, Interfaces, Linked-Lists, Iterators.
12 Tirgul 12 Binary Search Trees, Exceptions.
13 Tirgul 13 StringTokeinzer and parsing Strings, Reading Text files, Extending IO filters.
14 Tirgul 14 What you should know for the exam.