Course info
Instructor: Mohammad Sarraf Joshaghani (m.sarraf.j@rice.edu)
Location and Time: DCH 1075, 11:00-11:50 am Monday-Wednesday-Friday
Office hours: DCH 2001, Wed 12-2pm
Graders: Cito Balsells (Cito.Balsells@rice.edu) and Philip Wu (philip.wu@rice.edu)
Syllabus: syllabus.pdf
Notes
Tentative schedule
- 8/25: introduction to the course Setting up linux environment
- 8/27: linux operating systems and installing virtual box
- 8/30: terminal commands (When?, what?, where?, who?)
- 8/1: review Linux man page and file system
- 9/3: data processing, pipes and redirects us-states.csv
- 9/6: no class (Labor day)
- 9/8: grep and find
- 9/10: wild cards and more data processing
- 9/13: vim editor; HW1 posted!
- 9/15: vim plugins and dot files .vimrc_minimal, .vimrc , .tmux.conf
- 9/17: ssh, data transfer, archiving
- 9/20: bash programming 101
- 9/22: bash programming 101
- 9/24: bash programming recap bash_recap.pdf
- 9/27: version control and git 101
- 9/29: version control and git 101
- 10/01: version control and git 101 git_practice.pdf
- 10/04: scientific typesetting I
- 10/06: scientific typesetting II LaTeX_practice.pdf
- 10/08: introduction to the C programming language. hello_world.c
- 10/11: no class (midterm recess).
- 10/13: binary representation. processors.c, sizeof.c, value ranges.c, foo.c, variables.c
- 10/15: auto, const, static, extern keywords. defVsDecl, autoVsStatic.c, localVsGlobal.c, static.c
- 10/18: multiple files, external arguments. multiple_files, arguments.c
- 10/20: pointer arithmetic and type. typePointer.c
- 10/22: pointers and arrays. callByRef.c, CallByVal.c, arrayStart.c, arraySum.c
- 10/25: strings and pointers, and multi-dimensional arrays. char1.c, char2.c
- 10/27: multi-dimensional arrays continued and stack vs. heap. 3DArray.c
- 10/29: pointer to array and arrays of pointer. PointerToArray.c, arrayOfPointers.c, arrayOfPointers2.c
- 11/01: dynamic memory continued. Dynamic.c, Dynamic2D_method1.c, Dynamic2D_method2.c, Dynamic2D_method3.c
- 11/03: function pointer, memory leak, gdb, and Valgrind. pointerToFunction.c, factorial.c
- 11/05: no class (conference travel).
- 11/08: Valgrind continued and structs memory.c, struct.c
- 11/10: Makefile Makefile, gd.c, gd.h, geom.c, tip.c
- 11/12: example of struct for vectors.
- 11/15: file io and intro to Fortran. fh1.c, fh2.c, fh3.c, fh4.c, Hello.f90, array.f90, variable.f90, and float.f90
- 11/17: Fortran subroutine, function, and module. main.f90, func.f90, print_matrix.f90, main2.f90, mods.f90, and Makefile
- 11/19: combining Fortran and C, and blas and lapack libraries. c_fortran_main.c, fortran_functions.f90, solveByLapack.f90, runLapack.sh, proto_lapack.h, and c_lapack_main.c
- 11/22: intro to C++. simple_io.cpp, nameSpace.cpp, OPP.cpp, Encapsulation.cpp, and consAndDestructors.cpp
- 11/24-11/26: no class (Thanksgiving recess).
- 11/29: C++ inheritance and virtual class, this pointer, friend and operator keywords. Abstraction.cpp, Virtual.cpp, Virtual2.cpp, Inheritence.cpp, Inheritence2.cpp, this.cpp, friend.cpp, OverloadinOperators.cpp, OverloadinOperators2.cpp, setInheritance.cpp, derived_class.cpp, derived_class_comp.cpp, derived_class_comp.h, my_vec.h, my_vec.cpp, and main_my_vec.cpp
- 12/1: templating functions and classes, abstract classes, and polymorphism in c++. swapTemplate.cpp, classTemplate.cpp, twoArgsTemplate.cpp, AbstractClass.cpp, template.cpp, template_main.cpp, template.h, template_spec.h and template_spec_main.cpp
- 12/3: combining Fortran and C++ and dynamic memory allocation in c++ (last session). exceptions.cpp, main.cpp, functions_f.f90
Homeworks