├── .husky
└── pre-commit
├── bun.lockb
├── WEB
├── guide-httpd.pdf
└── httpd.conf
├── .prettierrc
├── package.json
├── .github
└── workflows
│ └── format.yml
├── CONTRIBUTING.md
├── .gitignore
├── LICENSE
└── README.md
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | bunx lint-staged
2 |
--------------------------------------------------------------------------------
/bun.lockb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Imtjl/2nd-year-guide/HEAD/bun.lockb
--------------------------------------------------------------------------------
/WEB/guide-httpd.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Imtjl/2nd-year-guide/HEAD/WEB/guide-httpd.pdf
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "proseWrap": "always",
3 | "useTabs": true,
4 | "singleQuote": false
5 | }
6 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "formatting",
3 | "devDependencies": {
4 | "@types/bun": "latest",
5 | "husky": "^9.1.4",
6 | "lint-staged": "^15.2.8",
7 | "prettier": "^3.3.3"
8 | },
9 | "lint-staged": {
10 | "*.md": "prettier --write"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/.github/workflows/format.yml:
--------------------------------------------------------------------------------
1 | name: Prettier Check
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | pull_request:
8 | branches:
9 | - main
10 |
11 | jobs:
12 | prettier-check:
13 | runs-on: ubuntu-latest
14 |
15 | steps:
16 | - name: Checkout repository
17 | uses: actions/checkout@v2
18 |
19 | - name: Set up Bun
20 | uses: oven-sh/setup-bun@v1
21 | with:
22 | bun-version: latest
23 |
24 | - name: Install dependencies
25 | run: bun install
26 |
27 | - name: Run Prettier
28 | run: bun x prettier --check "**/*.md"
29 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to the Project
2 |
3 | - [RU](#RU)
4 | - [EN](#EN)
5 |
6 |
7 |
8 | Thank you for your interest in contributing to this project! Here are some
9 | guidelines to help you get started.
10 |
11 | ## Markdown Formatting with Prettier
12 |
13 | This project uses [Prettier](https://prettier.io/) to automatically format
14 | Markdown files.
15 |
16 | ## Setup
17 |
18 | 0. **Fork this repository**
19 |
20 | 1. **Clone your forked repository:**
21 |
22 | ```bash
23 | git clone https://github.com/yourusername/your-repo.git
24 | cd your-repo
25 | ```
26 |
27 | 2. **Install [Bun](https://bun.sh/docs/installation)** (a.k.a. faster npm)
28 |
29 | 3. **Install dependencies:**
30 |
31 | ```bash
32 | bun install
33 | ```
34 |
35 | Now Prettier will automatically format Markdown files on each commit. This is
36 | done using Husky and lint-staged.
37 |
38 | If you want to manually use prettier, run:
39 |
40 | ```bash
41 | bun x prettier --write "**/*.md"
42 | ```
43 |
44 | Enjoy!
45 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore
2 |
3 | # Logs
4 |
5 | logs
6 | _.log
7 | npm-debug.log_
8 | yarn-debug.log*
9 | yarn-error.log*
10 | lerna-debug.log*
11 | .pnpm-debug.log*
12 |
13 | # Caches
14 |
15 | .cache
16 |
17 | # Diagnostic reports (https://nodejs.org/api/report.html)
18 |
19 | report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
20 |
21 | # Runtime data
22 |
23 | pids
24 | _.pid
25 | _.seed
26 | *.pid.lock
27 |
28 | # Directory for instrumented libs generated by jscoverage/JSCover
29 |
30 | lib-cov
31 |
32 | # Coverage directory used by tools like istanbul
33 |
34 | coverage
35 | *.lcov
36 |
37 | # nyc test coverage
38 |
39 | .nyc_output
40 |
41 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
42 |
43 | .grunt
44 |
45 | # Bower dependency directory (https://bower.io/)
46 |
47 | bower_components
48 |
49 | # node-waf configuration
50 |
51 | .lock-wscript
52 |
53 | # Compiled binary addons (https://nodejs.org/api/addons.html)
54 |
55 | build/Release
56 |
57 | # Dependency directories
58 |
59 | node_modules/
60 | jspm_packages/
61 |
62 | # Snowpack dependency directory (https://snowpack.dev/)
63 |
64 | web_modules/
65 |
66 | # TypeScript cache
67 |
68 | *.tsbuildinfo
69 |
70 | # Optional npm cache directory
71 |
72 | .npm
73 |
74 | # Optional eslint cache
75 |
76 | .eslintcache
77 |
78 | # Optional stylelint cache
79 |
80 | .stylelintcache
81 |
82 | # Microbundle cache
83 |
84 | .rpt2_cache/
85 | .rts2_cache_cjs/
86 | .rts2_cache_es/
87 | .rts2_cache_umd/
88 |
89 | # Optional REPL history
90 |
91 | .node_repl_history
92 |
93 | # Output of 'npm pack'
94 |
95 | *.tgz
96 |
97 | # Yarn Integrity file
98 |
99 | .yarn-integrity
100 |
101 | # dotenv environment variable files
102 |
103 | .env
104 | .env.development.local
105 | .env.test.local
106 | .env.production.local
107 | .env.local
108 |
109 | # parcel-bundler cache (https://parceljs.org/)
110 |
111 | .parcel-cache
112 |
113 | # Next.js build output
114 |
115 | .next
116 | out
117 |
118 | # Nuxt.js build / generate output
119 |
120 | .nuxt
121 | dist
122 |
123 | # Gatsby files
124 |
125 | # Comment in the public line in if your project uses Gatsby and not Next.js
126 |
127 | # https://nextjs.org/blog/next-9-1#public-directory-support
128 |
129 | # public
130 |
131 | # vuepress build output
132 |
133 | .vuepress/dist
134 |
135 | # vuepress v2.x temp and cache directory
136 |
137 | .temp
138 |
139 | # Docusaurus cache and generated files
140 |
141 | .docusaurus
142 |
143 | # Serverless directories
144 |
145 | .serverless/
146 |
147 | # FuseBox cache
148 |
149 | .fusebox/
150 |
151 | # DynamoDB Local files
152 |
153 | .dynamodb/
154 |
155 | # TernJS port file
156 |
157 | .tern-port
158 |
159 | # Stores VSCode versions used for testing VSCode extensions
160 |
161 | .vscode-test
162 |
163 | # yarn v2
164 |
165 | .yarn/cache
166 | .yarn/unplugged
167 | .yarn/build-state.yml
168 | .yarn/install-state.gz
169 | .pnp.*
170 |
171 | # IntelliJ based IDEs
172 | .idea
173 |
174 | # Finder (MacOS) folder config
175 | .DS_Store
176 |
--------------------------------------------------------------------------------
/WEB/httpd.conf:
--------------------------------------------------------------------------------
1 | ServerRoot "/usr/local"
2 |
3 |
4 | Mutex default:/home/studs/s409463/httpd-root/mutex-dir/
5 |
6 | Listen 24478
7 |
8 |
9 | LoadModule authn_file_module libexec/apache24/mod_authn_file.so
10 | #LoadModule authn_dbm_module libexec/apache24/mod_authn_dbm.so
11 | #LoadModule authn_anon_module libexec/apache24/mod_authn_anon.so
12 | #LoadModule authn_dbd_module libexec/apache24/mod_authn_dbd.so
13 | #LoadModule authn_socache_module libexec/apache24/mod_authn_socache.so
14 | LoadModule authn_core_module libexec/apache24/mod_authn_core.so
15 | LoadModule authz_host_module libexec/apache24/mod_authz_host.so
16 | LoadModule authz_groupfile_module libexec/apache24/mod_authz_groupfile.so
17 | LoadModule authz_user_module libexec/apache24/mod_authz_user.so
18 | #LoadModule authz_dbm_module libexec/apache24/mod_authz_dbm.so
19 | #LoadModule authz_owner_module libexec/apache24/mod_authz_owner.so
20 | #LoadModule authz_dbd_module libexec/apache24/mod_authz_dbd.so
21 | LoadModule authz_core_module libexec/apache24/mod_authz_core.so
22 | LoadModule access_compat_module libexec/apache24/mod_access_compat.so
23 | LoadModule auth_basic_module libexec/apache24/mod_auth_basic.so
24 | #LoadModule auth_form_module libexec/apache24/mod_auth_form.so
25 | #LoadModule auth_digest_module libexec/apache24/mod_auth_digest.so
26 | #LoadModule allowmethods_module libexec/apache24/mod_allowmethods.so
27 | #LoadModule file_cache_module libexec/apache24/mod_file_cache.so
28 | #LoadModule cache_module libexec/apache24/mod_cache.so
29 | #LoadModule cache_disk_module libexec/apache24/mod_cache_disk.so
30 | #LoadModule cache_socache_module libexec/apache24/mod_cache_socache.so
31 | LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
32 | #LoadModule socache_dbm_module libexec/apache24/mod_socache_dbm.so
33 | #LoadModule socache_memcache_module libexec/apache24/mod_socache_memcache.so
34 | #LoadModule watchdog_module libexec/apache24/mod_watchdog.so
35 | #LoadModule macro_module libexec/apache24/mod_macro.so
36 | #LoadModule dbd_module libexec/apache24/mod_dbd.so
37 | #LoadModule dumpio_module libexec/apache24/mod_dumpio.so
38 | #LoadModule buffer_module libexec/apache24/mod_buffer.so
39 | #LoadModule ratelimit_module libexec/apache24/mod_ratelimit.so
40 | LoadModule reqtimeout_module libexec/apache24/mod_reqtimeout.so
41 | #LoadModule ext_filter_module libexec/apache24/mod_ext_filter.so
42 | #LoadModule request_module libexec/apache24/mod_request.so
43 | #LoadModule include_module libexec/apache24/mod_include.so
44 | LoadModule filter_module libexec/apache24/mod_filter.so
45 | #LoadModule substitute_module libexec/apache24/mod_substitute.so
46 | #LoadModule sed_module libexec/apache24/mod_sed.so
47 | #LoadModule deflate_module libexec/apache24/mod_deflate.so
48 | LoadModule mime_module libexec/apache24/mod_mime.so
49 | LoadModule log_config_module libexec/apache24/mod_log_config.so
50 | #LoadModule log_debug_module libexec/apache24/mod_log_debug.so
51 | #LoadModule logio_module libexec/apache24/mod_logio.so
52 | LoadModule env_module libexec/apache24/mod_env.so
53 | #LoadModule mime_magic_module libexec/apache24/mod_mime_magic.so
54 | #LoadModule expires_module libexec/apache24/mod_expires.so
55 | LoadModule headers_module libexec/apache24/mod_headers.so
56 | #LoadModule unique_id_module libexec/apache24/mod_unique_id.so
57 | LoadModule setenvif_module libexec/apache24/mod_setenvif.so
58 | LoadModule version_module libexec/apache24/mod_version.so
59 | LoadModule remoteip_module libexec/apache24/mod_remoteip.so
60 | #LoadModule proxy_module libexec/apache24/mod_proxy.so
61 | #LoadModule proxy_connect_module libexec/apache24/mod_proxy_connect.so
62 | #LoadModule proxy_ftp_module libexec/apache24/mod_proxy_ftp.so
63 | #LoadModule proxy_http_module libexec/apache24/mod_proxy_http.so
64 | #LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so
65 | #LoadModule proxy_scgi_module libexec/apache24/mod_proxy_scgi.so
66 | #LoadModule proxy_uwsgi_module libexec/apache24/mod_proxy_uwsgi.so
67 | #LoadModule proxy_wstunnel_module libexec/apache24/mod_proxy_wstunnel.so
68 | #LoadModule proxy_ajp_module libexec/apache24/mod_proxy_ajp.so
69 | #LoadModule proxy_balancer_module libexec/apache24/mod_proxy_balancer.so
70 | #LoadModule proxy_express_module libexec/apache24/mod_proxy_express.so
71 | #LoadModule proxy_hcheck_module libexec/apache24/mod_proxy_hcheck.so
72 | #LoadModule session_module libexec/apache24/mod_session.so
73 | #LoadModule session_cookie_module libexec/apache24/mod_session_cookie.so
74 | #LoadModule session_crypto_module libexec/apache24/mod_session_crypto.so
75 | #LoadModule session_dbd_module libexec/apache24/mod_session_dbd.so
76 | #LoadModule slotmem_shm_module libexec/apache24/mod_slotmem_shm.so
77 | LoadModule ssl_module libexec/apache24/mod_ssl.so
78 | #LoadModule lbmethod_byrequests_module libexec/apache24/mod_lbmethod_byrequests.so
79 | #LoadModule lbmethod_bytraffic_module libexec/apache24/mod_lbmethod_bytraffic.so
80 | #LoadModule lbmethod_bybusyness_module libexec/apache24/mod_lbmethod_bybusyness.so
81 | LoadModule unixd_module libexec/apache24/mod_unixd.so
82 | #LoadModule dav_module libexec/apache24/mod_dav.so
83 | LoadModule status_module libexec/apache24/mod_status.so
84 | LoadModule autoindex_module libexec/apache24/mod_autoindex.so
85 | #LoadModule asis_module libexec/apache24/mod_asis.so
86 | #LoadModule info_module libexec/apache24/mod_info.so
87 |
88 | #LoadModule cgi_module libexec/apache24/mod_cgi.so
89 |
90 |
91 | #LoadModule cgid_module libexec/apache24/mod_cgid.so
92 |
93 | #LoadModule dav_fs_module libexec/apache24/mod_dav_fs.so
94 | #LoadModule vhost_alias_module libexec/apache24/mod_vhost_alias.so
95 | #LoadModule negotiation_module libexec/apache24/mod_negotiation.so
96 | LoadModule dir_module libexec/apache24/mod_dir.so
97 | #LoadModule imagemap_module libexec/apache24/mod_imagemap.so
98 | #LoadModule actions_module libexec/apache24/mod_actions.so
99 | #LoadModule speling_module libexec/apache24/mod_speling.so
100 | LoadModule userdir_module libexec/apache24/mod_userdir.so
101 | LoadModule alias_module libexec/apache24/mod_alias.so
102 | LoadModule rewrite_module libexec/apache24/mod_rewrite.so
103 | LoadModule php_module libexec/apache24/libphp.so
104 | LoadModule fastcgi_module libexec/apache24/mod_fastcgi.so
105 |
106 |
107 |
108 |
109 |
110 | User www
111 | Group www
112 |
113 |
114 |
115 | ServerAdmin you@example.com
116 |
117 | ServerName helios.cs.ifmo.ru:2222
118 |
119 |
120 |
121 | AllowOverride none
122 | Require all denied
123 |
124 |
125 |
126 | DirectoryIndex fastCGI-1.0-SNAPSHOT-jar-with-dependencies.jar index.html
127 |
128 |
129 |
130 |
131 | Require all denied
132 |
133 |
134 |
135 | ErrorLog "/home/studs/s409463/httpd-root/error.log"
136 | PidFile "/home/studs/s409463/httpd-root/httpd.pid"
137 |
138 |
139 | LogLevel warn
140 |
141 |
142 |
143 | LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
144 | LogFormat "%h %l %u %t \"%r\" %>s %b" common
145 |
146 |
147 | LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
148 |
149 |
150 |
151 | CustomLog "/home/studs/s409463/httpd-root/access.log" combined
152 |
153 |
154 |
155 |
156 |
157 | ScriptAlias /cgi-bin/ "/usr/local/www/apache24/cgi-bin/"
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 | AllowOverride None
167 | Options None
168 | Require all granted
169 |
170 |
171 |
172 |
173 | RequestHeader unset Proxy early
174 |
175 |
176 |
177 |
178 | TypesConfig etc/apache24/mime.types
179 |
180 | AddType application/x-compress .Z
181 | AddType application/x-gzip .gz .tgz
182 |
183 |
184 |
185 |
186 |
187 |
188 | Include etc/apache24/extra/proxy-html.conf
189 |
190 |
191 |
192 |
193 | SSLRandomSeed startup builtin
194 | SSLRandomSeed connect builtin
195 |
196 |
197 |
198 | AcceptFilter http none
199 | AcceptFilter https none
200 |
201 |
202 | ServerName localhost
203 | DocumentRoot /home/studs/s409463/static
204 | Alias /index "/home/studs/s409463/static"
205 |
206 | Options +Indexes
207 | AllowOverride None
208 | Require all granted
209 |
210 |
211 | ScriptAlias /fcgi-bin/ /home/studs/s409463/httpd-root/fcgi-bin/
212 |
213 | SetHandler fastcgi-script
214 | Options +ExecCGI
215 | Require all granted
216 |
217 | FastCgiExternalServer /home/studs/s409463/httpd-root/fcgi-bin/fastCGI-1.0-SNAPSHOT-jar-with-dependencies.jar -host localhost:24348
218 |
219 |
220 |
221 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
Гайд по II курсу 🐥
2 |
3 | # Описание
4 |
5 | > Вашему вниманию представляется продолжение
6 | > [гайда по I курсу](//github.com/Imtjl/1st-year-guide)
7 |
8 | # Оглавление
9 |
10 | - [Описание](#описание)
11 | - [Оглавление](#оглавление)
12 | - [Сокращения](#сокращения)
13 | - [Гелиос на стероидах](#гелиос-на-стероидах)
14 | - [Веб-программирование (3)](#веб-программирование)
15 | - [Лабораторная 1 (веб)](#лабораторная-1-веб)
16 | - [Деплой лабораторной 1 (веб)](#деплой-лабораторной-1-веб)
17 | - [Лабораторная 2 (веб)](#лабораторная-2-веб)
18 | - [Деплой лабораторной 2-3 (веб)](#деплой-лабораторной-2-3-веб)
19 | - [Лабораторная 3 (веб)](#лабораторная-3-веб)
20 | - [Лабораторная 4 (веб)](#лабораторная-4-веб)
21 | - [Деплой лабораторной 1 (веб)](#деплой-лабораторной-4-веб)
22 | - [Теория вероятностей (3)](#теория-вероятностей)
23 | - [Селина (теорвер)](#селина-теорвер)
24 | - [Кудашов (теорвер)](#кудашов-теорвер)
25 | - [Математика (базовый уровень) (3)](#математика-базовый-уровень)
26 | - [Языки программирования (3)](#языки-программирования)
27 | - [Физика (3,4)](#программирование)
28 | - [Физика ИВТ](#физика-ивт)
29 | - [Физика СППО](#физика-сппо)
30 | - [Боярский, Коробков, Горбенко](#боярский-коробков-горбенко)
31 | - [Алгоритмы и структуры данных (4)](#алгоритмы-и-структуры-данных)
32 | - [Архитектура компьютера (4)](#архитектура-компьютера)
33 | - [Лабораторная 1 (АК)](#лабораторная-1-ак)
34 | - [Лабораторная 2 (АК)](#лабораторная-2-ак)
35 | - [Лабораторная 3 (АК)](#лабораторная-3-ак)
36 | - [Лабораторная 4 (АК)](#лабораторная-4-ак)
37 | - [Вычислительная математика (4)](#вычислительная-математика)
38 | - [Вычмат ИВТ](#вычмат-ивт)
39 | - [Вычмат СППО](#вычмат-сппо)
40 | - [Рубежка 1 (Вычмат)](#рубежка-1-вычмат)
41 | - [Рубежка 2 (Вычмат)](#рубежка-2-вычмат)
42 | - [Математическая статистика (4)](#математическая-статистика)
43 | - [Методы оптимизации (4)](#методы-оптимизации)
44 | - [Селина (метопы)](#селина-метопы)
45 | - [Кудашов (метопы)](#кудашов-метопы)
46 | - [Основы программной инженерии (4)](#основы-программной-инженерии)
47 | - [Техники публичных выступлений (4)](#техники-публичных-выступлений)
48 | - [Особая благодарность](#особая-благодарность)
49 |
50 | # Сокращения
51 |
52 | - `Веб` - Веб-программирование
53 | - `Теорвер` - Теория вероятностей
54 | - `Матан` - Высшая математика
55 | - `ЯП(ы)` - Языки программирования
56 | - `Алгосы` - Алгоритмы и структуры данных
57 | - `АК` - Архитектура компьютера
58 | - `Вычмат` - Вычислительная математика
59 | - `Матстат` - Математическая статистика
60 | - `ОПИ` - Основы программной инженерии
61 | - (легаси) `МИСПИ` - Методы и средства программной инженерии
62 | - `ТПВ` - Техники публичных выступлений
63 | - `ИЭК` - Инновационная экономика и технологическое предпринимательство
64 | - `Метопы` - Методы оптимизации
65 | - `БМС / Модельки` - Бизнес-модели основных секторов инновационной экономики
66 |
67 | # Гелиос на стероидах
68 |
69 | - Установка и сборка `fish`, `oh-my-fish`, `neovim`
70 | - TODO: Настройка красивых промптов в **cli** `Postgres`
71 | - TODO: Адекватная работа в **cli** `Postgres`
72 |
73 | > А почему бы не добавить герлянды и свистоперделки на и без того скучный
74 | > гелиос? Прикольно же :)
75 |
76 | |  |
77 | | ------------------------------------------------------------------------------------------------------------- |
78 | |  |
79 | |  |
80 |
81 | ## Шаг 0: Настройка оболочки
82 |
83 | ### 0.1 Добавление файла `.bash_profile` (если ещё нету)
84 |
85 | ```bash
86 | touch .bash_profile
87 | ```
88 |
89 | > он будет запускаться при каждом вашем заходе на гелиос
90 |
91 | ### 0.2 Настройка файла `.bash_profile`
92 |
93 | - используйте редактор `vim`:
94 |
95 | ```bash
96 | vim .bash_profile
97 | ```
98 |
99 | - скопируйте данную конфигурацию и вставьте в .bash_profile:
100 |
101 | ```bash
102 | if [ -f "$HOME/.local/bin/fish" ]; then
103 | exec $HOME/.local/bin/fish
104 | fi
105 |
106 | export _JAVA_OPTIONS="-Xmx512M -XX:MaxMetaspaceSize=3200m"
107 | export JAVA_VERSION="17.0+"
108 | export JAVA_HOME="/usr/local/openjdk17"
109 | export PATH="$HOME/.local/bin:$PATH"
110 | export PATH="$HOME/neovim/build/bin:$PATH"
111 | ```
112 |
113 | ## Шаг 1: Установка Fish Shell
114 |
115 | ### 1.1 Скачивание исходного кода Fish
116 |
117 | ```bash
118 | curl -LO https://github.com/fish-shell/fish-shell/releases/download/3.6.1/fish-3.6.1.tar.xz
119 | ```
120 |
121 | ### 1.2 Извлечение архива
122 |
123 | ```bash
124 | tar -xf fish-3.6.1.tar.xz cd fish-3.6.1
125 | ```
126 |
127 | ### 1.3 Сборка и установка Fish
128 |
129 | ```bash
130 | cmake -S . -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release
131 | -DCMAKE_INSTALL_PREFIX=$HOME/.local ninja -C build ninja -C build install
132 | ```
133 |
134 | ### 1.4 Добавление Fish в PATH
135 |
136 | ```bash
137 | echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile
138 | source ~/.bash_profile
139 | ```
140 |
141 | ## Шаг 2: Установка Oh My Fish
142 |
143 | ### 2.1 Установка Oh My Fish
144 |
145 | ```bash
146 | curl -L https://get.oh-my.fish | fish
147 | ```
148 |
149 | ### 2.2 Установка Fish как оболочки по умолчанию
150 |
151 | ```bash
152 | echo "exec fish" >> ~/.bash_profile
153 | source ~/.bash_profile
154 | ```
155 |
156 | ### 2.3 Установка темы Oh My Fish (по желанию)
157 |
158 | ```bash
159 | omf install lambda
160 | ```
161 |
162 | ```bash
163 | omf theme lambda
164 | ```
165 |
166 | ### 2.4 Удаление приветствия fish (по желанию)
167 |
168 | > вводить прямо так как написано
169 |
170 | ```bash
171 | vim .config/fish/fish_variables
172 | :25
173 | o
174 | SETUVAR fish_greeting:""
175 | esc
176 | :wqa
177 | ```
178 |
179 | ## Шаг 3: Установка Neovim
180 |
181 | ### 3.1 Скачивание исходного кода Neovim
182 |
183 | ```bash
184 | curl -LO https://github.com/neovim/neovim/archive/refs/tags/stable.tar.gz
185 | tar xzf stable.tar.gz
186 | cd neovim-stable
187 | ```
188 |
189 | ### 3.2 Сборка и установка Neovim
190 |
191 | ```bash
192 | cd neovim
193 | gmake clean
194 | cmake -S . -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.local -DMAN_INSTALL_DIR=$HOME/.local/share/man
195 | gmake install
196 | ```
197 |
198 | ### 3.3 Клонирование своей конфигурации Neovim
199 |
200 | - Например моя конфигурация, но приготовьтесь умереть:
201 |
202 | ```bash
203 | git clone https://github.com/worthant/nvim.git ~/.config/nvim
204 | ```
205 |
206 | > TODO: создать урезанную сборку неовима для гелиоса
207 |
208 | P.S.: Теперь наслаждаетесь тем, что не запустится половина плагинов. Зависит
209 | сильно от вашего конфига, но советую как миниум раза 4 зайти и выйти в неовим,
210 | чтобы, к примеру, `lazy.nvim` и `mason` проперделись и зарезолвили большую часть
211 | проблем.
212 |
213 | ## Cli Postgres
214 |
215 | - edit `.psqlrc` file
216 |
217 | ```bash
218 | \set VERBOSITY terse
219 | \set QUIET 1
220 | \timing
221 |
222 | \pset linestyle unicode
223 | \pset border 2
224 | \setenv CLICOLOR 1
225 | \setenv LESS "-R"
226 |
227 | \set PROMPT1 '%M:%[%033[1;31m%]%>%[%033[0m%] %n@%/%R%#%x '
228 | \set PROMPT2 '%M %n@%/%R %# '
229 | ```
230 |
231 | # Веб-программирование
232 |
233 | Курс веба представляет собой сдачу 4-х лабораторных связанных с разработкой как
234 | фронтеда (пользовательского интерфейса), используя базовую связку HTML + CSS +
235 | JS и фреймворки react, vue, angular, так и бэкенда (серверной части, обработка
236 | запросов от пользователя) используя PHP, Java EE / Spring, JSP.
237 |
238 | > [!IMPORTANT]
239 | > Не забывайте согласовывать требования с вашим практиком. Если в выполненной
240 | > лабораторной что-то отличается от того, что говорит ВАШ практик - это
241 | > нормально. Адаптируйтесь, на работе очень пригодится.
242 |
243 | Теперь рассмотрим каждую лабораторную отдельно, кратко опишем основные моменты,
244 | чтобы было понятно что вас ждёт и на что стоит обратить внимание:
245 |
246 | ## Лабораторная 1 (веб)
247 |
248 | > (HTML + CSS + JS) + (PHP)
249 |
250 | Надо сверстать простой сайтик, назначение которого - небольшая игра. Попал ты
251 | точкой в координатную плоскость или промахнулся.
252 |
253 | [-> Подробное описание с выполненным вариантом](https://github.com/worthant/simple-one-page-website/blob/726cfdd610064b9f9260f41cf24b76f1cd568005/README_RU.md)
254 | [-> Гайд на деплой, теор.вопросы se.ifmo](https://docs.google.com/document/u/0/d/13eAoOwDXg1enr3eFeawcM76AAhufZljDA4XYcNYAyDg/mobilebasic)
255 | [-> Гайд на поднятие httpd сервера на helios](./WEB/guide-httpd.pdf)
256 |
257 | > Имхо: ничего зазорного в чтении гайда для educational purposes нету. Но лучше
258 | > не опирайтесь на то, что в нём написано - перепроверяйте информацию и сами всё
259 | > ресёрчите. Условный MDN docs более авторитетен :D
260 |
261 | TODO: добавить showcase - гифку
262 |
263 | - _Кратко то, что нужно сделать_: Рисуем график, табличку, а в заголовке сайта
264 | пишем своё ФИО, по нажатию отправляем запрос на PHP веб-сервер с координатами
265 | тыка, а сервер проверяет попадание и возвращает ответ. По сути в лабе
266 | требуется полный SSR, т.е. веб-сервер должен вернуть табличку, или строчку в
267 | таблице. Как практика норм, но это оверхед на ровном месте, поэтому если
268 | практик позволит, можете просто вернуть с сервера json {координаты +
269 | true/false}, а потом на клиентской части с помощью javascript это удобно
270 | отрисовать. Это спойлер, потому что в последующих лабах так и будете делать.
271 |
272 | ## Лабораторная 2 (веб)
273 |
274 | > (HTML + CSS + JS) + (Servlets + JSP)
275 |
276 | [-> Защищённая на фулл лаба (RU/EN):
277 | = гифка для демонстрации,
278 | = деплой лабораторной,
279 | = разбор теории и сылки на полезные материалы,
280 | = выполненный вариант](https://github.com/worthant/MVC-GeoValidator/tree/868f30f3819a3120080d0e98daae65f6048466e9)
281 |
282 | ## Лабораторная 3 (веб)
283 |
284 | > (CSS + JSF) + (JSF) + (ORM: Hibernate/Eclipse Link)
285 |
286 | JSF - зло, намучаетесь жесть. Если повезёт и аккуратно пройдёте по протоптанной
287 | дорожке, то лаба делается супер-быстро. Зло в том что это старый фуллстак
288 | фреймворк для веб-приложений. Лютое легаси, отвратительные доки, половина
289 | встроенных вещей может просто не работать, потому что так надо и их придётся
290 | обходить костыльными путями - будут конфликты устаревших версий пакетов,
291 | рандомные ошибки и всё тому прочее. Материалы ниже были созданы в попытках
292 | сохранить драгоценное время и нервы студентов:
293 |
294 | [-> Видос с демонстрацией ёбнутой лабы (если есть много свободного времени)](https://www.youtube.com/watch?v=ny15aofvGCI&feature=youtu.be)
295 | [-> Полностью задокументированный рабочий шаблон для быстрого старта](https://github.com/worthant/web3-jsf-eclipselink-template)
296 | [-> Защищённая на фулл лаба (RU/EN):
297 | = легко поднять в докере / гайд деплоя на гелиос
298 | = ссылки на разбор теории + полезные материалы
299 | = описание / требования](https://github.com/worthant/interactive-graph-ui)
300 |
301 | > [!IMPORTANT]
302 | > Имхо: вообще неважно как вы тут выкрутитесь - главное найдите способ завести
303 | > лабу, и сделайте так чтобы было очень сложно её положить. Если этого
304 | > добьётесь - лаба сдана, больше ничего не надо. Чем меньше придётся работать с
305 | > этим говном - тем лучше :)
306 |
307 | ## Лабораторная 4 (веб)
308 |
309 | > (React/Vue/Angular) + (Spring/Jakarta EE) + (Hibernate/Eclipse Link)
310 |
311 | Кто бы что ни говорил, тут всё равно что вам попадётся - лаба приятная, потому
312 | что относительно новые фреймворки, нет конфликтов зависимостей и вас никто не
313 | будет ограничивать. А также у многих практиков можно выпросить желаемый стэк. И
314 | если фронтовый фреймворк достаточно просто, то на бэке могут дать Java EE и
315 | сказать что всё, иди пиши :)
316 |
317 | [-> Демонстрация конченной лабы, если у вас нет личной жизни
318 | (все ссылки на исходники в описании)](https://www.youtube.com/watch?v=u1tMPwoMX9M)
319 |
320 | Имхо: неважно у вас Java EE / Spring. Многим нравится спринг потому что он
321 | простенький, и потому что на нём работы много. Я писал на Java EE, и хоть
322 | сначала и плевался, со временем понял что фреймворк буквально проще спринга во
323 | всём, и в этом его огромное преимущество. Придётся ручками написать большую
324 | часть бэка, но это компенсируется тем что Java EE простая как пробка и в отличие
325 | от спринга - на защите вам тоже должно быть сильно легче.
326 |
327 | > [!IMPORTANT]
328 | > Учтите, что всех ждёт рубежка, на которой может попасться как java EE, так и
329 | > Spring и любой фронтовый фреймворк, поэтому учить надо в любом случае всё,
330 | > даже если практик будет вас спрашивать лояльно. Поэтому при написании лабы на
331 | > Java EE, Spring MVC никто не отменял :D
332 |
333 | ### Деплой лабораторной 4 (веб)
334 |
335 | Способов на самом деле много, я делал хостинг фронта на github pages и бэка на
336 | гелиосе, а сайт был доступен через мой домен. Поэтому domain.com/api форвардился
337 | на гелиос, а domain.com показывал фронт сайта, который раздавался бесплатным
338 | хостингом github pages. Это сложный варик, но мне его одобрил практик. Бэк надо
339 | в любом случае хостить на гелиосе - это дурацкое требование, но оно есть и
340 | никуда вы не денетесь, учитите.
341 |
342 | TODO тут надо написать про vite, npm, относительные пути, чтоб лаба работала на
343 | se.ifmo, по-хорошему и другие сборщики в единый index.html файл
344 |
345 | ## Рубежка (веб)
346 |
347 | TODO: ссылки на разборы рубежки, вопросы и варики рубежки
348 |
349 | # Теория вероятностей
350 |
351 | Курс теорвера представляет собой написания КР, небольших лаб. Основные темы:
352 | Среднеквадратическое отклонение, Дисперсия, Математическое ожидание, коэффициент
353 | стьюдента, проверка нулевой гипотезы и тд. Рекомендую делать решаторы так как в
354 | следующем семе будет всё буквально то же самое на курсе матстата. Курс ведут два
355 | преподавателя: Селина и Кудашов, так что ваше обучение зависит от того к кому
356 | ваша группа попадёт
357 |
358 | ## Селина (теорвер)
359 |
360 | С долгами лучше не оставаться и как следствие пропускать пары, так как в
361 | противном случае придётся сдавать лабораторные вместе со всем потомком и
362 | очередью из 100+ человек, в то время как скорость очереди около 10-15 минут на
363 | человека. На лекции можно не ходить, так как они добавляют не значительные 3
364 | балла, которые по сути бесполезны, так как закрывая все ключевые точки вовремя
365 | вы с большой долей вероятности получите зачёт.
366 |
367 | TODO возможно доделать описание, добавить ссылки на сливы кр, эксель
368 | таблички-решаторы лаб, в идеале наверное вспомнить все лабы и написать их список
369 |
370 | ## Кудашов (теорвер)
371 |
372 | Прикольный чел, забавный. К нему лучше приходить с хорошим настроением и немного
373 | подготовленным, чтобы выходить к доске, отвечая на достаточно простые вопросы и
374 | получая плюсики. Если будете чуть готовиться к каждой паре, курс пиво, но учтите
375 | что лучше всю теорию хоть немного понимать, потому что потом будет мат.стат, как
376 | и было сказано выше.
377 |
378 | # Математика (базовый уровень)
379 |
380 | TODO тут если честно не знаю что писать и надо ли, учитывая что у нас другая
381 | математика нежели у них. // тру, пока так оставим
382 |
383 | # Языки программирования
384 |
385 | Тяжелый предмет. Дистанционный. Антиплагиат. Требует написания программ на
386 | ассемблере и С. Так же требуется небольшие знания `Git` (`GitLab`)
387 |
388 | TODO найти гайд по регистрации на гитлабе // камон бля, зайти на сайт, ввести
389 | логин/пароль
390 |
391 | TODO найти гайд по установки виртуалки // проще по факту прийти на первый
392 | семинар и всё поставить, он лютое пиво
393 |
394 | > [!IMPORTANT]
395 | > Лично я рекомендую поставить заранее линукс на дуал бут, потому что курс
396 | > супер-интересный, семинары не сложные и вас всему научат и если что помогут,
397 | > пользоваться линуксом, если стоят условные KDE/Gnome/другие гуи не сложно, но
398 | > работать на семинарах будет сильно приятнее. Рекомендую поставить linux fedora
399 | > и проблем вообще не должно быть, с убунтой будьте аккуратны, были у кого-то
400 | > проблемы на последних семинарах. Если хотите пуститься во все тяжкие - ставьте
401 | > neovim, в нём есть [классный дебаггер](https://github.com/worthant/nvim)
402 |
403 | TODO Возможно не требуется разбития на лабы здесь, так как всю нужную информацию
404 | можно найти на гитлабе, где и стырить лабу у другого студента // В целом
405 | согласен, можно написать что этот курс даёт дохрена крутых возможностей - от
406 | навыков код ревью до работы на низком уровне с программами и их дебагом. Но
407 | описания лаб как будто бы за нас Жирков лучше сделал
408 |
409 | ## Лабораторная 1 (ЯП(ы))
410 |
411 | Input/Output library in assembly
412 |
413 | ## Лабораторная 2 (ЯП(ы))
414 |
415 | Dictionary in assembly
416 |
417 | ## Лабораторная 3 (ЯП(ы))
418 |
419 | Image rotation
420 |
421 | ## Лабораторная 4 (ЯП(ы))
422 |
423 | Memory allocator
424 |
425 | ## Лабораторная 5 (ЯП(ы))
426 |
427 | Sepia filter + ускорение через SSE инструкции
428 |
429 | # Физика
430 |
431 | ## ИВТ
432 |
433 | Пока кратко - оба семестра нереально пивные. Больше всего баллов приносит работа
434 | на практиках, которая интересная и не особо замысловатая, а также ответы на
435 | вопросы на лекциях.
436 |
437 | ### Описание
438 |
439 | Имхо: курс по уровню сложности ниже чем у многих было в школе, но на него
440 | интересно ходить, потому что это простые применения физики в реальной жизни -
441 | закрепите что уже знаете, либо изучите что-то новое. Отдельно было весело во
442 | втором семестре моделировать векторные поля для различных ситуаций, например
443 | нагреве фигуры необычной формы, физический смысл ротора и дивергенции на примере
444 | течений и завихрений в озёрах с проточным течением. Будет связь с музыкой и
445 | задачки на колебания, обычные задачки на грузики на пружинках, лекции про
446 | разработку промышленных устройств, будете готовить доклады про выбранные
447 | устройства или технологии. На лекциях частенько будет демонстрация физических
448 | опытов, поэтому рекомендую ходить просто ради интереса.
449 |
450 | ### Рубежка
451 |
452 | Стот мало баллов. Если хорошо решите, ну может 5 баллов поставят, но по сути
453 | можно скипать или не писать и вообще побоку, экз всё решает в любом случае
454 | потому что весит 40 баллов. Задачи из рубежки - те же задачи с практик +
455 | дополнительные. Половина минимум из рубежки будет в экзамене.
456 |
457 | ### Экзамен
458 |
459 | > [!IMPORTANT]
460 | > на практиках будете решать задачи - они не сложные, но рекомендую все
461 | > конспектировать и разбирать, потому что потому 1 в 1 будут на экзамене.
462 |
463 | Экз - просто билеты заботайте и пиво. Их не мало, но и не сильно много, половина
464 | как минимум скорее всего уже есть в голове со школы. Сначала получаете одну
465 | задачу из обязательного списка и решаете её перед преподом. Это задачи которые
466 | вы решали на практике, и они будут ещё раз разобраны накануне самого экзамена,
467 | поэтому просто не проморгайте и допуск к экзамену у вас в кармане. Затем вам
468 | дадут уже нормальные задачи и будете сидеть их решать. Как решите - тяните
469 | теор.билет, или сам препод вам его называет и потом его рассказываете. Обычный
470 | экз, достаточно простой.
471 |
472 | ## СППО
473 |
474 | // алёёёёё гайз
475 |
476 | # Алгоритмы и структуры данных
477 |
478 | Пока напишу коротко, как наполнение:
479 |
480 | Все лекции в записи, будут лежать на диске. Материал лекций классный, многому
481 | научит, особенно тех, кто так себе шарит за алгосы и хочет научиться.
482 |
483 | Закрыться на 3 можно с закрытыми глазами, без рук и вообще доступа в интернет.
484 | На 4C надо решить 14 из 16 задач с Яндекс контеста. Даже если вы очень слабый
485 | студент - не переживайте. Есть задачи которые заставят поломать мозг, может даже
486 | неделю с лишним, но у вас весь семестр, а задач надо всего 14. Часть из них
487 | вообще не на алгосы, а на умение разрабатывать свой язык из курса АК (привет
488 | задача на написание менеджера памяти и на парсер).
489 |
490 | # Архитектура компьютера
491 |
492 | > [!NOTE] Формат курса может отличаться от года к году
493 |
494 | > [!WARNING]
495 | > Не относитесь халатно к этому курсу, не пропускайте дедлайнов и согласовывайте
496 | > темы докладов заранее. Может прозвучать душно, но потом просто не будет дороги
497 | > назад и вы окажетесь в очень неприятной ситуации, которую можно было бы
498 | > избежать, не применив слишком много усилий
499 |
500 | Один из самых крутых курсов с точки зрения образования. Весь курс онлайн.
501 |
502 | ### 1 лаба, семинары
503 |
504 | Делаете доклад по теме (не обязательно прям по темам лекций), защищаете, ходите
505 | на другие семинары к другим, задаете вопросики.
506 |
507 | ### 2 лаба, эссе
508 |
509 | Пишете эссе по статье, ревьюите другим, скорее формальность, чем работа.
510 |
511 | ### 3 лаба, архитектуры, схема
512 |
513 | Написаны эмуляторы нескольких архутектур
514 | ([wrench](https://wrench.edu.swampbuds.me/submit-form)), пишете по вариантам
515 | алгоритм на местном ассемблере, защищаете (1 арх-а за подход). По варианту надо
516 | нарисовать схему процессора. Сложность выполнения зависит от попавшихся
517 | вариантов, но в любом случае не запредельна.
518 |
519 | ### 4 лаба, эксперимент
520 |
521 | Разрабатываете по варианту кастомный язык, пишете для него транслятор и
522 | процессор на любом языке. Полезно, но сильно сложнее и объемнее других лаб
523 |
524 | ---
525 |
526 | Для комфортного закрытия вот несколько советов:
527 |
528 | - Сдавайте лабы как можно раньше (иначе может произойти ряд приколов)
529 | - Вначале сема принимают практики студенты, очередей нет (5-6 челвоек на
530 | полтора часа), им проще сдать
531 | - Вас могут покрасить в журнале (можно сдавать лабы только конкретному
532 | преподу), обычно это делает Пенской, а ему сдавать работы заметно менее
533 | комфортно
534 | - Под конец семестра на сдачи будут гарантированные очереди (50-150 человек)
535 | - Под конец сема приоритет предоставляется людям, сдающим 4 лабу (но 4 лаба не
536 | обязательно КТ, а вот 3-я - да). Среднее время проверки одного человека с 4
537 | лабой - 20-30 мин
538 | - Количество занятий для сдачи лаб не установлено явно (под сессию их обычно
539 | добавляют, но на деле вам ничего не гарантированно).
540 | - Не тяните с выбором между лабой 1 (семинары) или 4 (эксперимент, своя модель
541 | проца и транслятора)
542 | - Требуемое на выполнение 4 лабы время сильно зависит от варианта. Если
543 | попался asm+stack то можно сделать +- 1к строк, если же попался alg язык
544 | (js-like) то вам придется писать чуть ли не компилятор (ближе к 3к строк и
545 | более)
546 | - 1 лабу можно сдавать только в основное время семестра (без сессии)
547 | - 1 лабу сдавать сильно проще (делаете доклад, защищаете, вопросики другим
548 | задаете), но 4 лаба позволяет гораздо глубже понять, что вообще твориться в
549 | процессорах и трансляторах
550 | - Посмотрите лекции
551 | - Есть все записи, и пенек их неплохо читает (на скорости x1.5+)
552 | - На защите Пенской хочет слышать именно то, о чем там говорится (особенно про
553 | схемотехнику), он почти не воспринимает то, что вы говорите ему это теми же
554 | словами или слегка сложнее
555 |
556 | Если организуетесь, не пропустите дедлайны, всё будете делать в срок и хорошо,
557 | то курс спокойно закрывается на 3-4 без экза.
558 |
559 | # Вычислительная математика
560 |
561 | Курс +- пивной. Это не алгосы, АК или ОПИ. Но времени займёт предостаточно, а
562 | если будете сильно нарушать дедлайны то можно и проблем огрести в конце сема, не
563 | советую.
564 |
565 | Надо сделать 5 лаб и написать 2 рубежки. Если закрываете все лабы до какого-то
566 | дедлайна, у нас было до мая, тогда всё остальное автоматом.
567 |
568 | > [!NOTE]
569 | > Как обычно вместо личной жизни я ёбнулся, поэтому
570 | > [вот вам репа](https://github.com/Imtjl/computational-maths). Все лабы я делал
571 | > в латехе, поэтому шаблоны легко взаимозаменяемы, а вот код писал на плюсах,
572 | > тут уже на любителя.
573 |
574 | Каждая лаба это какой-то вычислительный метод - его нужно заботать, нарисовать
575 | диаграмку последовательности, которая будет полноценно описывать работу метода,
576 | а также его запрограммировать и подготовить хороший отчёт. За все маленькие
577 | помарки снижают баллы, но даже если вам по 50% будут снимать - их хватит :)
578 |
579 | Лабы по вариантам, но методов буквально по пальцам пересчитать, поэтому вам
580 | точно будут попадаться одинаковые половине группы.
581 |
582 | > [!WARNING]
583 | > На курсе есть антиплагиат и если вас за это уличат, то поминай как звали.
584 | > Поэтому все эти материалы строго для первичного ознакомления в образовательных
585 | > целях - копировать и вставлять не думая не стоит. Но переиспользовать для себя
586 | > можно :)
587 |
588 | # Математическая статистика
589 |
590 | # Методы оптимизации
591 |
592 | ## Селина
593 |
594 | **1 лаба** - пишете на первой праке работку
595 |
596 | **2, 3, 4 лаба** - алгоритмы оптимизации
597 |
598 | **5 лаба** - симплекс-метод
599 |
600 | **6 лаба** - генетический алгоритм
601 |
602 | **ДЗ (1+2 ргр)** - транспортная задача, еще симплекс метод
603 |
604 | ---
605 |
606 | - Все что расходится с ее лекциями, не принимается, даже если по факту это то же
607 | самое (shout out метод половинного деления)
608 | - Смотрите слайды лекций, делайте, объясняйте как в них
609 | - В лабах в коде проверяет обычно только условия остановки (не реализацию, а
610 | наличие)
611 | - Не пропускайте праки, они расчитаны впритык чтобы сдать лабы с первого раза
612 | - Досдавать можно или на лекциях, или на консультациях, они раз в неделю (смотри
613 | расписание консультаций селиной в ису), в мае их обычно больше (но места
614 | ограничиваются по записи), на сессии их обычно не больше 2
615 | - Не отлетайте на допсу - гемор
616 | - Кр пишутся на лекции, задания присылаются в ису, пишете с компами, задания
617 | обычно не меняются, вариант по номеру ису, перепись на праках другой группы
618 |
619 | Селина в целом противная, так что запаситесь терпением и не филоньте (сэкономите
620 | время и силы), на деле материал легкий
621 |
622 | # Основы программной инженерии
623 |
624 | # Техники публичных выступлений
625 |
626 | # Особая благодарность
627 |
628 | - \
629 | - worthant
630 | - TsenekovIT
631 |
--------------------------------------------------------------------------------