Skip to content

Commit 49bb9be

Browse files
committed
Added Lecture notes for weeks 00 and 01
1 parent 379ee34 commit 49bb9be

16 files changed

+489
-912
lines changed

README.md

+5-57
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
These are the lecture notes for the "Programming Challenges" undergraduate
22
class at the University of Tsukuba.
33

4-
_last change: 2020/05/25 -- Materials for Lecture 1-5 uploaded_
4+
_last change: 2022/04/16 -- Lecture 1 Uploaded
55

66
# Course Outline:
77
In this course, we study several algorithms by solving programming competition
@@ -11,75 +11,23 @@ algorithm knowledge through implementation.
1111
[Class Syllabus](syllabus.md)
1212

1313
## Class curriculum
14-
- **Week01** -- Introduction/Ad Hoc Problems
14+
- **Week00** -- Course Introduction
15+
- [Lecture notes](Week00/week0.pdf)
16+
- **Week01** -- Hint for Programming Challenges
1517
- [Lecture notes](Week01/week1.pdf)
16-
- Video lectures
17-
- Video 1: [Introduction](https://youtu.be/4Y3hG08sohE)
18-
- Video 2: [Course Structure](https://youtu.be/EYP8IiM3uBE)
19-
- Video 3: [Ad hoc problems](https://youtu.be/lvQRNj476d8)
2018
- **Week02** -- Data Structures
21-
- [Lecture notes](Week02/week02.pdf)
22-
- Video lectures
23-
- Video 1: [Motivating Problems](https://youtu.be/nYBfUGQohwg)
24-
- Video 2: [Library Data Structures](https://youtu.be/iAjR-AHIhT0)
25-
- Video 3: [UFDS and Segment Tree](https://youtu.be/UqvHufMqC3c)
2619
- **Week03** -- Search Problems
27-
- [Lecture notes](Week03/week03.pdf)
28-
- Video lectures
29-
- Video 1: [Introduction](https://youtu.be/HvPHk5ulafk)
30-
- Video 2: [Search and Binary Search](https://youtu.be/eQ3x-HuAFdg)
31-
- Video 3: [Greedy and Problem Analysis](https://youtu.be/FU6KJt5r24g)
3220
- **Week04** -- Dynamic Programming
33-
- [Lecture notes](Week04/week04.pdf)
34-
- Video lectures
35-
- Video 1: [Introduction](https://youtu.be/i1nVOezbCII)
36-
- Video 2: [Classical DP Problems](https://youtu.be/GRn5JYrhBl4)
37-
- Video 3: [Conclusion](https://youtu.be/eTlDctTz8Dw)
3821
- **Week05** -- Graphs Problems I
39-
- [Lecture notes](Week05/week05.pdf)
40-
- Video lectures
41-
- Video 1: [Introduction](https://youtu.be/fVl5UpMw-dk)
42-
- Video 2: [Graph Problems](https://youtu.be/x4yWTT3u9so)
43-
- Video 3: [Articulation Points and MST](https://youtu.be/_8JgqArbEg0)
4422
- **Week06** -- Graphs Problems II
45-
- [Lecture notes](Week06/week06.pdf)
46-
- Video lectures
47-
- Video 1: [Single Source Shortest Path](https://youtu.be/Y7IwtVSuaDY)
48-
- Video 2: [All Pairs Shortest Path](https://youtu.be/D3NDe14Wb5k)
49-
- Video 3: [Maximum Flow](https://youtu.be/sl6rpJa5VD4)
5023
- **Week07** -- String Manipulation
51-
- [Lecture notes](Week07/week07.pdf)
52-
- Video lectures
53-
- Video 1: [Introduction](https://youtu.be/F3X5jjfGeGg)
54-
- Video 2: [String Matching](https://youtu.be/8Nb9T3eZrBQ)
55-
- Video 3: [DP and Trie](https://youtu.be/pgSmhAbPkv4)
5624
- **Week08** -- Math Problems
57-
- [Lecture notes](Week08/week08.pdf)
58-
- Video lectures
59-
- Video 1: [Introduction](https://youtu.be/iw7KdaYcWiw)
60-
- Video 2: [Prime Factors](https://youtu.be/qNACw0XJ6qM)
61-
- Video 3: [Catalan Numbers](https://youtu.be/4a4ZStdZ6vc)
6225
- **Week09** -- Geometry Problems
63-
- [Lecture notes](Week09/week09.pdf)
64-
- Video lectures
65-
- Video 1: [Introduction](https://youtu.be/cZlk37u6YYM)
66-
- Video 2: [Circles](https://youtu.be/nWueSZ3kfWk)
67-
- Video 3: [Convex Hull](https://youtu.be/Y3W2IdQSfD0)
6826
- **Week10** -- Final Problem Remix
69-
- [Lecture notes](Week10/week10.pdf)
70-
- Video lectures
71-
- Video 1: [Introduction](https://youtu.be/f7JvOsGIH-A)
72-
- Video 2: [Binary Search + Alpha](https://youtu.be/0NHsByIBt7A)
7327

74-
# Links:
75-
* [Online Judge](http://onlinejudge.org/) -- Use this site to test your submissions
76-
* [Class Monitor](uMonitor/monitor.html) -- Use this
77-
website to see links for specific problems and your submission status
78-
* [Manaba Webpage](https://manaba.tsukuba.ac.jp/ct/course_1322213) -- manaba system
79-
for accessing class material and submit reports (only for Tsukuba University Students - Self registration code 2020: 6910967)
8028

8129
# References:
8230

8331
## Books
84-
* [Competitive Programming (3rd Edition)](http://cpbook.net/) by Steven Halim -- Textbook for this lecture.
32+
* [Competitive Programming (4th Edition)](http://cpbook.net/) by Steven Halim -- Textbook for this lecture.
8533
* [Programming Challenges](http://www.programming-challenges.com/pg.php?page=index) by Steven Skiena -- Another useful reference.

TODO.md

+9-17
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
1-
# This year:
2-
## Javascript monitor:
3-
- [ ] Change problem links to replace "com_onlinejudge" to "onlinejudge"
4-
- [ ] Add the number of times a student submitted each problem
5-
(total submissions / submissions before accepted)
6-
- [ ] Add a "Number of students that solved X problems" for each week
7-
- [ ] Add a "Solutions/Submissions" per language per problem.
8-
- [ ] Add a view of "top students" (total submissions, and penalty score)
9-
- [ ] Add a final report mode for teacher
10-
11-
# Future
12-
## General
13-
- [ ] Remake videos using scripts
14-
- [ ] Add "save to local storage" option to umonitor
15-
16-
## Week 2: Data Structure
17-
- [ ] Remove problem "Football (aka Soccer)"
1+
# 2022:
2+
## Week 1:
3+
- [X] Write section about using Kattis
4+
- [ ] Improve "test your program" section (Book 1.3.5)
5+
- Sections: Course Intro, Using Kattis, Basic Info (Book 1.3, 1.5, etc)
186

197
## Week 3: Search
208
- [ ] Add example on permutation search with bitmask (cinema sitting problem)
219
- [ ] Add slide explaining LIS solution with Greedy
10+
11+
# 2023:
12+
## General
13+
- [ ] Write Scripts for Videos

Week00/LecturePlan.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Week 0: Technical details of the course
2+
=======================================

Week01/classadmin.tex renamed to Week00/classadmin.tex

+43-70
Original file line numberDiff line numberDiff line change
@@ -1,124 +1,116 @@
11

2-
\section{Class System}
2+
\section{Course System}
33
\subsection{Outline}
44

55
\begin{frame}
66
\centering
77
{\huge
8-
Week 1 -- Part 2: How this lecture is organized
8+
How the course is organized
99
}
1010
\end{frame}
1111

1212
\begin{frame}
1313
\frametitle{Outline}
1414
\begin{enumerate}
15-
\item Class Schedule
16-
\item Class Materials
15+
\item Course Schedule
16+
\item Course Materials
1717
\item How to submit problems
1818
\item Grading
1919
\item Office Hours and Teacher Communication
20-
\item \alert{Special} Distance Learning in 2020
2120
\end{enumerate}
2221
\end{frame}
2322

24-
\subsection{Class Schedule}
23+
\subsection{Course Schedule}
2524
\begin{frame}{What you will do every week}
2625
\begin{description}[(manaba)]
2726
\item[(manaba)] Get the week PDF and study the lecture;
2827
\medskip
2928
\item[(manaba)] Watch the lecture video;
3029
\medskip
31-
\item[(URI)] Check the Programming Homework Exercises;
30+
\item[(kattis)] Check the Programming Homework Exercises;
3231
\medskip
33-
\item[(TEAMS)] Ask questions to the professor;
32+
\item[(TEAMS/3C205)] Ask questions to the professor / Write your programs;
3433
\medskip
35-
\item[(URI)] Submit your programs at the URI page;
34+
\item[(kattis)] Submit your programs at the URI page;
3635
\medskip
37-
\item[(manaba)] Complete the Homework Survey;
36+
\item[(manaba)] Write the attendance survey;
3837
\end{description}
3938
\end{frame}
4039

41-
\begin{frame}{Class Dates and Deadlines}
42-
\begin{block}{Class Dates}
40+
\begin{frame}{Course Dates and Deadlines}
41+
\begin{block}{Course Dates}
4342
\begin{itemize}
44-
\item 4/13, 4/20, 4/27, 5/11, 5/18, 5/25, 6/1, 6/8, 6/15, 6/22;
43+
\item 4/19, 4/26, \alert{\bf 5/6}, 5/10, 5/17, 5/31, 6/7, 6/14, 6/21, 6/28;
4544
\item No final exam;
46-
\item On-demand lecture + Office hours on Tue-34;
45+
\item Office hours on Tue 12:15 to 15:00 (3C205 and TEAMS);
4746
\end{itemize}
4847
\end{block}
4948
\begin{block}{Deadlines}
5049
\begin{itemize}
51-
\item The deadline for homework: {\bf Monday every week}
52-
\item The deadline for late homework: 7/5 (one extra week)
53-
\item Final Grades will be published around 7/9
50+
\item The deadline for homework: {\bf 1 Week, 23:00}
51+
\item The deadline for late homework: 7/11
52+
\item Final Grades will be published around 7/15
5453
\end{itemize}
5554
\end{block}
5655
Dates subject to changes.
5756
\end{frame}
5857

59-
\subsection{Class Materials}
58+
\subsection{Course Materials}
6059
\begin{frame}{Where to find the material?}
61-
\begin{block}{manaba and streams}
60+
\begin{block}{manaba}
6261
\begin{itemize}
63-
\item Official place for lecture materials and links;
62+
\item Official place for lecture material and videos;
6463
\item Use Forum for questions;
6564
\item Please read announcements; Please answer surveys;
66-
\item Self-registration Code for non-credit students: 4754254
6765
\end{itemize}
6866
\end{block}
6967
\begin{block}{github}
7068
\begin{itemize}
7169
\item Lecture materials is also available on github:
7270
\item URL: \url{https://caranha.github.io/Programming-Challenges/}
7371
\item Not-official. Includes material from last year.
74-
\item Access if manaba is not available.
72+
\item manaba is the official version
7573
\end{itemize}
7674
\end{block}
7775
\end{frame}
7876

79-
\begin{frame}{Websites for the programming homework}
80-
\begin{block}{URI Online Judge -- check / submit howework here}
77+
\begin{frame}{Websites to submit homework}
78+
\begin{block}{kattis online judge}
8179
\begin{itemize}
82-
\item \url{https://www.urionlinejudge.com.br}
83-
\item Discipline {\bf ID: 007272} (name: Programming Challenges, Spring 2021)
84-
\item Key: {\bf B8xVp9O}
85-
\bigskip
86-
87-
\item {\bf Important!}
88-
\item After you create your account, submit the "ID survey" in manaba;
89-
\item After you complete each homework, submit the "Homework survey" in manaba;
80+
\item \url{https://tsukuba.kattis.com}
81+
\item Please create an account here.
82+
\item See the kattis video for more information
9083
\end{itemize}
9184
\end{block}
92-
For more information about how to use URI, please see the "URI Howto" video, or read the outline on manaba
9385
\end{frame}
9486

9587
\begin{frame}{About Course Language}
9688
\begin{block}{Natural Language}
9789
\begin{itemize}
98-
\item Weekly Materials and Homework: English
99-
\item Weekly Video and manaba: Japanese
100-
\item E-mail, feedback: Any language you want;
90+
\item Materials and Homework: English
91+
\item Video and manaba: Japanese
92+
\item E-mail, feedback: English/Japanese;
10193
\item If you want to help me translate the homework, contact me!
10294
\end{itemize}
10395
\end{block}
10496

10597
\begin{block}{Programming Language}
10698
\begin{itemize}
107-
\item Officially, we only support C and C++;
108-
\item The Judge accepts: C, C++, Java, Python;
109-
\item If you want to use another language, contact me; No promises.
99+
\item The Judge accepts: C, C++, Java, Python, Ruby;
100+
\item The teacher helps with: C, C++, Java, Python;
101+
\item If you want to use another language, contact me;
110102
\end{itemize}
111103
\end{block}
112104
\end{frame}
113105

114106
\begin{frame}{Reference Books}
115107
Textbook:
116108
\begin{itemize}
117-
\item {\bf textbook:} Steven Halim, Felix Halim,"Competitive Programming", 3rd edition. \url{https://cpbook.net/}
109+
\item {\bf textbook:} Steven Halim, Felix Halim,"Competitive Programming", 4th edition. \url{https://cpbook.net/}
118110
\end{itemize}
119111
\bigskip
120112

121-
Other references:
113+
Other books:
122114
\begin{itemize}
123115
\item Steven S. Skiena, Miguel A. Revilla,"Programming Challenges", Springer, 2003
124116
\item 秋葉拓哉、 岩田陽一、 北川宜稔,『プログラミングコンテストチャレンジブック』
@@ -130,47 +122,28 @@ \subsection{Class Materials}
130122
\subsection{Grading}
131123
\begin{frame}{Grading Rules}{Base Grade}
132124

133-
Your {\bf base grade} is based on the \structure{number of accepted homework programs} you submit:
125+
Your {\bf base grade} is based on the {\bf number of accepted homework programs} you submit:
134126

135127
\begin{itemize}
136-
\item {\bf A grade:} 4+ accepted minimum every week;
137-
\item {\bf B grade:} 3+ accepted minimum every week;
138-
\item {\bf C grade:} 2+ accepted minimum every week;
139-
\item {\bf D grade:} less than 2 accepted every week.
128+
\item {\bf A+ grade:} 6+ accepted problems every week;
129+
\item {\bf A grade:} 4+ accepted problems every week;
130+
\item {\bf B grade:} 3+ accepted problems every week;
131+
\item {\bf C grade:} 2+ accepted problems every week;
140132
\end{itemize}\bigskip
141133

142134
\begin{alertblock}{Important!!}
143135
\begin{itemize}
144-
\item Only "Accepted" programs count. "Wrong Answer", "Time limit" does not count;
145-
\item The number above is {\bf minimum every week}. NOT AVERAGE.
136+
\item Every week means "every week";
137+
\item Every week {\bf does not mean} "average";
138+
\item You can submit problems late, but there is a penalty;
146139
\end{itemize}
147140
\end{alertblock}
148141
\end{frame}
149142

150-
\begin{frame}{Grading Rules}{Best Bonus}
151-
For each grade group, 10\% of the students with the {\bf most total problems}
152-
receive a bonus grade. The bonus grade raise 1 step: C to B, B to A, A to A+, etc.
153-
154-
\begin{block}{Example:}
155-
15 students are in base grade A (4 problems per week):
156-
\begin{itemize}
157-
\item 8 students with 40 problems
158-
\item 1 student with 41 problems
159-
\item 2 students with 50 problems
160-
\item 1 student with 65 problems
161-
\item 3 students with 72 problems
162-
\end{itemize}\bigskip
163-
164-
The 3 students with 72 problems increase their grade from A to A+.
165-
\end{block}
166-
\end{frame}
167-
168-
169143
\begin{frame}{Grading Rules}{Late Penalty}
170-
If you do not meet the deadline, you can submit your homework after the deadline.
171-
If you submit too many programs after the deadline, you will receive a grade penalty.\bigskip
144+
You can submit problems late. But there is a penalty.\bigskip
172145

173-
If the number of late programs $\ge$ 25\% of total programs, your grade will lower 1 step.\bigskip
146+
If the number of {\bf total late programs} $\ge$ 25\% of total programs, your grade will lower 1 step.\bigskip
174147

175148
{\bf You will not fail the course for late programs.}
176149

0 commit comments

Comments
 (0)