This repository was archived by the owner on Mar 20, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathREADME
More file actions
111 lines (75 loc) · 4.58 KB
/
README
File metadata and controls
111 lines (75 loc) · 4.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
WHO AM I
--------------------------------------------------------------------------------
My name is Pang Yan Han. I am currently (September 2011) a second year
undergraduate at the National University of Singapore. I am a Computer Science
major specializing in Algorithms.
WHAT IS THIS REPOSITORY + BACKGROUND
--------------------------------------------------------------------------------
This repository contains code, slides and notes of my own creation for an
undergraduate module "CS2010 - Data Structures and Algorithms II", conducted at
the National University of Singapore in Academic Year 2011/2012, Semester 1,
where I was a lab TA.
Lab sessions take up 1 hour per week and are more of a "mini lecture" style than
"get your hands dirty" style.
My friend and colleague, Shubham Goyal, has kindly provided his solutions to
some UVa Online Judge problems we discussed in our lab sessions.
RATIONALE
--------------------------------------------------------------------------------
Taking into account the average results of the cohort taking the module, lab
sessions have to cover a select subset of the Java API used to solve the weekly
Problem Sets for the module.
However, I was unsatisfied doing that. I thought that the Java API was very
well documented, and did not require the full 1 hour lab to cover. Spending the
entire session covering the Java API may also douse the students' interest in
algorithms.
The recent news (as of late August 2011 to early September 2011) that the
School of Computing's premiere introductory programming module -
"CS1101S - Programming Methodology" - would be switching from using Scheme as a
teaching language to JavaScript from next year onwards - devastated me.
I was seeing the soul of Computer Science being ripped out, as curriculums are
being dumbed down. Instead of having to go through concepts in SICP using
Scheme, people are using Python / Java which are arguably, not as good teaching
languages as Scheme. Instead of implementing data structures and algorithms in C
where one has to deal with pointers and is bound to get segmentation faults,
it's now done in Java, a language which does not have the concept of a pointer.
And right now, the same thing is happening right in front of my eyes.
And the worst part was that there was nothing I could do about it.
But I could do something about CS2010. I set out to cover extra things in the
lab session on top of what I was supposed to cover for the Java API part, which
led to the creation of this repository.
This was done with the approval of my Professor, Dr. Steven Halim. He kindly
accepted me and my colleague's (Shubham Goyal) proposal to cover extended
material during the weekly lab sessions.
SO WHAT'S IN HERE
--------------------------------------------------------------------------------
As stated above, slides + code + notes of what I cover in lab sessions
In addition, solutions to some of the UVa Online Judge problems discussed
during our lab sessions can be found in the "uva" folder.
Many students specifically request more code for algorithms covered in the
module. So here they are!
RECEPTION
--------------------------------------------------------------------------------
I received a lukewarm response to this extended material coverage during labs.
Maybe students do not like to show their emotions? Nevertheless, I have learnt
a lot preparing the code (especially) and slides for each lab session.
COPYING
--------------------------------------------------------------------------------
This repository's code and slides are released under the MIT License.
See the COPYING file for more details.
HOPE FOR THE FUTURE
--------------------------------------------------------------------------------
Perhaps future tutors from CS1020, CS2010 and CS2020 can draw inspiration from
the content here. You are welcome to make use of the materials in this
repository in whatever way you want.
With regards to code, I will ensure a certain level of correctness and
readability.
However, understanding the code is your job.
CREDITS
--------------------------------------------------------------------------------
I would like to thank my Professor, Dr. Steven Halim, for granting me the
permission to cover extended material during lab sessions. He has been a very
supportive mentor and inspired me to learn more about algorithms through the
creative use of UVa problems in CS2020, a similar algorithms module I took.
I would also like to thank my colleague, Shubham Goyal, who has been a great
help and friend to me. Without a colleague with similar motivations, I would
probably have less conviction in pushing this through.